ヘッダーをスキップ

Oracle Database 概要
11gリリース1(11.1)

E05765-03
目次
目次
索引
索引

戻る 次へ

23 情報の統合

この章の内容は、次のとおりです。

Oracleにおける情報統合の概要

企業が成長するにつれて、複数のデータベースおよびアプリケーション間で情報を共有できることに対する重要性が高まってきます。顧客はオンラインまたは営業担当を介して発注するため、企業はOLTPの更新、データベース・イベントおよびアプリケーション・メッセージをパートナとも共有する必要があります。この情報は、異機種間で複製されたデータベース、メッセージ・キューイング・システム、データ・ウェアハウスのステージング領域、オペレーショナル・データ・ストア、その他のアプリケーションおよびスタンバイ・データベースなど、様々な宛先にルーティングする必要があります。

情報を共有するには、次の3つの基本的な方法があります。情報を1つのデータベースに連結できます。これによって、それ以上の統合は必要なくなります。情報は分散した状態にしておき、それらの情報を統合するツールを提供できます。これによって、情報が1つの仮想データベース内にあるかのように見せることができます。あるいは、情報の共有もできます。これによって、複数のデータ・ストアおよびアプリケーションで情報を保持できます。この章では、情報の統合と共有を中心に説明します。

関連項目

情報を連結する機能の詳細は、第16章「ビジネス・インテリジェンス」を参照してください。 

Oracleには、分散した情報を統合するために、分散SQLが用意されています。分散SQLを使用すると、位置の透過性とデータ整合性を保ちながら、複数のデータベース間に分散されたデータに同時にアクセスして更新できます。

Oracle Streamsは、Oracle Databaseにおける非同期の情報共有インフラストラクチャです。Oracle Streamsは、Oracle DatabaseのREDOログをマイニングしてデータへのデータ操作言語(DML)変更とデータ定義言語(DDL)変更を取得し、変更されたデータを他のアプリケーションやデータベースで使用できるようにします。このように、Oracle Streamsは、きわめて柔軟な非同期レプリケーション・ソリューションとイベント通知フレームワークを提供します。Oracle Streamsでは、アプリケーションによるメッセージの明示的なエンキューとデキューをサポートしているため、完全な非同期メッセージ・ソリューションも提供します。このソリューションであるOracle Streams Advanced Queuingを使用すると、顧客、パートナおよび仕入先との情報交換と、ビジネス・プロセスの調整が可能になります。

Oracle Streamsと分散SQLは、どちらもOracle Database Gateway、Generic Connectivity、およびMessaging Gatewayを使用して、Oracle以外のシステム内のデータにアクセスして更新します。Oracle Databaseは、Oracle以外のデータ・ソース、Oracle以外のメッセージ・キューイング・システム、および非SQLアプリケーションで動作でき、他のベンダーの製品やテクノロジとの相互運用性が保証されます。ここでは、各ソリューションについて詳しく説明します。

分散環境とは、相互にシームレスに通信する様々なシステムで構成されるネットワークです。分散環境では、各システムをノードと呼びます。ユーザーが直接接続するシステムをローカル・システムと呼びます。このユーザーがアクセスする他のシステムをリモート・システムと呼びます。分散環境では、アプリケーションからローカル・システムやリモート・システムのデータにアクセスして相互に交換できます。すべてのデータに同時にアクセスして変更できます。

分散環境では、ネットワークを介した大量のデータに対するアクセスを増加させることができますが、その一方で、データの位置とネットワークにまたがるアクセスの複雑性は隠す必要があります。

企業が分散環境で正常に運用するには、次の操作が必要です。

統合されたアクセス

同一機種分散データベース・システムとは、1つ以上のコンピュータに常駐する複数のOracle Databaseで構成されるネットワークです。

この項の内容は、次のとおりです。

分散SQL

分散SQLを使用すると、アプリケーションとユーザーは、1つのデータベースにアクセスまたは変更する場合と同じくらい容易に、複数のデータベースにあるデータを同時にアクセスまたは変更できます。

Oracle分散データベース・システムはユーザーに対して透過的であるため、単一のOracle Databaseであるかのように見せることができます。企業は、この分散SQL機能を使用して、すべてのOracle Databaseを1つであるかのように見せることで、分散システムの持つ複雑さを軽減できます。

Oracle Databaseは、データベース・リンクを使用して、あるデータベース上のユーザーがリモート・データベース内のオブジェクトにアクセスできるようにします。ローカル・ユーザーは、リモート・データベースのユーザーでなくても、リモート・データベースへのリンクにアクセスできます。

関連項目

データベース・リンクの詳細は、『Oracle Database管理者ガイド』を参照してください。 

位置の透過性

Oracle分散データベース・システムを使用すると、アプリケーション開発者と管理者は、データベース・オブジェクトの物理位置をアプリケーションとユーザーから隠すことができます。位置の透過性が存在するのは、ユーザーがアプリケーションの接続先ノードに関係なく表などのデータベース・オブジェクトを全体的に参照できる場合です。位置の透過性には、次のような複数の利点があります。

