テンポラル表を使用したレプリケーション

次のいずれかの方法を選択して、システム期間テンポラル表またはバイテンポラル表を次のようにレプリケートできます。

  • テンポラル表を別のテンポラル表にのみレプリケートします。これがデフォルトの動作です。SYSTEM_TIME期間列とトランザクションID列は適用側で自動生成される列なので、Oracle GoldenGateではレプリケートされません。データベース・マネージャは、システム・クロック時間とデフォルト値を使用して、ターゲット・テンポラル表の列に移入します。これらの列の元の値はそのまま使用して、次のいずれかを実行します。

    • ターゲット・テンポラル表に追加のタイムスタンプ列を追加し、列を適切にマップします。追加の列は関連する履歴表に自動的に追加されます。

    • 適用側で非テンポラル表を使用し、列を適切にマップします。このシナリオで、履歴表は管理できません。

    • ソースがDB2 LUWで、ターゲットが異なるデータベースであるOracle以外の構成では、自動生成された列を無視できます。また、適切な列変換関数を使用して列値をターゲット・データベースでサポートされている形式に変換し、その値をターゲット列に適切にマップすることもできます。

    または

  • テンポラル表は関連する履歴表とともにテンポラル表と履歴表にそれぞれレプリケートできますが、その場合はレプリケート・パラメータDBOPTIONS SUPPRESSTEMPORALUPDATESを指定する必要があります。キャプチャ対象のテンポラル表と履歴表の両方をExtractパラメータ・ファイルに指定する必要があります。Oracle GoldenGateでは、SYSTEM_TIME期間列とトランザクションID列の値をレプリケートします。データベース・インスタンスに、適用側でストアド・プロシージャを実行する実行権限があることを確認する必要があります。

デフォルト・レプリケーションの使用中はSYSTEM_TIME期間列とtransactionstart id列が自動生成のままなので、Oracle GoldenGateで競合の検出や解決はできません。これらの列はset句とwhere句には指定できません。SUPPRESSTEMPORALUPDATESパラメータを使用する場合、Oracle GoldenGateではCDRがサポートされます。