4 「キャプチャおよび適用モードの選択」

この章では、データベース環境に適切なキャプチャおよび適用モードを決定するために役立つ情報について説明します。

内容は次のとおりです。

Oracle GoldenGateキャプチャおよび適用プロセスの概要

Oracle GoldenGateキャプチャ・プロセスは、Extractと呼ばれます。Extractプロセスの各インスタンスは、groupと呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。

data pumpと呼ばれる追加のExtractプロセスは、ソース・システムで使用することをお薦めします(これにより、キャプチャされたデータは、trailと呼ばれる一連のファイルにローカルに保持できます)。データ・ポンプはデータをキャプチャしませんが、ローカルの証跡を読み取り、ネットワーク経由でデータをターゲットに伝播します。

Oracle GoldenGate適用プロセスは、Replicatと呼ばれます。Replicatプロセスの各インスタンスは、groupと呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。Replicatは、trailと呼ばれる、ローカル記憶域に送信されるデータを読み取り、ターゲット・データベースに適用します。

次の図は、基本的なOracle GoldenGateプロセス構成を示しています。Oracle GoldenGateプロセスの詳細は、『Oracle GoldenGateの管理』を参照してください。

oracle_config.pngの説明が続きます
図illustration oracle_config.pngの説明

注意:

Oracle Databaseは、Extractでログ・ファイルを処理できるように、ARCHIVELOGモードにする必要があります。

使用するキャプチャ方法の決定

Oracleソース・データベースの場合、クラシック・キャプチャ・モードまたは統合キャプチャ・モードのいずれかでExtractを実行できます。

使用する方法によって、Oracle GoldenGateプロセスの構成が決定されますが、次のような要因に依存します。

  • 含まれるデータ型

  • データベース構成

  • Oracle Databaseのバージョン

次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。

クラシック・キャプチャについて

クラシック・キャプチャ・モードでは、Oracle GoldenGate Extractプロセスは、ソース・システムのOracle REDOまたはアーカイブ・ログ・ファイルまたはスタンバイ・システムの転送されたアーカイブ・ログからデータ変更をキャプチャします。次の図は、クラシック・キャプチャ・モードでのExtractの構成を示しています。

classiccapture.pngの説明が続きます
図classiccapture.pngの説明

クラシック・キャプチャでは、ほとんどの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サポート。

詳細は、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。

統合キャプチャについて

統合キャプチャ・モードでは、Oracle GoldenGate Extractプロセスはデータベース・ログマイニング・サーバーと直接対話し、論理変更レコード(LCR)形式でデータの変更を受け取ります。図4-1は統合キャプチャ・モードでのExtractの構成を示しています。

図4-1 統合キャプチャ

図4-1の説明が続きます
「図4-1 統合キャプチャ」の説明

統合キャプチャでは、クラシック・キャプチャより多くのデータと記憶域のタイプがサポートされ、サポートがより透過的です。詳細は、「各キャプチャ・モードでサポートされる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 Databaseオブジェクトと同じルールに従います(『Oracle GoldenGateの管理』Oracle GoldenGateの入力におけるオブジェクト名の指定に関する項を参照)。

統合キャプチャでサポートされるデータベースのバージョン

データベースのバージョンによって、統合キャプチャで使用可能なデータ型サポートが決まります。

  • フル・サポート: すべてのOracleデータ型と記憶域のタイプをサポートするには、ソース・データベースの互換性設定を統合Extract 11.2.x用11.2.0.3データベース固有のバンドル・パッチ(My Oracle SupportドキュメントID 1557031.1)が適用された11.2.0.3以上にする必要があります。このパッチをMy Oracle Supportから入手するには、次へ移動します。

    https://support.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1557031.1

  • DDLサポート・オブジェクトをインストールせずにDDLキャプチャをサポートするには、ソース・データベースをOracle 11.2.0.4以上にする必要があります。それより前のデータベース・バージョンでは、DDLサポート・オブジェクトが必要です(「トリガーベースの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)が適用されている必要があります。「統合キャプチャ・デプロイ・オプション」を参照してください。ダウンストリーム・マイニング・データベースは、マイニングされるソース・データベース・リリースと同じ(またはそれ以上の)データベース・リリース(11.2.0.3以上)である必要があります。