開発者の場合は、シノニムの他にもビューとストアド・プロシージャを使用して、分散データベース・システムで動作するアプリケーションの位置の透過性を確立できます。

関連項目

 

SQLとCOMMITの透過性

Oracleの分散データベース・アーキテクチャも、問合せ、更新およびトランザクションの透過性を提供します。たとえば、SELECTINSERTUPDATEおよびDELETEなどの標準SQL文の動作は、非分散データベース環境の場合と同じです。また、アプリケーションでは標準SQL文COMMITSAVEPOINTおよびROLLBACKを使用してトランザクションを制御します。

ローカル・データベースでのトランザクションとは異なり、分散トランザクションでは複数データベース上にあるデータを変更する必要があります。その結果、Oracle Databaseではトランザクションでの変更のコミットや取消しを自己完結型ユニットとして処理する必要があるため、分散トランザクション処理はより複雑になります。つまり、トランザクション全体がコミットされるか、トランザクション全体がロールバックされます。

Oracle Databaseでは、分散トランザクションのデータ整合性が2フェーズ・コミット・メカニズムを使用して保証されます。準備フェーズでは、トランザクション内の開始ノードが他の参加ノードに対して、トランザクションをコミットまたは取り消すように指定します。コミット・フェーズでは、開始ノードがすべての参加ノードに対して、トランザクションのコミットを要求します。この要求を満たせない場合は、すべてのノードがトランザクションを取り消します。2フェーズ・コミット・メカニズムは完全に透過的であるため、分散トランザクション制御のための複雑なプログラミングや他の特別な操作を必要としません。

関連項目

「2フェーズ・コミット・メカニズム」 

分散問合せの最適化

分散問合せの最適化により、分散SQL文で参照されているリモート表からトランザクションでデータを取り出すときに、サイト間で必要なデータ転送量が減少します。分散問合せの最適化では、Oracle Databaseオプティマイザを使用して、リモート表から必要なデータのみを抽出するSQL式を検索または生成し、そのデータをリモート・サイト(または場合によってはローカル・サイト)で処理し、結果を最終処理のためにローカル・サイトに送信します。

この操作により、すべての表データをローカル・サイトに転送して処理する場合に比べて、同じ所要時間に必要なデータ転送量が減少します。DRIVING_SITENO_MERGEINDEXなど、各種のオプティマイザ・ヒントを使用すると、Oracle Databaseのデータ処理の実行される場所とデータへのアクセス方法を制御できます。

関連項目

オプティマイザとヒントの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。 

情報の共有

どのような統合であっても、その中心は社内の様々なアプリケーション間でデータを共有することです。レプリケーションとは、データベース・オブジェクトを複数のデータベース内で維持することです。この機能は、多数の企業が直面しているスケーラビリティ、可用性およびパフォーマンス上の問題に対するソリューションを提供します。たとえば、レプリケーションにより企業のWebサイトのパフォーマンスを改善できます。在庫表など、ローカル・ユーザーから頻繁に問合せがあるリモート表をローカルにレプリケートすることにより、ネットワーク上で送信されるデータの量が大幅に減少します。ローカル・ユーザーを中央の単一コピーのかわりに複数のローカル・コピーにアクセスさせることにより、分散データベースでネットワークを介して繰り返し情報を送信する必要がなくなるため、データベース・アプリケーションのパフォーマンスを最大化する上で役立ちます。Oracle Streamsには強力なレプリケーション機能が用意されており、この機能を使用して分散オブジェクトの複数コピーの同期を維持できます。

多くの企業は、ビジネス・プロセスを自動化して業務を管理するために、様々な自律型分散アプリケーションを開発しています。ただし、これらのアプリケーションは相互に通信して、ビジネス・プロセスおよびタスクを一貫性のある方法で調整する必要があります。また、トレース可能なイベント履歴を保持しながら、インターネットなどの低コスト・チャネルを通じて顧客、パートナおよび仕入先と情報を効率的に交換する必要もあります。これは、過去のものとなった書類による情報交換では満たされていた要件です。

疎結合されたアプリケーションの場合、柔軟なOracle Streamsインフラストラクチャの最上位に構築されたOracle Streams Advanced Queuingを使用できます。Oracle Streams Advanced Queuingは、イベント処理用の統一フレームワークを提供します。

アプリケーションやワークフローで生成されたイベント、またはREDOログやデータベース・トリガーから暗黙的に取得されたイベントを、1つのキューで取得およびステージングできます。これらのイベントは、様々な方法で使用できます。ユーザー定義ファンクションまたはデータベース表の操作で自動的に適用するか、明示的にデキューできます。使用側アプリケーションに通知を送信することもできます。これらのイベントは、どの段階でも変換できます。使用側アプリケーションが異なるデータベースにある場合、イベントは適切なデータベースに自動的に伝播します。このようなイベントに対する操作を自動的に監査でき、ユーザー指定の期間のみ履歴を保持できます。

この項の内容は、次のとおりです。

Oracle Streams

