最新のタイムスタンプの競合検出および解消の構成

DBMS_GOLDENGATE_ADMパッケージのADD_AUTO_CDRプロシージャを使用して、最新タイムスタンプの競合検出および解決を構成します。ADD_AUTO_CDR_COLUMN_GROUPプロシージャでオプションの列グループを追加します。

Oracle Database 23ai以降では、ACDR構成表を管理およびメンテナンスするための追加のメソッドが存在します。基礎となるAUTO-CDR関連の列をUNUSED列として保持したり、REMOVE_AUTO_CDRプロシージャをコールした直後に削除することもできます。

ADD_AUTO_CDRプロシージャを表に適用する場合、AUTO_CDRが削除されると、その内部列はデフォルトで未使用とマークされます。REMOVE_AUTO_CDRをコールした後、未使用列は後のステージで手動で削除したり、追加パラメータを使用してすぐに削除することもできます。詳細は、「表からの競合検出および解消の削除」を参照してください。

詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』ADD_AUTO_CDRプロシージャを参照してください

最新タイムスタンプの競合検出および解決では、行LCRのタイムスタンプ列が、対応する表の行のタイムスタンプと一致しない場合に、競合が検出されます。タイムスタンプがより遅い場合に行LCRが適用されます。その他の場合は行LCRが破棄され、表の行は変更されません。ADD_AUTO_CDRプロシージャを実行すると、指定した表の各行に非表示のタイムスタンプ列が追加され、タイムスタンプの競合検出および解決が構成されます。ADD_AUTO_CDR_COLUMN_GROUPプロシージャを使用して1つ以上の列グループを追加すると、列グループにタイムスタンプが追加され、列グループに対してタイムスタンプの競合検出および解決が構成されます。

DBMS_GOLDENGATE_ADMパッケージのGRANT_ADMIN_PRIVILEGEプロシージャを使用して、Oracle GoldenGate管理者を構成できます。
  1. Oracle GoldenGate管理者としてインバウンド・サーバー・データベースに接続します。
  2. ADD_AUTO_CDRプロシージャを実行して表を指定し、最新のタイムスタンプの競合検出および解決を構成します。
  3. ADD_AUTO_CDR_COLUMN_GROUPプロシージャを実行して、表に1つ以上の列グループを指定します。
  4. 表をレプリケートする各Oracle Databaseに対して前述のステップを繰り返します。

例9-22 表に対する最新タイムスタンプの競合検出および解決の構成

この例では、hr.employees表に対して、最新タイムスタンプの競合検出および解決を構成します。

BEGIN
  DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR(
    SCHEMA_NAME => 'HR',
    TABLE_NAME  => 'EMPLOYEES');
END;
/

例9-23 列グループの構成

この例では、HR.EMPLOYEES表に対するタイムスタンプの競合解決のために、次の列グループを構成します。

  • JOB_IDENTIFIER_CG列グループには、JOB_IDDEPARTMENT_IDおよびMANAGER_ID列が含まれます。

  • COMPENSATION_CG列グループには、SALARYおよびCOMMISSION_PCT列が含まれます。

BEGIN
  DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR_COLUMN_GROUP(
    SCHEMA_NAME       => 'HR',
    TABLE_NAME        => 'EMPLOYEES',
    COLUMN_LIST       => 'JOB_ID, DEPARTMENT_ID, MANAGER_ID',
    COLUMN_GROUP_NAME => 'JOB_IDENTIFIER_CG');
END;
/

BEGIN
  DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR_COLUMN_GROUP(
    SCHEMA_NAME       => 'HR',
    TABLE_NAME        => 'EMPLOYEES',
    COLUMN_LIST       => 'SALARY, COMMISSION_PCT',
    COLUMN_GROUP_NAME => 'COMPENSATION_CG');
END;
/