ヘッダーをスキップ
Oracle® GoldenGate Oracle GoldenGateの管理for Windows and UNIX
12c (12.1.2)
E49846-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 アクティブ/アクティブ型高可用性のためのOracle GoldenGateの構成

この章では、アクティブ/アクティブ型高可用性用にOracle GoldenGateを構成する方法について説明します。

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

9.1 アクティブ/アクティブ構成の概要

Oracle GoldenGateでは、アクティブ/アクティブ型の双方向構成がサポートされます。この構成では、同一のデータセットが含まれる2つのシステムが存在し、アプリケーション・ユーザーはどちらのシステムでもそれらのデータを変更できます。Oracle GoldenGateは、両方のデータセットを最新状態に維持するため、トランザクション・データ変更を一方のデータベースから他方のデータベースにレプリケートします。

simple_config_bidirectional.jpgの説明が続きます
図simple_config_bidirectional.jpgの説明

双方向構成では、各システムにアクティブなOracle GoldenGateプロセスの完全なセットがあります。Extractプロセスによって一方のシステムで取得されたデータは、他方のシステムに伝播され、ローカルReplicatプロセスによって適用されます。

この構成では、負荷分散がサポートされます。この機能は、ビジネス・アプリケーションが任意の2つのピアで同一である場合に、障害耐久力を確保するために使用できます。双方向同期は、Oracle GoldenGateによってサポートされるすべてのデータベース・タイプでサポートされます。

Oracle GoldenGateでは、次のデータベースでアクティブ/アクティブ構成がサポートされます。

  • DB2(z/OSおよびLUW上)およびIBM i

  • MySQL

  • Oracle

  • SQL/MX

  • SQL Server

  • Sybase

  • Teradata

Oracle GoldenGateでは、Oracleアクティブ/アクティブ構成でDDLレプリケーションがサポートされます。DDLサポートは、OracleデータベースとTeradataデータベースで利用できます。

9.2 アクティブ/アクティブ構成の考慮事項

アクティブ/アクティブ構成では、次の点を考慮する必要があります。また、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照し、双方向構成をサポートする上で他になんらかの制限や要件がないか確認してください。

9.2.1 TRUNCATES

TRUNCATESの双方向レプリケーションはサポートされませんが、データの双方向へのレプリケート中に、これらの操作を一方向にレプリケートするように構成できます。アクティブ/アクティブ構成でTRUNCATESをレプリケートするには(そのデータベースでOracle GoldenGateによってサポートされる場合)、TRUNCATESが、ただ1つのデータベースから取得され、毎回その同じデータベースからのみ取得される必要があります。

環境は次のように構成します。

  • すべてのデータベース・ロールを構成して、この目的のために指定したデータベース以外のどのデータベースからもTRUNCATEを実行できないようにします。

  • TRUNCATEが許可されるシステムで、GETTRUNCATESパラメータを含めるようにExtractおよびReplicatのパラメータ・ファイルを構成します。

  • 他方のシステムで、IGNORETRUNCATESパラメータを含めるようにExtractおよびReplicatのパラメータ・ファイルを構成します。このシステムでは、Oracle GoldenGate構成に含まれるアプリケーションによってTRUNCATESを実行しないでください。

9.2.2 アプリケーション設計

アクティブ/アクティブ型のレプリケーションを使用する場合は、タイムゾーンを両方のシステムで同じにする必要があるため、そのタイムスタンプベースの競合解決および検出を動作できます。

アクティブ/アクティブ型のレプリケーションは、市販のパッケージ・ビジネス・アプリケーションでサポートされていない場合、それらのアプリケーションで使用することは推奨されません。これらのアプリケーションで障害となるのは次の点です。

  • パッケージ・アプリケーションには、Oracle GoldenGateでサポートされないオブジェクトおよびデータ型が含まれる可能性があります。

  • パッケージ・アプリケーションでは、ユーザーが制御できない自動DML操作が実行される可能性がありますが、その操作がOracle GoldenGateによってレプリケートされると、Replicatによる適用時に競合が発生します。

  • 通常、ユーザーは、アクティブ/アクティブ型のレプリケーションに必要とされる変更を行うためのデータ構造を制御できません。

9.2.3 キー