Oracle Streamsを使用すると、データベース内またはデータベース間で、データ・ストリーム内のデータ、トランザクションおよびイベントを伝播させ、管理できます。ストリームにより、パブリッシュされた情報がサブスクライブした宛先にルーティングされます。変更を必要とするユーザーは、Oracle Streamsの新機能を実装することで、既存の機能を犠牲にする必要がありません。

Oracle Streamsでは、ストリームに入れる情報、ノード間でのストリーム・フローまたはルーティング、各ノードに入ったときにストリーム内でイベントに発生する処理およびストリームの終了方法を制御できます。ストリームで動作する要素の構成を指定することで、メッセージ・キューイングやデータ・レプリケーションなど、特定の要件に対処できます。

Oracle Streamsは、様々な使用例における情報共有の要件を満たしています。Oracle Streams Advanced Queuingには、データベース統合メッセージ・キューイング機能やイベント管理機能が用意されています。また、Oracleには、Oracle Streamsを使用したイベント通知、レプリケーションおよびデータ・ウェアハウス・ロード・ソリューションを作成するためのツールが組み込まれています。

Oracle Streamsの全機能を利用して、複数のユースケースにまたがる構成を作成し、新しいクラスのアプリケーションを有効化できます。ほとんどのデプロイメントとその関連メタデータには互換性があります。たとえば、データ・ウェアハウスをロードするように構成されたシステムを簡単に拡張して、双方向のレプリケーションを使用可能にできます。完全な再構成は必要としません。

この項の内容は、次のとおりです。

Oracle Streams アーキテクチャ

Oracle Streamsのアーキテクチャはきわめて柔軟です。図23-1に示すように、Oracle Streamsには次の3つの基本要素があります。

取得

Oracle Streamsは、データベース変更を暗黙的および明示的に取得し、その変更をステージング領域に置きます。DML変更やDDL変更などのデータベース変更は、暗黙的に取得できます。ルールによって、取得される変更が判断されます。取得された変更を表す情報は、論理変更レコード(LCR)として書式設定され、ステージング領域に置かれます。

Oracle Streamsには、暗黙的な取得を行うために、取得プロセスおよび同期取得という2つのコンポーネントがあります。取得プロセスはREDOログをマイニングして、データベース変更を検出します。取得プロセスでは、アーカイブ・ログ・ファイルの他に、オンラインREDOログのマイニングもサポートされています。オンラインREDOログのマイニングの場合、変更データのREDO情報は書込みと同時にマイニングされ、取得の待機時間を短縮します。同期取得では、指定されたデータベース・オブジェクトにDML変更が行われると、その変更は内部メカニズムを使用して取得されます。

通常、取得プロセスは、大量のデータベース・オブジェクトに対する変更、およびDMLとDDL変更の両方の取得に使用されます。同期取得は、少量のデータベース・オブジェクトに対するDML変更の取得に使用されます。

Oracle Streamsでは、明示的取得もサポートされています。ユーザー・アプリケーションでは、イベントを表すメッセージをステージング領域に明示的にエンキューできます。これらのメッセージは、適用プロセスで使用できるようにLCRとして書式設定するか、他のユーザー・アプリケーションが明示的なデキューにより使用できるように書式設定できます。

ステージング

取得されたメッセージは、ステージング領域に置かれます。ステージング領域とは、取得されたメッセージを格納して管理するキューです。LCRおよび他のタイプのメッセージは、サブスクライバが使用するまでステージング領域に格納されます。LCRのステージングにより、LCRデータの監査と追跡のみでなく保持のための、セキュリティ機能を備えた領域が提供されます。

サブスクライバは、ステージング領域の内容を検査して、特定のイベントを表すメッセージが必要かどうかを判断します。この場合のサブスクライバは、ユーザー・アプリケーション、通常は他のシステム上にある別のステージング領域への伝播、または適用プロセスです。サブスクライバは必要に応じて一連のルールを評価し、メッセージがサブスクリプションに規定されている基準を満たしているかどうかを判断できます。基準を満たしているメッセージは、サブスクライバにより使用されます。

サブスクライバがユーザー・アプリケーションの場合、そのアプリケーションはメッセージを使用するためにステージング領域からデキューします。サブスクライバが別のステージング領域への伝播の場合、メッセージはそのステージング領域に伝播します。サブスクライバが適用プロセスの場合は、適用プロセスによりデキューされて使用されます。

ステージング領域に置かれたメッセージは、必要に応じて同じデータベースの他のステージング領域またはリモート・データベースのステージング領域に伝播されます。ネットワーク・ルーティングを簡素化してネットワーク通信量を削減するために、メッセージをすべてのデータベースとアプリケーションに送信する必要はありません。サブスクライブするシステムに到達するまで、1つ以上のシステムのステージング領域を経由して送ることができます。すべてのシステムがメッセージをサブスクライブする必要はないため、特定のシステムで適用されるメッセージについて柔軟性が得られます。1つのステージング領域が複数のデータベースからのメッセージをステージングして、セットアップと構成を簡素化できます。