異なるRDBMSバージョン間のデータ型サポートの違いを理解するには、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。

統合キャプチャ・デプロイ・オプション

この項では、統合キャプチャのデプロイ・オプションについて説明しますが、それらはマイニング・データベースのデプロイ場所によって異なります。マイニング・データベースは、ログマイニング・サーバーがデプロイされているデータベースです。

  • ローカル・デプロイ: ローカル・デプロイの場合、ソース・データベースとマイニング・データベースは同じです。ソース・データベースは、REDOストリームをマイニングして変更をキャプチャする対象のデータベースで、ログマイニング・サーバーのデプロイ先でもあります。統合キャプチャはデータベースと完全に統合されているため、このモードでは、特別なデータベース設定は不要です。

  • ダウンストリーム・デプロイ: ダウンストリーム・デプロイでは、ソース・データベースとマイニング・データベースは、異なるデータベースです。ログマイニング・サーバーは、ダウンストリーム・データベースに作成します。REDOログをダウンストリーム・マイニング・データベースに転送してそこでキャプチャを行うようにソース・データベースのREDO転送を構成します。キャプチャのオーバーヘッドや変換によるその他のオーバーヘッドおよび本番サーバーの他の処理を軽減するには、キャプチャにダウンストリーム・マイニング・サーバーを使用することをお薦めしますが、これにはログの転送や他の構成が必要です。

    ダウンストリーム・マイニング構成を使用する場合、ソース・データベースとマイニング・データベースは同じプラットフォームのものである必要があります。たとえば、ソース・データベースがWindows 64ビットで稼働している場合、ダウンストリーム・データベースのプラットフォームもWindows 64ビットである必要があります。ダウンストリーム・マイニング・データベースを構成するには、「ダウンストリーム・マイニング・データベースの構成」および「ダウンストリーム・マイニング構成の例」を参照してください。

  • ダウンストリームOracle Active Data Guardデプロイ: FETCHUSERIDまたはFETCHUSERIDALIASパラメータを使用してuserid/pwd@adgを設定し、Oracle Active Data Guard (ADG)からフェッチできます。

    注意:

    ADGスタンバイからのフェッチの実行は、ADGスタンバイ・データベースからのキャプチャとは異なります。実際の統合ExtractコンポーネントはREAD/WRITEデータベースで実行する必要があります。これらの2つのパラメータは、どのデータベースからフェッチを実行するかのみを制御します。

  • ダウンストリーム・ソースレスExtractデプロイ: Extractパラメータ・ファイルでUSERIDパラメータをNOUSERIDで置換します。TRANLOGOPTIONS MININGUSERを使用する必要があります。このデプロイメントでは、ソース・データベースのREDOがOracle GoldenGateリリース11.2.0.4以上と互換性があることが必要です。Extractは必要な情報をすべてダウンストリーム・マイニング・データベースから取得します。ソース・データベースへの接続には依存しません。Extractに影響を与えることなくソース・データベースを停止および再起動できます。

    ソース・データベースからデータをフェッチする必要があるREDO変更が発生すると、Extractは異常終了します。

    このメソッドをFETCHUSERIDおよびFETCHUSERIDALIASとともに使用して、ADGスタンバイからフェッチすることもできます。

使用する適用方法の決定

Replicatプロセスは、レプリケートされたデータをOracleターゲット・データベースに適用します。

Oracleターゲット・データベースの場合、非統合モードまたは統合モードのいずれかでReplicatを実行できます。次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。

Oracle GoldenGateプロセスの詳細は、『Oracle GoldenGateの管理』を参照してください。

非統合Replicatについて

非統合モードでは、Replicatプロセスは標準のSQLを使用してデータを直接ターゲット・データベースに適用します。

このモードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。

  • Oracle Call Interface (OCI)でSQLをターゲットに適用する。

