この章では、データベース環境に適切なキャプチャおよび適用モードを決定するために役立つ情報について説明します。
この章の内容は次のとおりです。
Oracle GoldenGateキャプチャ・プロセスは、Extract
と呼ばれます。Extractプロセスの各インスタンスは、group
と呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。
data pump
と呼ばれる追加のExtractプロセスは、ソース・システムで使用することをお薦めします(これにより、キャプチャされたデータは、trail
と呼ばれる一連のファイルにローカルに保持できます)。データ・ポンプはデータをキャプチャしませんが、ローカルの証跡を読み取り、ネットワーク経由でデータをターゲットに伝播します。
Oracle GoldenGate適用プロセスは、Replicat
と呼ばれます。Replicatプロセスの各インスタンスは、group
と呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。Replicatは、trail
と呼ばれる、ローカル記憶域に送信されるデータを読み取り、ターゲット・データベースに適用します。
図5-1は基本的なOracle GoldenGateプロセス構成を示しています。Oracle GoldenGateプロセスの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
注意: Oracleデータベースは、Extractでログ・ファイルを処理できるように、ARCHIVELOG モードにする必要があります。 |
Oracleソース・データベースの場合、クラシック・キャプチャ・モードまたは統合キャプチャ・モードのいずれかでExtractを実行できます。使用する方法によって、Oracle GoldenGateプロセスの構成が決定されますが、次のような要因に依存します。
含まれるデータ型
データベース構成
Oracleデータベースのバージョン
次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。
クラシック・キャプチャ・モードでは、Oracle GoldenGate Extractプロセスは、ソース・システムのOracle REDOまたはアーカイブ・ログ・ファイルまたはスタンバイ・システムの転送されたアーカイブ・ログからデータ変更をキャプチャします。図5-2はクラシック・キャプチャ・モードでのExtractの構成を示しています。
クラシック・キャプチャでは、ほとんどのOracleデータ型が完全にサポートされ、複雑なデータ型は制限付きでサポートされます。クラシック・キャプチャは、オリジナルのOracle GoldenGateキャプチャ方法です。クラシック・キャプチャは、マルチテナント・コンテナ・データベースを除く、Oracle GoldenGateでサポートされる任意のソースOracle RDBMSに対して使用できます。
次のもののサポートにクラシック・キャプチャを使用できます。
ソース・データベース互換性が11.2.0.0.0未満に設定されたUDT、VARRAY、NOLOGGING
LOB
ソース・データベース互換性が11.0.0.0.0未満に設定されたTransparent Data Encryptionサポート
ソース・データベース互換性が11.2.0.0.0未満に設定されたSECUREFILE
LOBサポート
ソース・データベース互換性が11.2.0.0.0未満に設定されたNOLOGGING
LOBサポート
詳細は、1.5項「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。
統合キャプチャ・モードでは、Oracle GoldenGate Extractプロセスはデータベース・ログマイニング・サーバーと直接対話し、論理変更レコード(LCR)形式でデータの変更を受け取ります。図5-3は統合キャプチャ・モードでのExtractの構成を示しています。
統合キャプチャでは、クラシック・キャプチャより多くのデータと記憶域のタイプがサポートされ、サポートがより透過的です。詳細は、1.5項「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。
統合キャプチャのその他の利点は、次のとおりです。
統合キャプチャはデータベースと完全に統合されているため、Oracle RAC、ASMおよびTDEと組み合せる場合に追加設定は必要ありません。
統合キャプチャでは、データベース・ログマイニング・サーバーを使用してOracle REDOストリームにアクセスします。アーカイブ・ログの異なるコピー間またはオンライン・ログの異なるミラー・バージョン間での切替えは自動的に行われます。したがって、統合キャプチャでは、ディスクの破損、ハードウェア障害またはオペレータの誤操作によって使用できないログ・ファイルがある場合、その他のアーカイブ・ログやオンライン・ログが使用できれば、この状態が透過的に処理されます。
統合キャプチャによって、表のフィルタリングが高速になります。
統合キャプチャでは、Point-in-TimeリカバリおよびRAC統合がより効率的に処理されます。
統合キャプチャには、統合ログ管理の機能が備わっています。Oracle Recovery Manager (RMAN)で、Extractで必要なアーカイブ・ログが自動的に保持されます。
統合キャプチャは、マルチテナント・コンテナ・データベースからのキャプチャをサポートする唯一のモードです。1つのExtractで、マルチテナント・コンテナ・データベース内の複数のプラガブル・データベースをマイニングできます。
リリース11.2.0.4以降のソース・データベース(11.2.0.4以上に設定されたソース互換性)の場合、DDLのキャプチャはログマイニング・サーバーによって非同期に実行され、専用のトリガー、表またはその他のデータベース・オブジェクトをインストールする必要はありません。Oracle GoldenGateのアップグレードは、ユーザー・アプリケーションを停止することなく実行できます。DDLトリガーおよびサポート・オブジェクトを使用する必要があるのは、Extractが統合モードで、Oracle 11gソース・データベースがバージョン11.2.0.4より前の場合です。
統合キャプチャおよび統合適用は両方ともデータベース・オブジェクトのため、オブジェクトの命名は、他のOracle Databasオブジェクトと同じルールに従います。詳細は、『Oracle Database管理者ガイド』を参照してください。
データベースのバージョンによって、統合キャプチャで使用可能なデータ型サポートが決まります。
フル・サポート: すべてのOracleデータ型と記憶域のタイプをサポートするには、ソース・データベースの互換性設定を統合Extract 11.2.x用11.2.0.3データベース固有のバンドル・パッチ(My Oracle SupportドキュメントID 1557031.1)が適用された11.2.0.3以上にする必要があります。このパッチをMy Oracle Supportから入手するには、次へ移動します。
DDLサポート・オブジェクトをインストールせずにDDLキャプチャをサポートするには、ソース・データベースをOracle 11.2.0.4以上にする必要があります。それより前のデータベース・バージョンでは、DDLサポート・オブジェクトが必要です。詳細は、付録D「トリガーベースのDDLキャプチャのインストール」を参照してください。
制限付きサポート: 統合キャプチャは、互換性が11.2.0.3未満のソース・データベースに対する11.2.0.3ダウンストリーム・マイニング・データベースで使用できますが、このモードでは、SECUREFILE
LOB、XML列、Transparent Data EncryptionおよびUDTのサポートは、データベース・バージョンおよび互換性に基づいて制限されます。ダウンストリーム・マイニング・データベースは、統合Extract 11.2.x用11.2.0.3データベース固有のバンドル・パッチ(Doc ID 1557031.1)が適用されている必要があります。5.2.2.2項「統合キャプチャ・デプロイ・オプション」を参照してください。ダウンストリーム・マイニング・データベースは、マイニングされるソース・データベース・リリースと同じ(またはそれ以上の)データベース・リリース(11.2.0.3以上)である必要があります。
異なるRDBMSバージョン間のデータ型サポートの違いを理解するには、1.5項「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。
統合キャプチャには、マイニング・データベースのデプロイ場所に応じて使用されるデプロイ・オプションが2つあります。マイニング・データベースは、ログマイニング・サーバーがデプロイされているデータベースです。
ローカル・デプロイ: ローカル・デプロイの場合、ソース・データベースとマイニング・データベースは同じです。ソース・データベースは、REDOストリームをマイニングして変更をキャプチャする対象のデータベースで、ログマイニング・サーバーのデプロイ先でもあります。統合キャプチャはデータベースと完全に統合されているため、このモードでは、特別なデータベース設定は不要です。
ダウンストリーム・デプロイ: ダウンストリーム・デプロイでは、ソース・データベースとマイニング・データベースは、異なるデータベースです。ログマイニング・サーバーは、ダウンストリーム・データベースに作成します。REDOログをダウンストリーム・マイニング・データベースに転送してそこでキャプチャを行うようにソース・データベースのREDO転送を構成します。キャプチャのオーバーヘッドや変換によるその他のオーバーヘッドおよび本番サーバーの他の処理を軽減するには、キャプチャにダウンストリーム・マイニング・サーバーを使用することをお薦めしますが、これにはログの転送や他の構成が必要です。
ダウンストリーム・マイニング構成を使用する場合、ソース・データベースとマイニング・データベースは同じプラットフォームのものである必要があります。たとえば、ソース・データベースがWindows 64ビットで稼働している場合、ダウンストリーム・データベースのプラットフォームもWindows 64ビットである必要があります。ダウンストリーム・マイニング・データベースを構成するには、付録B「ダウンストリーム・マイニング・データベースの構成」および付録C「ダウンストリーム・マイニング構成の例」を参照してください。
Replicatプロセスは、レプリケートされたデータをOracleターゲット・データベースに適用します。Oracle GoldenGateプロセスの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
Oracleターゲット・データベースの場合、非統合モードまたは統合モードのいずれかでReplicatを実行できます。次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。
非統合モードでは、Replicatプロセスは標準のSQLを使用してデータを直接ターゲット・データベースに適用します。このモードでは、Replicatは次のように動作します。
Oracle GoldenGate証跡を読み取ります。
データのフィルタリング、マッピング、および変換を実行します。
ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。
Oracle Call Interface (OCI)でSQLをターゲットに適用する。
図5-4は非統合モードでのReplicatの構成を示しています。
非統合Replicatは、次の場合に使用します。
ターゲットOracleデータベースのバージョンがOracle 11.2.0.4より前の場合。
非統合Replicatモードでサポートされない機能を多用する場合。詳細は、5.3.2項「統合Replicatについて」を参照してください。
条件付きReplicat構成を使用することで、トランザクションを非統合Replicatと並行して適用できます。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
統合モードでは、Replicatプロセスは、Oracleデータベース内で使用可能な適用処理機能を利用します。このモードでは、Replicatは次のように動作します。
Oracle GoldenGate証跡を読み取ります。
データのフィルタリング、マッピング、および変換を実行します。
ソース・データベースDMLトランザクションを表す論理変更レコード(LCR)を構築する(コミットされた順)。DDLはReplicatによって直接適用されます。
軽量ストリーミング・インタフェースによって、データベース・インバウンド・サーバーと呼ばれるターゲット・データベースのバックグラウンド・プロセスにアタッチする。
LCRをインバウンド・サーバーに転送し、データをターゲット・データベースに適用する。
図5-5は統合モードでのReplicatの構成を示しています。
単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。この並列度は、Replicatプロセスの構成時、または必要に応じて動的に、ターゲット・システムのサポートに応じて増加できます。図5-6は2つの並列適用サーバーで構成された統合Replicatを示しています。
統合Replicatはトランザクションを非同期に適用します。高速のスループットを達成するために、相互依存性のないトランザクションを安全に実行して順不同でコミットできます。相互依存性のあるトランザクションは、ソースと同じ順序で適用されます。
インバウンド・サーバーのリーダー・プロセスは、ターゲット・データベースで定義される制約(主キー、一意キー、外部キー)に基づいて、ワークロードのトランザクション間の相互依存性を計算します。バリア・トランザクションおよびDDL操作も自動的に管理されます。コーディネータ・プロセスは、複数のトランザクションを調整し、適用サーバー間の順序を管理します。
インバウンド・サーバーが構成済機能または列タイプをサポートしていない場合、Replicatはインバウンド・サーバーから切断して、インバウンド・サーバーがキューのトランザクションを完了するのを待機し、OCIを使用して直接適用モードでトランザクションをデータベースに適用します。Replicatは、直接トランザクションの適用後に統合モードで処理を再開します。
次の機能は、Replicatによって直接モードで適用されます。
DDL操作
順序操作
TABLE
内のSQLEXEC
パラメータまたはMAP
パラメータ
EVENTACTIONS
処理
UDTに関する注意: ExtractがUSENATIVEOBJSUPPORT
を使用してUDTを取得すると、統合Replicatがインバウンド・サーバーで適用し、そうでない場合は、Replicatによって直接処理されます。
トランザクションは、直接適用モードでシリアルに適用されるため、このような操作を多用すると、統合Replicatモードのパフォーマンスが低下する場合があります。統合Replicatは、適用処理のほとんどが統合モードで実行可能な場合に、最高のパフォーマンスを発揮します。15.5項「インスタンス化後の処理の監視および制御」を参照してください。
注意: ユーザー・イグジットは統合モードで実行されます。ユーザー・イグジットにより予期しない結果が発生する場合がありますが、終了コードは、レプリケーション・ストリームのデータによって異なります。 |
非統合Replicatではなく統合Replicatを使用する利点は次のとおりです。
統合Replicatは、複数のトランザクションを同時に適用するパラレル適用プロセス間で自動的にパーティション化でき、ソース・トランザクションの完全性とアトミック性を保持します。適用プロセスの最小数および最大数の両方をPARALLELISM
およびMAX_PARALLELISM
パラメータで構成できます。Replicatは、ワークロードが増加すると、追加のサーバーを自動的に追加し、ワークロードが軽減されると、再度下方に調整します。
統合Replicatでは、最小の作業を構成する必要があります。すべての作業は、レンジ・パーティションを構成することなく1つのReplicatパラメータ・ファイル内に構成されます。
高パフォーマンスの適用ストリーミングは、Replicatおよびインバウンド・サーバー間で、軽量アプリケーション・プログラミング・インタフェース(API)によって、統合Replicatで有効化されます。
バリア・トランザクションは、複数のサーバー適用プロセス間で、統合Replicatによって調整されます。
DDL操作は、DDLの実行前にサーバー処理が完了まで待機することで、バリアを強制する直接トランザクションとして処理されます。
一時的な重複主キー更新は、統合Replicatによってシームレスに処理されます。
統合Replicatは、単一またはプラガブル・データベースで動作します。
統合Replicatを使用するには、次の条件を満たす必要があります。
ターゲットOracleデータベースがOracle 11.2.0.4以上である必要があります。
表間の依存性の計算およびターゲットでの同時トランザクションのスケジューリングをサポートするには、サプリメンタル・ロギングをソース・データベースで有効にする必要があります。必要なロギングの有効化の手順は、第3章「ロギング・プロパティの構成」を参照してください。このロギングは任意の時点で有効化できますが、その前に、Oracle GoldenGateプロセスを開始します。
次のキャプチャおよび適用モードを一緒に使用できます。
クラシック・キャプチャ(Oracleまたは非Oracleソース)および非統合Replicat
クラシック・キャプチャ(Oracleまたは非Oracleソース)および統合Replicat
統合キャプチャおよび非統合Replicat
統合キャプチャおよび統合Replicat
統合キャプチャおよびクラシック・キャプチャを同じソースOracle GoldenGateインスタンス内で同時に使用し、統合Replicatおよび非統合Replicatを同じターゲットOracle GoldenGateインスタンス内で同時に使用できます。クラシック・キャプチャ・モードと統合キャプチャ・モード間、および非統合Replicatモードと統合Replicatモード間では、DDLまたはDMLは調整されないため、この構成には、適切なプロセス・グループ内にオブジェクトを慎重に配置する必要があります。各Extractグループでは、表のデータ型および属性に基づいて、処理モードに適したオブジェクトを処理する必要があります。一方のExtractのオブジェクトに、もう一方のExtractのオブジェクトのDMLまたはDDL依存性を含めることはできません。同じタイプの分離をReplicat構成に適用する必要があります。
Oracleバージョンによってサポートされる場合、推奨されるOracle GoldenGate構成は、1つの統合キャプチャをOracleソースで使用し、Oracleターゲットのソース・データベースごとに、1つの統合Replicatを使用することです。統合キャプチャは、クラシック・キャプチャよりも特定のデータ型を完全にサポートします。インバウンド・サーバーを使用するか、必要時に直接適用に切り替えることで、1つの統合Replicat構成ですべてのOracleデータ型をサポートし、ソース・トランザクションの完全性を保持します。必要に応じて、並列度設定を目的の適用パフォーマンス・レベルに調整できます。
ターゲット・データベースが統合ReplicatをサポートしないOracleバージョンか、Oracle以外のデータベースの場合は、調整済のReplicat構成を使用できます。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
プロセス・モードを切り替えることができます。たとえば、クラシック・キャプチャから統合キャプチャ、統合キャプチャからクラシック・キャプチャに切り替えることができます。手順は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。