メッセージがステージング領域に入るか、伝播されるか、ステージング領域を出た後に、それを変換できます。変換とは、保持しているデータの取得および適用または変更に参加するオブジェクトの形式を変更することです。変換には、特定のデータベースにある表の特定列のデータ型表現を変更すること、1つのデータベースにある表にのみ列を追加すること、または特定のデータベースにある表にデータのサブセットを組み込むことなどがあります。

使用

ステージング領域のメッセージは、暗黙的または明示的に使用されます。適用プロセスは、メッセージにカプセル化されているデータベース変更を暗黙的にデータベースに適用します。Oracle Streamsの適用プロセスには柔軟性があります。メッセージの標準またはカスタムの適用が可能です。カスタムの適用により、適用時にデータの操作や他のアクションを実行できます。明示的デキューがサポートされるため、アプリケーション開発者はOracle Streamsを使用してメッセージを確実に交換できます。また、Oracle Streamsの変更取得および伝播機能を活用することで、データ変更をアプリケーションに通知できます。

Oracle Streamsによるレプリケーション

Oracle Streamsは、該当する情報を自動的に判別し、その情報を必要としているユーザーと共有するための情報共有テクノロジです。このアクティブな情報共有には、DML変更やDDL変更がカプセル化されているメッセージを含むデータベース内でのメッセージの取得と管理、および他のデータベースやアプリケーションへのメッセージの伝播が含まれます。データ変更には、レプリカ・データベースに直接適用する方法と、ユーザー定義のサブプログラムをコールして宛先データベースで代替処理を実行する方法があります。たとえば、そのようなサブプログラムでは、データ・ウェアハウスのロードに使用したステージング表を移入できます。

この項の内容は、次のとおりです。

DML変更およびDDL変更の取得

Oracle Streamsのレプリケーション構成は、レプリケートするオブジェクトまたはオブジェクトの集合を指定することから始まります。Oracle Streamsの暗黙的な取得メカニズムのどちらか一方または両方を使用すると、指定したオブジェクトに対する変更を効率的に取得し、元のシステムにはほとんど影響を与えずに1つ以上のリモート・システムにレプリケートできます。取得プロセスを使用すると、データ変更(DML)と構造変更(DDL)の両方をREDOログから抽出できます。同期取得を使用した場合には、DML変更が行われるとそれらの変更を取得する内部メカニズムが使用されます。取得された変更は、ステージング領域にパブリッシュされます。

取得プロセスを使用したログベースの取得では、表に対する変更がREDOログに記録されるという事実を利用して、誤動作やメディア障害が発生した場合にもリカバリ可能性が保証されます。変更をREDOログから直接取得することにより、システムのオーバーヘッドが最小限で済みます。Oracle Databaseは、データベース上でのアクティビティ履歴情報を含むREDO情報を読取り、分析および解析できます。また、Oracle Streamsでは情報をマイニングして変更データを取得プロセスに配信できます。

同期取得を使用した変更の取得は、DML変更が比較的少数のデータベース・オブジェクトにレプリケートされる環境に最適です。同期取得では内部メカニズムを使用して、行われたDML変更が取得されたことを確認します。

Oracle Streamsテクノロジを利用するレプリケート・データベースは、同一である必要はありません。その一部となっているデータベースは、Oracle Streamsを使用して異なるデータ構造を維持し、データを適切なフォーマットに変換できます。Oracle Streamsには、変更の取得時、他のデータベースへの伝播中または宛先サイトでの適用中など、複数の時点でストリームを変換する機能が用意されています。これらの変換機能は、Oracle Streamsフレームワークに登録されているユーザー定義ファンクションです。この変換機能は、たとえば、表の特定列のデータ型表現を変更したり、表の列名や表名を変更する際に使用できます。

各サイトにあるデータを内容に基づいてサブセット化することもできます。たとえば、レプリカでは、部門ID列に基づいて特定の部門に所属する従業員のみが表に含まれることを指定するルールを使用できます。Oracle Streamsでは変更が自動的に管理され、レプリカ内のデータとサブセット・ルールの基準が確実に一致することになります。

有向ネットワークでの変更の伝播

ステージング領域にあるメッセージは、他のデータベースのステージング領域に送信できます。Oracle Streamsの有向ネットワーク機能により、パススルーとして中間データベースを介して変更を送ることができます。どのデータベースでの変更も、パブリッシュし、ネットワーク上のあらゆる場所に直接または他のデータベースを介して伝播できます。ステージング領域にあるキューのルールベースのパブリッシュ・サブスクライブ機能を使用すると、データベース管理者は各宛先データベースに伝播する変更を選択し、メッセージが宛先へと横断するルーティングを指定できます。

このため、たとえば、会社が特定のスキーマに対する変更をすべて取得し、ロンドンにあるヨーロッパ本社にはヨーロッパの顧客に対する変更のみを伝播し、ロンドン支社に関連する変更のみを適用して各現地支社で適用するサイト固有の情報は転送するように、レプリケーションを構成できます。