競合を正確に検出するためには、すべてのレコードは一意の非NULL識別子である必要があります。可能であれば、主キーを作成してください。不可能な場合は、一意キーを使用するか、MAPパラメータおよびTABLEパラメータのKEYCOLSオプションを使用して代替キーを作成します。一意の識別子がないと、Oracle GoldenGateでは、WHERE句で有効なすべての列が使用されますが、表に大量の列が含まれる場合、これによってパフォーマンスが低下します。

データ整合性を保持してエラーを防止するため、特定の表で使用するキーには次のことが求められます。

  • その特定の表が存在するすべてのデータベースで同じ列が含まれる必要があります。

  • データベース間の対応する行の各セットで同じ値が含まれる必要があります。

9.2.4 トリガーおよびカスケード削除

トリガーおよびON DELETE CASCADE制約では、Oracle GoldenGateによってレプリケート可能なDML操作が生成されます。ローカルDMLがこれらの操作でレプリケートされたDMLと競合しないようにするには、次の操作を実行します。

  • Replicatによって適用されるDML操作を無視するようにトリガーを変更します。ターゲットがOracleデータベースの場合、統合モードのReplicatでは、追加構成なしでトリガーを処理します。非統合Replicatには、Oracle用のパラメータ・オプションが用意されています。Oracle GoldenGate for Oracle Databaseのインストールおよび構成を参照してください。

  • ON DELETE CASCADE制約を無効化し、親表に対するトリガーを使用して子表に対する必要な削除を実行します。このトリガーは、親表で削除操作が実行される前に子表が削除されるように、BEFOREトリガーとして作成してください。これによって、カスケード削除の論理的な順序は逆になりますが、操作を正しい順序でレプリケートし、表が見つからないというターゲットのエラーを防止するために必要です。(注意: Oracleターゲットの場合、Replicatが統合モードであると、制約は自動的に特別な構成なしで処理されます。)


    注意:

    IDENTITY列は、Sybaseの双方向構成では使用できません。SQL ServerでのIDENTITYの他の制限は、SQL ServerのためのOracle GoldenGateのインストールおよび構成を参照してください。

9.2.5 データベース生成による値

双方向構成では、データベース生成による順序値(Oracle順序など)をレプリケートしないでください。値の範囲は、重複しないように各システムで異なっている必要があります。たとえば、2つのデータベースが存在する環境では、一方のサーバーで偶数値を生成し、他方で奇数値を生成します。n個のサーバーが存在する環境では、各キーを異なる値で開始し、環境内のサーバーの数を単位として値を増分します。この方法は、すべてのタイプのアプリケーションまたはデータベースに使用できるわけではありません。アプリケーションが対応している場合、値に位置識別子を追加して強制的に一意性を確保できます。

9.2.6 データベース構成

データベースの1つを、信頼できるソースとして指定する必要があります。これは、初期同期フェーズや必要な後続のすべての再同期時に他のデータベースの導出元になるプライマリ・データベースおよびそのホスト・システムです。信頼できるソースのデータは定期的にバックアップしてください。

9.3 データ・ループの防止

双方向構成では、あるシステムから別のシステムにレプリケートされたSQL変更は、最初のシステムに再度レプリケートされないようにする必要があります。そうしないと、システム間でデータの移動が繰り返され、次の例のように無限ループに陥ります。

  1. ユーザー・アプリケーションがシステムAのある行を更新します。

  2. Extractは、システムAでその行を抽出してシステムBに送信します。

  3. Replicatは、システムBでその行を更新します。

  4. Extractは、システムBでその行を抽出してシステムAに戻します。

  5. その行がシステムAに適用されます(2回目)。

  6. このループが無限に継続します。

データのループバックを防止するには、状況に応じて次の処理を行う必要があります。

  • Replicatによって生成されるSQL操作を取得しないようにします。ただし、Extractのパラメータ・ファイルに指定されているオブジェクトがビジネス・アプリケーションに含まれる場合は、それらのビジネス・アプリケーションによって生成されるSQL操作の取得を有効化します。

  • ローカルReplicatトランザクションを識別します(Extractプロセスでそれらのトランザクションを無視するため)。

9.3.1 Replicat操作の取得の防止

使用中のデータベースに応じて、Replicat操作を取得しないように明示的に指示する必要がある場合とない場合があります。

9.3.1.1 Replicatトランザクションの取得の防止(Oracle)