次の図は、非統合モードでのReplicatの構成を示しています。

非統合Replicatは、次の場合に使用します。

  • ターゲットOracle DatabaseのバージョンがOracle 11.2.0.4より前の場合。

  • 統合Replicatモードでサポートされない機能を多用する場合(「統合Replicatについて」を参照)。

条件付きReplicat構成を使用することで、トランザクションを非統合Replicatと並行して適用できます。

統合Replicatについて

統合モードでは、Replicatプロセスは、Oracle Database内で使用可能な適用処理機能を利用します。このモードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • ソース・データベースDMLトランザクションを表す論理変更レコード(LCR)を構築する(コミットされた順)。DDLはReplicatによって直接適用されます。

  • 軽量ストリーミング・インタフェースによって、データベース・インバウンド・サーバーと呼ばれるターゲット・データベースのバックグラウンド・プロセスにアタッチする。

  • データがターゲット・データベースに適用されるインバウンド・サーバーにLCRを転送します。

次の図は、統合モードでのReplicatの構成を示しています。

単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。この並列度は、Replicatプロセスの構成時、または必要に応じて動的に、ターゲット・システムのサポートに応じて増加できます。次の図は、2つの並列適用サーバーで構成された統合Replicatを示しています。

統合Replicatはトランザクションを非同期に適用します。高速のスループットを達成するために、相互依存性のないトランザクションを安全に実行して順不同でコミットできます。相互依存性のあるトランザクションは、ソースと同じ順序で適用されます。

インバウンド・サーバーのリーダー・プロセスは、ターゲット・データベースで定義される制約(主キー、一意キー、外部キー)に基づいて、ワークロードのトランザクション間の相互依存性を計算します。バリア・トランザクションおよびDDL操作も自動的に管理されます。コーディネータ・プロセスは、複数のトランザクションを調整し、適用サーバー間の順序を管理します。

インバウンド・サーバーが構成済機能または列タイプをサポートしていない場合、Replicatはインバウンド・サーバーから切断して、インバウンド・サーバーがキューのトランザクションを完了するのを待機し、OCIを使用して直接適用モードでトランザクションをデータベースに適用します。Replicatは、直接トランザクションの適用後に統合モードで処理を再開します。

次の機能は、Replicatによって直接モードで適用されます。

  • DDL操作

  • 順序操作

  • TABLE内のSQLEXECパラメータまたはMAPパラメータ

  • EVENTACTIONS処理

  • UDTに関する注意: ExtractがUSENATIVEOBJSUPPORTを使用してUDTを取得すると、統合Replicatがインバウンド・サーバーで適用し、そうでない場合は、Replicatによって直接処理されます。

トランザクションは、直接適用モードでシリアルに適用されるため、このような操作を多用すると、統合Replicatモードのパフォーマンスが低下する場合があります。統合Replicatは、適用処理のほとんどが統合モードで実行可能な場合に、最高のパフォーマンスを発揮します(「インスタンス化後の処理の監視および制御」を参照)。

注意:

ユーザー・イグジットは統合モードで実行されます。ユーザー・イグジットにより予期しない結果が発生する場合がありますが、終了コードは、レプリケーション・ストリームのデータによって異なります。

統合Replicatの利点

非統合Replicatではなく統合Replicatを使用する利点は次のとおりです。

  • 統合Replicatは、複数のトランザクションを同時に適用するパラレル適用プロセス間で自動的にパーティション化でき、ソース・トランザクションの完全性とアトミック性を保持します。適用プロセスの最小数および最大数の両方をPARALLELISMおよびMAX_PARALLELISMパラメータで構成できます。Replicatは、ワークロードが増加すると、追加のサーバーを自動的に追加し、ワークロードが軽減されると、再度下方に調整します。

  • 統合Replicatでは、最小の作業を構成する必要があります。すべての作業は、レンジ・パーティションを構成することなく1つのReplicatパラメータ・ファイル内に構成されます。

  • 高パフォーマンスの適用ストリーミングは、Replicatおよびインバウンド・サーバー間で、軽量アプリケーション・プログラミング・インタフェース(API)によって、統合Replicatで有効化されます。

  • バリア・トランザクションは、複数のサーバー適用プロセス間で、統合Replicatによって調整されます。

  • DDL操作は、DDLの実行前にサーバー処理が完了まで待機することで、バリアを強制する直接トランザクションとして処理されます。

  • 一時的な重複主キー更新は、統合Replicatによってシームレスに処理されます。

  • 統合Replicatは、単一またはプラガブル・データベースで動作します。