この有向ネットワーク・アプローチはWide Area Network(WAN)でも一般的であり、以降の宛先に対する変更は、それぞれの宛先に直接送信するのではなく、単一サイトへとネットワークを横断させてから、後で他の宛先へと展開させることができます。

競合の解消と変更の適用

ステージング領域に置かれたメッセージは適用プロセスで使用され、そこでメッセージが表す変更がデータベース・オブジェクトに適用されるか、アプリケーションで使用されます。ユーザー定義の適用プロシージャにより、適用するメッセージ全体を制御できます。

カスタム適用機能を使用する場合は、表に対する各種DML操作(INSERT、UPDATEまたはDELETE)を処理するために個別のプロシージャを定義できます。たとえば、このカスタム適用機能を使用すると、salary表内の従業員の値に基づいて、給与が$100,000を超えている従業員については、employees表に対する削除の適用をすべてスキップするプロシージャを記述できます。給与が$100,000未満の従業員の場合の削除と同様に、employees表に対する挿入と更新はデフォルトの適用エンジンを使用して引き続き適用されます。

カスタム適用機能を使用して、データのカスタム変換を実行することもできます。たとえば、元のサイトで行われた1つの表に対する変更を、リモート・ロケーションにある3つの異なる表に適用する必要が生じることがあります。

レプリケーション環境でのリモート・データベースは読取り/書込み用に完全にオープンにできるため、ソース・データベースの同一コピーである必要はありません。リモート・データベースが他の手段で更新されることもあるため、適用プロセスでは変更の適用前に競合が検出されます。このような競合は、組込みまたはカスタムの解消メカニズムを使用して自動的に解消することもできます。

Oracle Streams アドバンスト・キューイング

Oracle Streams Advanced Queuingには、データベースの統合のみでなく、最も堅牢で豊富な機能を備えたメッセージ・キューイング・システムに必要な多数の機能が用意されています。これらの機能により開発者の生産性が改善され、管理者にとっての運用上の負荷が軽減され、Oracleベースの分散アプリケーションの構築および維持管理コストが削減されます。次の各項では、これらの機能について説明します。

この項の内容は、次のとおりです。

非同期によるアプリケーションの統合

Oracle Streams Advanced Queuingは、分散アプリケーションの非同期による統合を実現します。メッセージのエンキューには、複数の方法が用意されています。メッセージは、取得プロセスまたは同期取得が暗黙的に取得するか、アプリケーションやユーザーが明示的に取得できます。

また、遅延と存続期間を指定してメッセージをエンキューできます。遅延を指定すると、メッセージを後で参照できるようにエンキューできます。アドバンスト・キューイングは、使用前にメッセージを順序付けする操作についても複数の方法をサポートしています。たとえば、メッセージの順序付けには、先入れ先出し方式と優先順位ベースがあります。

メッセージの使用方法も複数用意されています。自動適用の場合は、メッセージに対するユーザー指定アクションを起動できます。使用側アプリケーションでは、メッセージを明示的にデキューできます。デキューのブロック化と非ブロック化の両方がサポートされます。使用側アプリケーションは、PL/SQL、OCIまたはJavaコールバック・ファンクションを使用して手続き型で通知を受け取るように選択できます。または、電子メールまたはHTTPポストで通知を取得する方法もあります。使用側アプリケーションで自動適用を実行するように選択することも可能です。

拡張可能な統合アーキテクチャ

Oracle Streams Advanced Queuingは、分散アプリケーションを開発して統合するための拡張可能なフレームワークを提供します。多くのアプリケーションは、Oracle Databaseをハブとする分散ハブ・アンド・スポーク・モデルを使用して統合されます。

Oracleデータベース上の分散アプリケーションは、同じOracleデータベース・サーバー・ハブのキューと通信します。Oracle Databaseの拡張可能なフレームワークにより、複数のアプリケーションが同じキューを共有できるため、サポートするアプリケーション数を増やすためにキューをさらに追加する必要がありません。

また、アドバンスト・キューイングはマルチ・コンシューマ・キューをサポートしており、1つのメッセージを複数のアプリケーションで使用できます。新規のアプリケーションが追加されるたびに、これらのアプリケーションでは、Oracleデータベース・サーバー・ハブと同じキューおよび同じメッセージを使用してビジネス・トランザクションを調整できます。この方法には、メッセージが1度しか配信されないという保証はそのままで、拡張性が得られるという利点があります。

アドバンスト・キューイングはコンテンツベースのパブリッシュ・サブスクライブ・モデルをサポートしています。この場合、アプリケーションはメッセージをパブリッシュし、コンシューマはパブリッシャ・アプリケーションを認識せずにメッセージにサブスクライブします。この種のモデルでは、既存のアプリケーションに変更を加えずに、コンシューマ・アプリケーションをハブに追加できます。

分散アプリケーションが異なるOracle Databaseで実行されている場合は、ビジネス上の通信を適切なOracle Databaseに自動的に伝播できます。伝播は、Oracle Streams Advanced Queuingシステムにより自動的に管理され、アプリケーションに対しては透過的です。

異機種間アプリケーションの統合