ReplicatによってOracleデータベースに適用されるSQLの取得を防止するために、Extractのキャプチャ・モードに応じて異なるオプションが用意されています。

  • Extractがクラシックまたは統合キャプチャ・モードである場合は、TRANLOGOPTIONSパラメータをEXCLUDETAG tagオプションとともに使用します。このパラメータを使用すると、Extractプロセスは、指定されたREDOタグの付いたトランザクションを無視します。タグ値の設定は、9.3.2項を参照してください。

  • Extractがクラシック・キャプチャ・モードである場合は、ExtractのTRANLOGOPTIONSパラメータをEXCLUDEUSERまたはEXCLUDEUSERIDオプションとともに使用して、Replicatがトランザクションの適用に使用しているユーザー名またはユーザーIDを除外します。複数のEXCLUDEUSER文を使用できます。指定されたユーザーは、GETREPLICATESまたはIGNOREREPLICATESパラメータのルールの対象になります。詳細は、9.3.1.3項を参照してください。

9.3.1.2 Replicatトランザクションの取得の防止(Teradata)

ReplicatによってTeradataデータベースに適用されるSQLの取得を防止するには、Teradataレプリケーションを上書きするようにReplicatセッションを設定します。Replicatのパラメータ・ファイルのルート・レベルで次のSQLEXEC文を使用します。

SQLEXEC 'SET SESSION OVERRIDE REPLICATION ON;'
SQLEXEC 'COMMIT;'

これらのSQLEXEC文によって、起動時に自動的にReplicatセッションを設定するプロシージャが実行されます。

9.3.1.3 Replicatトランザクションの取得の防止(他のデータベース)

Replicatによって他のデータベース・タイプ(Extractがクラシック・キャプチャ・モードで動作する場合はOracleを含む)に適用されるSQLの取得を防止するには、次のパラメータを使用します。

  • GETAPPLOPS | IGNOREAPPLOPS: Replicat以外のビジネス・アプリケーションによって生成されたデータ操作(DML)を、Extractが特定の証跡またはファイルに書き込む内容に含めるかどうかを制御します。

  • GETREPLICATES | IGNOREREPLICATES: Replicatによって生成されたDML操作を、Extractが特定の証跡またはファイルに書き込む内容に含めるかどうかを制御します。

9.3.2 Replicatトランザクションの識別

Replicatトランザクションを識別するようにExtractを構成するには、Extractがデータを取得するデータベースについて、次の手順に従います。

9.3.2.1 DB2 (z/OSおよびLUW上)、IBM iおよびInformix

Extractのパラメータ・ファイルで次のパラメータ文を使用して、Replicatユーザー名を識別します。

TRANLOGOPTIONS EXCLUDEUSER user

このパラメータ文によって、このユーザーにより生成されるすべてのデータ・トランザクションがReplicatトランザクションとしてマークされます。ユーザー名は、Extractによって読み取られるトランザクション・レコードに含まれます。


注意:

Informixでは、ソース操作(証跡内)がTRUNCATEの場合に、Oracle GoldenGate Replicatプロセスは常にDELETE操作をターゲットデータベースで実行します。

9.3.2.2 MySQLおよびNonStop SQL/MX

Extractのパラメータ・ファイルで次のパラメータ文を使用して、Replicatのチェックポイント表の名前を識別します。

TRANLOGOPTIONS FILTERTABLE table_name

Replicatは、その各トランザクションの終了時に、チェックポイント手順の一環としてチェックポイント表にチェックポイントを書き込みます。(これは、ADD CHECKPOINTTABLEコマンドを使用して作成される表です。)各Replicatトランザクションにこの表への書込みが含まれるため、この表を使用して双方向構成のReplicatトランザクションを識別できます。FILTERTABLEによってチェックポイント表の名前を識別し、その表に対する操作が含まれるトランザクションをExtractで無視するようにします。


注意:

PURGEDATAは、双方向構成のNonStop SQL/MXではサポートされません。PURGEDATA/TRUNCATE操作はDDLであり、暗黙的トランザクションであるため、Oracle GoldenGateではこのトランザクション内のチェックポイント表を更新できません。

9.3.2.3 Oracle