統合Replicatの要件

統合Replicatを使用するには、次の条件を満たす必要があります。

  • ターゲットOracle DatabaseがOracle 11.2.0.4以上である必要があります。

  • 表間の依存性の計算およびターゲットでの同時トランザクションのスケジューリングをサポートするには、サプリメンタル・ロギングをソース・データベースで有効にする必要があります。必要なロギングの有効化の手順は、「ロギング・プロパティの構成」を参照してください。このロギングは任意の時点で有効化できますが、その前に、Oracle GoldenGateプロセスを開始します。

  • 統合並列ReplicatはOracle Database 12.2.0.1以上でサポートされます。

パラレルReplicatについて

並列Replicatは、パフォーマンスを向上させるために並列でトランザクションを適用する新しいReplicatの種類です。統合Replicatと同様に、トランザクション間の依存関係が考慮されます。データベースの外部で依存性の計算、マッピングの並列処理および適用が実行されるため、負荷が別のサーバーに移されます。このプロセスでトランザクションの整合性が維持されます。さらに、並列Replicatは、大きなトランザクションをチャンクに分割してパラレルに適用することで、大きなトランザクションのパラレル適用をサポートします。

並列Replicatは非統合オプションを使用するすべてのデータベースをサポートします。並列Replicatは完全なメタデータを持つ証跡からのデータ・レプリケーションのみをサポートし、従来の証跡形式を必要とします。

並列Replicatのコンポーネントは次のとおりです。
  • マッパーはパラレルに動作し、証跡の読取り、証跡レコードのマッピング、マップされたレコードの統合Replicat LCR形式への変換、および後続の処理のためのマージャへのLCRの送信を実行します。1つのマッパーが1つのセットのトランザクションをマップしている間に、次のマッパーが次のセットのトランザクションをマップします。証跡情報は分割されますが、証跡情報が正しく順序付けされるため、証跡ファイルはそのままの状態になります。

  • マスター・プロセスにはコレータとスケジューラの2つのスレッドがあります。コレータはマスターからマップされたトランザクションを受け取り、依存関係の計算のために証跡の順序に戻します。スケジューラがトランザクション間の依存関係を計算し、トランザクションを独立したバッチにグループ化し、ターゲット・データベースに適用するためにバッチをアプライアに送信します。

  • アプライアは配列実行のためにバッチ内のレコードを並べ替えます。さらにバッチをターゲット・データベースに適用し、エラー処理を実行します。また、適用したトランザクションをチェックポイント表で追跡します。

次の表に、それぞれのReplicatでサポートされる機能を示します。

機能 クラシックReplicat 調整Replicat 統合Replicat 並列Replicat

バッチ処理

あり

あり

あり

あり

バリア・トランザクション

なし

あり

あり

あり

依存関係の計算

なし

なし

あり

あり

自動並列化

なし

なし

あり

あり

DMLハンドラ

なし

なし

あり

あり脚注 1

プロシージャ・レプリケーション

なし

なし

あり

あり脚注 2

自動CDR

なし

なし

あり

あり脚注 3

依存関係を認識したトランザクション分割

なし

なし

なし

あり

RACノード間の処理

なし

あり

なし

あり

脚注 1 統合モード

脚注2 統合並列Replicat(iPR)の場合に使用

脚注3 iPRのみで使用

パラレルReplicatの使用の詳細は、「パラレルReplicatの使用」を参照してください。

パラレル・レプリケーション・アーキテクチャ