従来、アプリケーションが異なる場合は、共通のデータ・モデルを通信に使用する必要がありました。このデータ・モデルは、メッセージ指向のミドルウェアでサポートされるデータ型に制限があったため、さらに限定されていました。Oracle Streams Advanced Queuingは、複数のデータ型のメッセージを格納できるANYDATAキューをサポートしています。

アドバンスト・キューイングは、アプリケーションにOracleタイプ・システムの全機能を提供します。これには、NUMBERDATEVARCHARなどのスカラー・データ型、継承を伴うOracle Databaseオブジェクト型、XMLデータ用の追加演算子を持つXMLTypeおよびANYDATAのサポートが含まれます。特に、XMLType型がサポートされるため、アプリケーション開発者はビジネス通信の拡張性と柔軟性に関するXMLの全機能を活用できます。

Oracle Streams Advanced Queuingには、変換機能も用意されています。異なるデータ・モデルを持つアプリケーションは、独自のデータ・モデルとの間でメッセージをデキューまたはエンキューしながらメッセージを変換できます。このような変換マッピングはSQL式として定義され、PL/SQLファンクション、Java関数または外部Cコールアウトを含むことができます。

従来型アプリケーションの統合

Oracle Messaging Gatewayは、Oracle DatabaseアプリケーションをWebSphere MQ(旧称MQ Series)やTibcoなどの他のメッセージ・キューイング・システムと統合します。メインフレーム上の多くの従来型アプリケーションはWebSphere MQと通信するため、これらのアプリケーションをOracle Database環境に統合する必要があります。メッセージ・ゲートウェイは、Oracle以外のメッセージ・キューをOracle Streamsキューであるかのように見せて、Oracle StreamsキューとWebSphere MQまたはTibcoのキューの間でメッセージを自動的に伝播します。

複数のパートナにまたがる分散アプリケーションは、Oracle Streams Advanced Queuingのインターネット・アクセス機能を使用して調整できます。これらの機能を使用すると、ビジネス・パートナやアプリケーションは、インターネット上のアドバンスト・キューイングのキューに注文を安全に入れることができます。権限を付与されていて認証を受けたビジネス・パートナのみが、このような操作を実行できます。

アドバンスト・キューイングのインターネット操作は、インターネットでの転送にHTTP(S)などのXMLベース・プロトコルを利用しており、メッセージはセキュリティを維持しつつファイアウォールを通過できます。インターネット通信のサポートにより、通信コストが劇的に削減されるため、ソリューション全体のコストも削減されます。

標準ベースAPIのサポート

Oracle Streams Advanced Queuingは、業界標準のAPIであるSQL、JMSおよびSOAPをサポートしています。SQLを使用してデータベースに行われた変更は、メッセージとして自動的に取得されます。

同様に、配布されたメッセージとデータベースの変更を、データベース表に適用してSQLで表示できます。メッセージは、業界標準のJMSを使用してエンキューおよびデキューできます。アドバンスト・キューイングには、メッセージのエンキューとデキューのためのSOAPベースのXML APIも用意されており、OCIとOCCIをサポートしています。

データベース変更通知

クライアント・アプリケーションは、登録された問合せの結果セットが変更された場合、通知を受け取ることができます。たとえば、クライアントがhr.employees表の問合せを登録し、あるユーザーが従業員を追加した場合、このアプリケーションは、新しい行が表に追加されたときにデータベース変更通知を受け取ることができます。hr.employeesの新しい問合せでは、変更された結果セットが戻されます。データベース変更通知は多くの開発コンテキストに適していますが、キャッシュ・データに依存する中間層アプリケーションに特に有効です。

関連項目

データベース変更通知の使用方法の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。 

チェンジ・データ・キャプチャ

Oracle Streamsのインフラストラクチャを使用するチェンジ・データ・キャプチャ機能により、Oracle Databaseのリレーショナル表に対して追加、更新または削除されたデータが効率的に識別されて取得され、変更データがETLツールおよびアプリケーションで使用可能になります。Oracle Streamsのチェンジ・データ・キャプチャ機能を使用すると、表全体ではなく変更があったデータのみがすばやく識別され、処理されます。

関連項目

『Oracle Databaseデータ・ウェアハウス・ガイド』 

異機種間環境

Oracle Streamsはオープンな情報共有ソリューションであり、OracleとOracle以外のシステム間での異機種間レプリケーションをサポートしています。Oracle Database Gatewayを使用すると、Oracle Databaseで実行されたDML変更をOracle以外のデータベースに適用できます。

Oracle DatabaseソースからOracle以外の宛先へのDML変更の取得と適用を実装するために、Oracle Databaseシステムはプロキシとして機能し、通常はOracle Database宛先サイトで実行される適用プロセスを実行します。Oracle Databaseシステムではさらに、Oracle Database Gatewayを使用してOracle以外のシステムとの通信が行われます。

変更はOracle Database自体でデキューされ、ローカル適用プロセスによりOracle Database Gatewayを使用してネットワーク接続全体のOracle以外のシステムに対して適用されます。