Oracle環境でReplicatトランザクションを識別する方法は複数あります。Replicatがクラシックまたは統合モードである場合は、次のパラメータを使用します。

  • Replicatのパラメータ・ファイルで、DBOPTIONSSETTAGオプションとともに使用します。Replicatは、指定した値(これらのトランザクションをREDOストリーム内で識別)で適用されるトランザクションにタグ付けします。SETTAGのデフォルト値は00です。有効値は、16進数で構成される単一のTAG値です。タグの詳細は、『Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and を参照してください。

  • Extractパラメータ・ファイルでTRANLOGOPTIONSパラメータをEXCLUDETAGオプションとともに使用します。そのExtractに関連付けられているログマイニング・サーバーによって、SETTAG値のタグの付いたREDOは除外されます。

    Replicatのパラメータ・ファイルでSETTAGを設定する方法は次のとおりです。

    DBOPTIONS SETTAG 0935
    

    Extractのパラメータ・ファイルでEXCLUDETAGを設定する方法は次のとおりです。

    TRANLOGOPTIONS EXCLUDETAG 0935
    

    複数のタグを除外する場合は、個別のTRANLOGOPTIONS EXCLUDETAG文をそれぞれ指定する必要があります。

トランザクション名またはReplicatユーザーのユーザーIDを使用して、Replicatトランザクションを識別することもできます。Extractの構成時に、どちらを無視するか選択できます。詳細は、9.3.1.1項を参照してください。

詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

9.3.2.4 SQL Server

Extractのパラメータ・ファイルで次のパラメータ文を使用して、Replicatトランザクション名を識別します。

TRANLOGOPTIONS EXCLUDETRANS transaction_name

このパラメータ文は、Replicatトランザクション名がデフォルトのggs_repl以外に設定されている場合にのみ必要です。

9.3.2.5 Sybase

次のいずれかの操作を実行します。

  • Extractのパラメータ・ファイルで次のパラメータ文を使用して、Replicatトランザクション名を識別します。

    TRANLOGOPTIONS EXCLUDETRANS transaction name
    
  • Extractのパラメータ・ファイルで次のパラメータ文を使用して、Replicatユーザー名を識別します。

    TRANLOGOPTIONS EXCLUDEUSER user name
    

    EXCLUDEUSERによって、このユーザーにより生成されるすべてのトランザクションがReplicatトランザクションとしてマークされます。ユーザー名は、Extractによって読み取られるトランザクション・レコードに含まれます。

  • 何も処理をせず、Replicatでggs_replというデフォルトのトランザクション名を使用できるようにします。

9.3.2.6 Teradata

Teradataデータベースに適用されるReplicatトランザクションを識別する必要はありません。

9.3.3 双方向構成でのDDLレプリケーション

OracleおよびTeradataで現在サポートされているDDLレプリケートでは、他にも考慮すべき事項があります。詳細は、次を参照してください。

  • Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成

  • TeradataのためのOracle GoldenGateのインストールおよび構成

9.4 競合の管理

アクティブ/アクティブ構成では、統一された競合解決手順をすべてのシステムに用意しておく必要があります。競合は即座に識別され、可能なかぎり自動的に処理される必要がありますが、様々なビジネス・アプリケーションがこの処理に関する独自の要件セットを持っています。

Oracle GoldenGateは非同期ソリューションであるため、個別のシステム上にある同一のデータセットに対して(ほぼ)同時に変更が行われた場合、競合が発生する可能性があります。競合は、同時変更のタイミングが次の非同期状態のいずれかにつながる場合に発生します。

  • Replicatが、一意性整合性制約(PRIMARY KEY制約やUNIQUE制約など)に違反する挿入操作または更新操作を適用すると、一意性競合が発生します。この競合タイプの例としては、2つの異なるデータベースから2つのトランザクションが発生し、各トランザクションが同じ主キー値で表に行を挿入する場合があげられます。

  • Replicatが、同じ行への別の更新と競合する更新を適用すると、更新競合が発生します。更新競合が発生するのは、異なるデータベースから生じた2つのトランザクションがほぼ同時に同じ行を更新した場合です。証跡レコードに格納されている古い値(変更前の値)とターゲット・データベース内の同じ行の現行値との間に差異があると、Replicatは更新競合を検出します。

  • 2つのトランザクションが異なるデータベースから生じ、一方が行を削除するのと同時にもう一方が同じ行を更新または削除すると、削除競合が発生します。この場合、その行は存在せず、更新も削除もできません。主キーが存在しないため、Replicatは行を見つけられません。