パラレル・レプリケーション・プロセスは、統合モードの場合に、Oracle Database内で使用可能な適用処理機能を活用します。

単一のReplicat構成では、インバウンド・サーバーの複数の子プロセス(適用サーバーと呼ばれる)が、元のトランザクション原始性を維持しつつ、トランザクションをパラレルに適用します。

アーキテクチャ図は、証跡ファイルからターゲット・データベースへのパラレル・レプリケーションの様々なプロセスを介した変更レコードのフローを表します。

para_rep_arch.pngの説明が続きます
図para_rep_arch.pngの説明

マッパーが証跡ファイルを読み取ってレコードをマップし、マップしたレコードをマスターに転送します。バッチはアプライアに送信されて、ターゲット・データベースに適用されます。

マスター・プロセスにはコレータとスケジューラの2つの個別のスレッドがあります。コレータはマッパーの管理とマッパーとの通信を行い、さらにマップされたトランザクションを受信して、単一の順序ストリームに並べ替えます。スケジューラはアプライアの管理とアプライアとの通信を行い、さらにコレータからトランザクションを読み取り、バッチにしてアプライアに対してスケジュールします。

スケジューラ・コントローラはスケジューラと通信して必要な情報(現在の低水位標の位置など)を収集します。スケジューラ・コントローラはOracle DatabaseのCDBモードに必要で、これにより、様々なターゲットPDBに関連する情報を集約して、統一された状況をレポートします。スケジューラ・コントローラは、CDBモードでない場合でもシンプルで統一された実装を実現するために作成されています。各プロセスがパラメータ・ファイルを読み取り、単一のチェックポイント・ファイルを共有します。

異なるキャプチャおよび適用モードの併用

統合キャプチャおよびクラシック・キャプチャを同じソースOracle GoldenGateインスタンス内で同時に使用し、統合Replicatおよび非統合Replicatを同じターゲットOracle GoldenGateインスタンス内で同時に使用できます。クラシック・キャプチャ・モードと統合キャプチャ・モード間、および非統合Replicatモードと統合Replicatモード間では、DDLまたはDMLは調整されないため、この構成には、適切なプロセス・グループ内にオブジェクトを慎重に配置する必要があります。

各Extractグループでは、表のデータ型および属性に基づいて、処理モードに適したオブジェクトを処理する必要があります。一方のExtractのオブジェクトに、もう一方のExtractのオブジェクトのDMLまたはDDL依存性を含めることはできません。同じタイプの分離をReplicat構成に適用する必要があります。

次のキャプチャおよび適用モードを一緒に使用できます。

  • クラシック・キャプチャ(Oracleまたは非Oracleソース)および非統合Replicat

  • クラシック・キャプチャ(Oracleまたは非Oracleソース)および統合Replicat

  • 統合キャプチャおよび非統合Replicat

  • 統合キャプチャおよび統合Replicat

Oracleバージョンによってサポートされる場合、推奨されるOracle GoldenGate構成は、1つの統合キャプチャをOracleソースで使用し、Oracleターゲットのソース・データベースごとに、1つの統合Replicatを使用することです。統合キャプチャは、クラシック・キャプチャよりも特定のデータ型を完全にサポートします。インバウンド・サーバーを使用するか、必要時に直接適用に切り替えることで、1つの統合Replicat構成ですべてのOracleデータ型をサポートし、ソース・トランザクションの完全性を保持します。必要に応じて、並列度設定を目的の適用パフォーマンス・レベルに調整できます。

ターゲット・データベースが統合ReplicatをサポートしないOracleバージョンか、Oracle Database以外の場合は、調整済のReplicat構成を使用できます。詳細は、『Oracle GoldenGateの管理』を参照してください。

異なるプロセスモードへの切替え

プロセス・モードを切り替えることができます。たとえば、クラシック・キャプチャから統合キャプチャ、統合キャプチャからクラシック・キャプチャに切り替えることができます。

手順は、『Oracle GoldenGateの管理』管理操作の実行に関する項を参照してください。