Oracle以外のデータベースからOracle Databaseへと変更を伝播させる必要のあるユーザーは、Oracle以外のデータベースに対する変更を取得するアプリケーションを記述します。このアプリケーションでは、トランザクション・ログを読み取るかトリガーを使用して変更を取得できます。その後、アプリケーションではこれらの変更をトランザクションにアセンブルし順序付けしてから、論理変更レコード(LCR)形式に変換して、ターゲットであるOracle Databaseのステージング領域にパブリッシュする必要があります。これらの変更の適用は、Oracle Streamsの適用プロセスによって行われます。

関連項目

 

Oracle Streamsのユースケース

Oracle Streamsを使用すると、新しいクラスのアプリケーションを使用可能にするための構成を作成できます。また、すべてのデプロイメントとその関連メタデータには互換性があります。たとえば、レプリケーションのインストールは、データ・ウェアハウスをロードするように簡単に拡張し、双方向のレプリケーションを使用可能にすることができます。このため、完全な再構成を必要としません。

会社が、可用性、スケーラビリティおよびパフォーマンスを改善するために、Oracle Streamsを使用して自社のWebサイトのコピーを複数維持するとします。その他の要件として、ニューヨークの本社にいるアナリストが非定型問合せを実行できるように、レポート用データベースには最新の情報を格納し、障害時リカバリ用データベースはニューヨーク本社とは別個に管理する必要があります。また、更新可能なマテリアライズド・ビューを使用して、現場の営業担当をサポートできるようにします。最後の要件は、Sybaseデータベースで管理されている既存のアプリケーションとデータを共有することです。

図23-2に、Oracle Streamsの構成を示します。

図23-2    Oracle Streamsの構成


画像の説明

Oracle Streamsは、ニューヨーク、ロンドンおよび東京という3つの地域別サイトで構成されるN方向の構成でデータをレプリケートするために使用されます。これらの各サイトでは、Oracle Streamsの暗黙的な取得機能により、各地のサブスクライブ表に発生する変更が収集され、キューにローカルにステージングされます。各地で取得されたすべての変更は、その他の地域のそれぞれのデータベースに転送されます。目的は、各データベースで行われた変更を、その他すべてのデータベースに反映することです。これにより、サブスクライブされた世界中のオブジェクトの完全なデータが提供されます。

更新は各地域のデータベースで受信された時点で自動的に適用されるため、Oracle Streamsの適用プロセスを使用して変更が適用されます。変更が適用されると、Oracle Streamsにより競合の有無をチェックし、検出された場合はそれを解消します。また、Oracle Streamsを使用してOracle以外のデータベースとの間で特定の表データを交換することもできます。Oracle Database Gateway for Sybaseを利用すると、Oracle Streamsの適用プロセスはOracle Databaseの場合と同じメカニズムを使用して変更をSybaseデータベースに適用します。

レポートおよび障害時リカバリ用のデータベースは、ニューヨークのデータベース・サイトからホスティングされます。レポート用データベースは、該当するアプリケーション表の読取り専用コピーが格納されている、全機能を備えたOracle Databaseです。レポート・サイトは、これらのアプリケーション表に対する変更を取得するように構成されていません。このレポート用データベースの構成と使用には制限が課されません。

ロンドンのサイトは、複数の更新可能マテリアライズド・ビュー・サイトのマスター・サイトとしても機能します。各営業担当は、データのうち必要な部分のみの更新可能なコピーを受け取ります。通常、これらのサイトは、前回のリフレッシュ以降に発生した注文をアップロードして変更をダウンロードするために、1日に1度のみ接続します。

マテリアライズド・ビュー

Oracle Streamsはマテリアライズド・ビューと全面的に相互運用可能です。マテリアライズド・ビューは、更新可能または読取り専用の、データの特定時点のコピーを維持するために使用できるスナップショットです。スナップショットは、値ベースの選択基準と一致するマスター表全体のコピー、またはその各行のサブセットを含めるように定義できます。多重化マテリアライズド・ビューも使用でき、この場合は1つのマテリアライズド・ビューが別のマテリアライズド・ビューに基づいています。マテリアライズド・ビューは、トランザクション一貫性を持つバッチ更新を介して、対応するマスター表から定期的に更新またはリフレッシュされます。

製品カタログは本社でのみ更新されるため、読取り専用のマテリアライズド・ビューを使用すると、更新された製品カタログを各種の営業支社に定期的に伝播させることができます。

マテリアライズド・ビューは専用接続を必要としないため、モバイル・コンピューティングに最適です。たとえば、会社が、営業担当用に更新可能なマテリアライズド・ビューを使用するように選択するとします。営業担当は各自のラップトップに注文を随時入力し、その日の終わりに地域の営業所に接続するだけで、これらの変更をアップロードして更新があればダウンロードできます。

関連項目

レプリケーションにマテリアライズド・ビューを使用する方法は、『Oracle Databaseアドバンスト・レプリケーション』を参照してください。 

Oracle Databaseでのデータの比較および収束