たとえば、データベースAのユーザーAがある行を更新し、データベースBのユーザーBが同じ行を更新するとします。ユーザーAのトランザクションがデータベースBに同期されるより前にユーザーBのトランザクションが実行されると、レプリケートされたトランザクションで競合が発生します。

3つのデータベースが関与するさらに複雑な例を基に、順序にまつわるさらに複雑な競合について説明します。A、B、Cという3つのデータベースがあるとします。あるユーザーがデータベースAに行を挿入すると、その行はデータベースBにレプリケートされます。次に、別のユーザーがその行をデータベースBで変更すると、行の変更がデータベースCにレプリケートされます。Bからの行の変更が、データベースAからの行の挿入より前にデータベースCに到着した場合、Cは競合を検出します。

可能であれば、競合発生のすべての可能性を最小化または排除してください。そのいくつかの方法を次に示します。

  • 各データベースで変更できる列を制限するようにアプリケーションを構成します。たとえば、地理的地域に基づいてアクセスを制限できます(異なる販売地域でその独自の顧客レコードのみを変更できるようにするなど)。別の例として、あるデータベースの顧客サービス・アプリケーションには顧客表のNAME列とADDRESS列の変更のみを許可し、別のデータベースの財務アプリケーションにはBALANCE列の変更のみを許可することが可能です。どちらの例の場合でも、同じレコードの同時更新による競合は発生しません。

  • 同期のレイテンシを最小限に抑えます。データベースAのユーザーAとデータベースBのユーザーBがほぼ同時に同じ行を更新しても、ユーザーBのトランザクションが完了する前にユーザーAのトランザクションがターゲット行にレプリケートされていれば、競合は回避されます。Oracle GoldenGateプロセスのパフォーマンス向上のための推奨事項は、第19章「Oracle GoldenGateのパフォーマンスのチューニング」を参照してください。

競合を回避するには、レプリケーション・レイテンシを最小限に抑える必要があります。競合が避けられない場合は、Oracle GoldenGateの競合検出および解決(CDR)機能または独自に開発した方法によって、競合をすみやかに特定し、可能なかぎり自動的に解決する必要があります。独自の方法は、SQLEXECとユーザー・イグジット機能を通じてOracle GoldenGate処理に統合できます。Oracle GoldenGateを使用した競合の処理の詳細は、第10章「競合の検出および解決の構成」を参照してください。

9.5 追加情報

次のドキュメントには、Oracle GoldenGateの構成に関連する追加情報が記載されています。

  • その他のシステム要件、プロセス構成およびデータベースの設定要件については、使用中のデータベース・タイプに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。これらのガイドは、このマニュアルの「はじめに」「関連ドキュメント」にリストされています。

  • Oracle GoldenGateの変更取得および配信グループの構成方法の詳細は、第14章「オンライン変更同期の構成」を参照してください。

  • Oracle GoldenGateのその他のチューニング・オプションは、第19章「Oracle GoldenGateのパフォーマンスのチューニング」を参照してください。

  • Oracle GoldenGateのコマンドとパラメータの構文の詳細および説明は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

9.6 アクティブ/アクティブ構成の作成

作成するオブジェクトのビジュアル表現は、図9-1を参照してください。

図9-1 アクティブ/アクティブ同期のOracle GoldenGate構成

図9-1の説明が続きます
「図9-1 アクティブ/アクティブ同期のOracle GoldenGate構成」の説明

9.6.1 両システムの前提条件

両方のシステムで次の前提条件を実行します。

  1. Replicatのチェックポイント表を作成します(Oracle統合Replicatを使用していない場合)。手順については、14.3項「チェックポイント表の作成」を参照してください。

  2. Managerプロセスを構成します。手順については、第3章「Managerおよびネットワーク通信の構成」を参照してください。

9.6.2 プライマリ・システムからセカンダリ・システムに対する構成

次の手順では、プライマリ・システムからセカンダリ・データベースへのデータ送信に必要なプロセスを追加します。

プライマリExtractグループを構成する手順

プライマリ・システムで次の手順を実行します。

  1. ADD EXTRACTコマンドを使用してプライマリExtractグループを作成します。説明上、このグループをext_1と呼びます。

    ADD EXTRACT ext_1, {TRANLOG | INTEGRATED TRANLOG}, BEGIN time
    

    これらのオプション、およびインストール環境によって必要になるその他のADD EXTRACTオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

  2. ADD EXTTRAILコマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_1と呼びます。

    ADD EXTTRAIL local_trail_1, EXTRACT ext_1
    

    EXTRACTでは、この証跡に書込みを行うext_1グループを指定します。

  3. EDIT PARAMSコマンドを使用してext_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。

    -- Identify the Extract group:
    EXTRACT ext_1
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_1][, USERIDALIAS alias]
    -- Specify the local trail that this Extract writes to
    -- and the encryption algorithm:
    ENCRYPTTRAIL algorithm
    EXTTRAIL local_trail_1
    -- Exclude Replicat transactions. Uncomment ONE of the following:
    -- DB2 z/OS, DB2 LUW, DB2 IBM i, Oracle (classic capture), and 
    -- Sybase:
    -- TRANLOGOPTIONS EXCLUDEUSER Replicat_user
    -- Oracle (classic capture) alternative to EXCLUDEUSER:
    -- EXCLUDEUSERID Oracle_uid
    -- Oracle integrated capture:
    -- EXCLUDETAG tag
    -- SQL Server and Sybase:
    -- TRANLOGOPTIONS EXCLUDETRANS transaction_name
    -- SQL/MX:
    -- TRANLOGOPTIONS FILTERTABLE checkpoint_table_name
    -- Teradata:
    -- SQLEXEC 'SET SESSION OVERRIDE REPLICATION ON;'
    -- SQLEXEC 'COMMIT;'
    -- Specify API commands if Teradata:
    VAM library name, PARAMS ('param' [, 'param'] [, ...])
    -- Capture before images for conflict resolution:
    GETBEFORECOLS (ON operation {ALL | KEY | KEYINCLUDING (col_list) | ALLEXCLUDING (col_list)})
    -- Log all scheduling columns for CDR and if using integrated Replicat
    LOGALLSUPCOLS
    -- Specify tables to be captured and (optional) columns to fetch:
    TABLE [container.|catalog.]owner.* [, FETCHCOLS cols | FETCHCOLSEXCEPT cols];
    

データ・ポンプを構成する手順

プライマリ・システムで次の手順を実行します。

  1. ADD EXTRACTコマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_1と呼びます。

    ADD EXTRACT pump_1, EXTTRAILSOURCE local_trail_1, BEGIN time
    

    EXTTRAILSOURCEでは、データソースとしてlocal_trail_1を指定します。

  2. ADD RMTTRAILコマンドを使用して、セカンダリ・システムに作成するリモート証跡を追加します。説明上、この証跡をremote_trail_1と呼びます。

    ADD RMTTRAIL remote_trail_1, EXTRACT pump_1
    

    EXTRACTでは、この証跡に書込みを行うpump_1データ・ポンプを指定します。

    その他のADD RMTTRAILオプションは、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

  3. EDIT PARAMSコマンドを使用してpump_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。

    -- Identify the data pump group:
    EXTRACT pump_1
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_1][, USERIDALIAS alias]
    -- Decrypt the data only if the data pump must process it.
    -- DECRYPTTRAIL
    -- Specify the name or IP address of the secondary system
    -- and optional encryption of data over TCP/IP:
    RMTHOSTOPTIONS system_2, MGRPORT port_number, ENCRYPT encryption_options
    -- Specify remote trail and encryption algorithm on secondary system:
    ENCRYPTTRAIL algorithm
    RMTTRAIL remote_trail_1
    -- Pass data through without mapping, filtering, conversion:
    PASSTHRU
    -- Specify tables to be captured:
    TABLE [container.|catalog.]owner.*;
    

    注意:

    通常、双方向構成のデータ構造は同一であるため、PASSTHRUモードでパフォーマンスが向上します。

Replicatグループを構成する手順