データベース・オブジェクトは、2つ以上のOracle Databaseで共有できます。データベース・オブジェクトを共有する方法の1つは、Oracle Streamsまたはマテリアライズド・ビューの機能を使用するレプリケーション環境を構成することです。通常、レプリケーション環境では、索引などのその他のタイプのデータベース・オブジェクトのみでなく、表などのデータを含むデータベース・オブジェクトも共有されます。あるデータベースの共有データベース・オブジェクトに変更が加えられると、その変更は転送され、そのデータベース・オブジェクトを共有するその他のデータベースでも変更が実行されます。この方法では、レプリケーション環境により、各データベースで共有データベース・オブジェクトの同期が維持されます。

これらの共有データベース・オブジェクトのデータが、そのデータベース・オブジェクトを共有するデータベースで同一でない場合があります。データの差異には、ネットワークの問題、コンピュータ・システムの問題およびレプリケーション構成エラーなど様々な要因があります。

DBMS_COMPARISONパッケージを使用すると、異なるデータベースのデータベース・オブジェクトを比較して、その相違を特定できます。このパッケージでは、異なるデータベースで一貫性を保てるよう、データベース・オブジェクトを収束することもできます。

DBMS_COMPARISONパッケージでは、次のタイプのデータベース・オブジェクトを比較および収束できます。

比較の結果は、DBA_COMPARISONDBA_COMPARISION_SCANDBA_COMPARISON_COLUMNSおよびDBA_COMPARISON_ROW_DIFを含む複数のデータ・ディクショナリ・ビューに保存されます。

関連項目

  • 『Oracle Database 2日でデータ・レプリケーションおよび統合ガイド』

  • 『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』

  • 『Oracle Databaseリファレンス』

 

Oracle以外のシステムの統合

Oracle DatabaseとOracle以外のデータベースとの統合に関して、Generic ConnectivityとOracle Database Gatewayという2つのソリューションが用意されています。この2つのソリューションを使用すると、Oracle DatabaseクライアントからOracle以外のデータ・ストアにアクセスできます。この2つのコンポーネントはサード・パーティのSQL言語、データ・ディクショナリおよびデータ型をOracle形式に変換し、Oracle以外のデータ・ストアをリモートOracle Databaseとして使用可能にします。これらのテクノロジにより、企業は各種システムをシームレスに統合し、全社的に連結されたビューを提供できます。

Generic ConnectivityおよびOracle Database Gatewayは、分散SQLによる同期アクセスに使用できます。また、Oracle Database Gatewayは、Oracle Streamsによる非同期アクセスに使用できます。Oracle Streams環境にOracle Database Gatewayを導入することで、Oracle DatabaseからOracle以外のデータベースへのデータ・レプリケーションが可能になります。

Generic ConnectivityとOracle Database Gatewayは、どちらもOracle Database環境からOracle以外のシステムのデータに透過的にアクセスします。Oracle分散データベース環境の場合と同様に、位置の透過性をOracle以外のシステムにあるオブジェクトへと拡張することも可能です。そのため、ユーザーはOracle以外のデータベースにあるオブジェクト用のシノニムを作成し、その物理位置を指定せずに参照できます。この透過性により、アプリケーション開発者はアプリケーションをOracle以外の様々なシステムのデータにアクセスするようにカスタマイズする必要がないため、開発作業が軽減され、アプリケーションのモバイル性が向上します。アプリケーションでは、システム固有のインタフェースを使用してOracle以外のシステムと相互に操作する必要がなく(この方法ではアプリケーション側に処理が集中する可能性があります)、Oracle DatabaseシステムとOracle以外のシステムの両方に一貫性のあるOracle Databaseインタフェースを使用できます。

この項の内容は、次のとおりです。

Generic Connectivity

Generic Connectivityは、ODBCまたはOLEDBドライバを使用して、ODBCまたはOLEDBに準拠するOracle以外のシステムにアクセスする汎用ソリューションです。また、Oracleにゲートウェイ・ソリューションが用意されていない多数のデータ・ストアへのデータ・アクセスを提供します。これにより、ODBCやOLEDBなどの業界標準を使用した透過的接続性が使用可能になります。Generic Connectivityでは、Foxpro、Access、dBaseなどのローエンド・データ・ストアやExcelなどの非リレーショナル・ターゲットにアクセスできます。

Oracle Database Gateways

Generic Connectivityは汎用ソリューションですが、Oracle Database Gatewayは調整されたソリューションであり、Oracle以外のシステム向けに特別にコーディングされています。Generic Connectivityよりも優れた機能性とパフォーマンスを持つ最適化されたソリューションを提供します。

Generic Connectivityは業界標準に依存しているのに対して、Oracle Database GatewayはOracle以外のシステムにシステム固有のインタフェースを使用してアクセスします。また、Oracle Database Gatewayはエンドツーエンドで認証が行われます。Oracle Databaseには、Sybase、DB2、InformixおよびMicrosoft SQL Serverなど、多数のソース用のOracle Database Gatewayが用意されています。

関連項目

『Oracle Database Heterogeneous Connectivity管理者ガイド』 


戻る 次へ
Oracle
Copyright © 1993, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引