セカンダリ・システムで次の手順を実行します。

  1. ADD REPLICATコマンドを使用してReplicatグループを作成します。説明上、このグループをrep_1と呼びます。

    ADD REPLICAT rep_1
    [, INTEGRATED | COORDINATED [MAXTHREADS number]]
    , EXTTRAIL remote_trail_1, BEGIN time
    

    EXTTRAILでは、このReplicatが読み取る証跡としてremote_trail_1を指定します。

    これらのオプション、およびインストール環境によって必要になるその他のオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

  2. EDIT PARAMSコマンドを使用してrep_1グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。

    -- Identify the Replicat group:
    REPLICAT rep_1
    -- State that source and target definitions are identical:
    ASSUMETARGETDEFS
    -- Specify database login information as needed for the database:
    [TARGETDB dsn_2][, USERIDALIAS alias]
    -- Specify error handling rules:
    REPERROR (error, response)
    -- Set non-default Replicat redo tag (if Extract is in integrated mode)
    -- Default is 00.
    SETTAG tag_value
    -- Specify tables for delivery, threads if coordinated Replicat 
    -- and conflict-resolution:
    MAP [container.|catalog.]owner.*, TARGET owner.*, COMPARECOLS (ON operation {ALL | KEY | KEYINCLUDING (col_list) | ALLEXCLUDING (col_list)}), RESOLVECONFLICT (conflict type (resolution_name, resolution_type COLS (col[,...]))
    [, THREAD (thread_ID)]
    [, THREADRANGE (thread_range[, column_list])]
    ;
    -- Specify mapping of exceptions to exceptions table:
    MAP [container.|catalog.]owner.*, TARGET owner.exceptions, EXCEPTIONSONLY;
    

9.6.3 セカンダリ・システムからプライマリ・システムに対する構成

次の手順では、セカンダリ・システムからプライマリ・データベースへのデータ送信に必要なプロセスを追加します。

プライマリExtractグループを構成する手順

セカンダリ・システムで次の手順を実行します。


注意:

この手順は、これまでに作成した構成を逆にするイメージです。

  1. ADD EXTRACTコマンドを使用してプライマリExtractグループを作成します。説明上、このグループをext_2と呼びます。

    ADD EXTRACT ext_2, {TRANLOG | INTEGRATED TRANLOG}, BEGIN time
    

    これらのオプション、およびインストール環境によって必要になるその他のADD EXTRACTオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

  2. ADD EXTTRAILコマンドを使用してローカル証跡を追加します。説明上、この証跡をlocal_trail_2と呼びます。

    ADD EXTTRAIL local_trail_2, EXTRACT ext_2
    

    EXTRACTでは、この証跡に書込みを行うext_2グループを指定します。

  3. EDIT PARAMSコマンドを使用してext_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。

    -- Identify the Extract group:
    EXTRACT ext_2
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_2][, USERIDALIAS alias]
    -- Specify the local trail that this Extract writes to
    -- and the encryption algorithm:
    ENCRYPTTRAIL algorithm
    EXTTRAIL local_trail_2 
    -- Exclude Replicat transactions. Uncomment ONE of the following:
    -- DB2 z/OS, DB2 LUW, DB2 IBM i, Oracle, and Sybase:
    -- TRANLOGOPTIONS EXCLUDEUSER Replicat_user
    -- Oracle alternative to EXCLUDEUSER:
    -- EXCLUDEUSERID Oracle_uid
    -- Oracle integrated capture:
    -- EXCLUDETAG tag
    -- SQL Server and Sybase:
    -- TRANLOGOPTIONS EXCLUDETRANS transaction_name
    -- SQL/MX:
    -- TRANLOGOPTIONS FILTERTABLE checkpoint_table_name
    -- Teradata:
    -- SQLEXEC 'SET SESSION OVERRIDE REPLICATION ON;'
    -- SQLEXEC 'COMMIT;'
    -- Oracle:
    -- TRACETABLE trace_table_name
    -- Log all scheduling columns for CDR and if using integrated Replicat
    LOGALLSUPCOLS
    -- Capture before images for conflict resolution:
    GETBEFORECOLS (ON operation {ALL | KEY | KEYINCLUDING (col_list) | ALLEXCLUDING (col_list)})
    -- Specify tables to be captured and (optional) columns to fetch:
    TABLE [container.|catalog.]owner.* [, FETCHCOLS cols | FETCHCOLSEXCEPT cols];
    

    注意:

    Oracle DBFSデータをレプリケートするには、各ノードのTABLE文で、内部的に生成されたローカルの読取り/書込みDBFS表を指定します。これらの表を識別し、Oracle GoldenGateによる伝播が行われるようにDBFSを構成する方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

データ・ポンプを構成する手順

セカンダリ・システムで次の手順を実行します。

  1. ADD EXTRACTコマンドを使用してデータ・ポンプ・グループを作成します。説明上、このグループをpump_2と呼びます。

    ADD EXTRACT pump_2, EXTTRAILSOURCE local_trail_2, BEGIN time
    

    EXTTRAILSOURCEでは、データソースとしてlocal_trail_2を指定します。

  2. ADD RMTTRAILコマンドを使用して、プライマリ・システムに作成するリモート証跡を追加します。説明上、この証跡をremote_trail_2と呼びます。

    ADD RMTTRAIL remote_trail_2, EXTRACT pump_2
    

    EXTRACTでは、この証跡に書込みを行うpump_2データ・ポンプを指定します。

    その他のADD RMTTRAILオプションは、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

  3. EDIT PARAMSコマンドを使用してpump_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。

    -- Identify the data pump group:
    EXTRACT pump_2
    -- Specify database login information as needed for the database:
    [SOURCEDB dsn_2][, USERIDALIAS alias]
    -- Decrypt the data only if the data pump must process it.
    -- DECRYPTTRAIL
    -- Specify the name or IP address of the primary system
    -- and optional encryption of data over TCP/IP:
    RMTHOSTOPTIONS system_1, MGRPORT port_number, ENCRYPT encryption_options
    -- Specify the remote trail and encryption algorithm on the primary system:
    ENCRYPTTRAIL algorithm
    RMTTRAIL remote_trail_2 
    -- Pass data through without mapping, filtering, conversion:
    PASSTHRU
    -- Specify tables to be captured:
    TABLE [container.|catalog.]owner.*;
    

    注意:

    Oracle DBFSデータをレプリケートするには、各ノードのTABLE文で、内部的に生成されたローカルの読取り/書込みDBFS表を指定します。これらの表を識別し、Oracle GoldenGateによる伝播が行われるようにDBFSを構成する方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

Replicatグループを構成する手順

プライマリ・システムで次の手順を実行します。

  1. ADD REPLICATコマンドを使用してReplicatグループを作成します。説明上、このグループをrep_2と呼びます。

    ADD REPLICAT rep_2
    [, INTEGRATED | COORDINATED [MAXTHREADS number]]
    , EXTTRAIL remote_trail_2, BEGIN time
    

    EXTTRAILでは、このReplicatが読み取る証跡としてremote_trail_2を指定します。

    これらのオプション、およびインストール環境によって必要になるその他のオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

  2. EDIT PARAMSコマンドを使用してrep_2グループのパラメータ・ファイルを作成します。次のパラメータと、データベース環境に適用する他のパラメータを含めます。考えられるその他の必須パラメータの詳細は、使用中のデータベースに対応するOracle GoldenGateインストレーションおよびセットアップ・ガイドを参照してください。

    -- Identify the Replicat group:
    REPLICAT rep_2
    -- State that source and target definitions are identical:
    ASSUMETARGETDEFS
    -- Specify database login information as needed for the database:
    [TARGETDB dsn_1][, USERIDALIAS alias]
    -- Specify error handling rules:
    REPERROR (error, response)
    -- Specify tables for delivery, threads if coordinated Replicat 
    -- and conflict-resolution:
    MAP [container.|catalog.]owner.*, TARGET owner.*, COMPARECOLS (ON operation {ALL | KEY | KEYINCLUDING (col_list) | ALLEXCLUDING (col_list)}), RESOLVECONFLICT (conflict type (resolution_name, resolution_type COLS (col[,...]))
    [, THREAD (thread_ID)]
    [, THREADRANGE (thread_range[, column_list])]
    ;
    -- Specify mapping of exceptions to exceptions table:
    MAP [container.|catalog.]owner.*, TARGET owner.exceptions, EXCEPTIONSONLY;
    

    注意:

    Oracle DBFSデータをレプリケートするには、各ノードのTABLE文で、内部的に生成されたローカルの読取り/書込みDBFS表を指定します。これらの表を識別し、Oracle GoldenGateによる伝播が行われるようにDBFSを構成する方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。