13 Oracle GoldenGate自動競合検出および解消
Oracle Databaseでは、Oracle GoldenGateの自動競合検出および解消の構成および管理を実行できます。
- Oracle GoldenGateについて
Oracle GoldenGateは、Oracleデータベースと他のデータベースの間のレプリケーションのサポートを統合した異機種間レプリケーション・システムです。 - 自動競合検出および解消について
Oracle GoldenGateがOracleデータベース間で変更をレプリケートする場合、OracleデータベースでOracle GoldenGate自動競合検出および解消を構成して管理できます。 - 自動競合検出および解消の構成
DBMS_GOLDENGATE_ADM
パッケージを使用して、Oracle DatabaseのOracle GoldenGate自動競合検出および解消を構成できます。これはOracle GoldenGateバージョン12.3以上に特に該当します。レプリケートされる表を含むMAP
文を除き、Golden Gate ReplicatファイルにCDR構成パラメータを指定する必要はありません。 - 自動競合検出および解消の管理
DBMS_GOLDENGATE_ADM
パッケージを使用して、Oracle DatabaseのOracle GoldenGate自動競合検出および解消を管理できます。 - 自動競合検出および解消の監視
データ・ディクショナリ・ビューを問い合せることで、OracleデータベースのOracle GoldenGate自動競合検出および解消を監視できます。
13.1 Oracle GoldenGateについて
Oracle GoldenGateは、Oracleデータベースと他のデータベースの間のレプリケーションのサポートを統合した異機種間レプリケーション・システムです。
Oracle GoldenGateは、REDOログからDMLおよびDDLの変更を取得し、変更をターゲットに適用するためにOracle Databaseに統合されています。Oracle GoldenGateでは、Oracleデータベースまたは異機種のデータベース間で、トランザクション・データの取得、ルーティング、変換および配信がリアルタイムに行われます。
Oracleデータベースで発生した変更をOracle GoldenGateが取得したとき、各変更は行論理変更レコード(LCR)にカプセル化されます。行LCRは、DML行変更の構造化された表現です。それぞれの行LCRには、操作タイプ、古い列値、および新しい列値が含まれます。複数の行LCRが、単一データベース・トランザクションの一部となることができます。
関連項目:
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照
13.2 自動競合検出および解消について
Oracle GoldenGateによってOracleデータベース間で変更をレプリケートする場合、OracleデータベースでOracle GoldenGateの自動競合検出および解消を構成して管理できます。
ノート:
このマニュアルでは、Oracle Database 12cリリース2 (12.2)以降に固有の自動競合検出および解消機能について説明します。この機能はOracleデータベースで構成されます。また、Oracle GoldenGateバージョン12.3以降が必要です。競合検出および解消のための一般的なOracle GoldenGate機能も存在し、これはOracle GoldenGate競合検出および解消(CDR)と呼ばれます。Oracle GoldenGate CDRは、Replicatパラメータ・ファイルで構成されます。また、Oracle GoldenGateのドキュメントで説明されています。
次のタイプの自動競合検出および解消のうち1つのみを、単一の表に対して構成できます。
-
Oracle Database 12cリリース2 (12.2)に固有の自動競合検出および解消機能
-
Oracle GoldenGate CDR
- 自動競合検出および解消
Oracleデータベース間で表をレプリケートするOracle GoldenGate構成で自動競合検出および解消を構成できます。表についての競合検出および解消を構成するには、DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR
プロシージャをコールします。 - 最新のタイムスタンプの競合検出および解消
タイムスタンプの競合検出を使用すると、行論理変更レコード(行LCR)の古い列リスト内のタイムスタンプが、表の対応する行のタイムスタンプと異なる場合に競合が発生します。 - デルタ競合検出および解消
デルタ競合検出を使用すると、行論理変更レコード(行LCR)の古い列リスト内の値が、表にある対応する行の値と異なる場合に競合が発生します。 - 列グループ
列グループは、レプリケート表の1つ以上の列を論理的にグループ化したものです。列グループを追加すると、表内の他の列とは別個に、その列グループの列に対して競合検出および解消が実行されます。
13.2.1 自動競合検出および解消
Oracleデータベース間で表をレプリケートするOracle GoldenGate構成で自動競合検出および解消を構成できます。表に対して競合検出および解消を構成するには、DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR
プロシージャをコールします。
自動競合検出および解消では、次の理由によりアプリケーションの変更は必要ありません。
-
Oracle Databaseによって非表示のタイムスタンプ列が自動的に作成されて保持されます。
-
挿入、更新および削除では、削除ツームストン・ログ表を使用して、行が削除されたかどうかが判断されます。
-
LOB列の競合を検出できます。
-
Oracle Databaseによって必要な列に対するサプリメンタル・ロギングが自動的に構成されます。
サプリメンタル・ロギングは、競合を検出して解消するために必要な情報をそれぞれの行LCRに確実に含めるために必要です。表に対してDML操作が実行されると、サプリメンタル・ロギングによって、その表の列に関する追加情報がREDOログに記録されます。Oracle GoldenGate競合検出および解消のために表を構成する場合、表のすべての列に対してサプリメンタル・ロギングが自動的に構成されます。
関連項目:
-
サプリメンタル・ロギングの詳細は、Oracle Databaseユーティリティを参照
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照してください
親トピック: 自動競合検出および解消について
13.2.2 最新のタイムスタンプの競合検出および解消
タイムスタンプの競合検出を使用すると、行論理変更レコード(行LCR)の古い列リスト内のタイムスタンプが、表の対応する行のタイムスタンプと異なる場合に競合が発生します。
DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR
プロシージャを実行して、Oracle GoldenGate自動競合検出および解消のために表を構成すると、非表示のタイムスタンプ列が表に追加されます。この非表示のタイムスタンプ列によって行変更の時間が記録され、この情報を使用して競合が検出されて解消されます。
行LCRが適用されると、INSERT
、UPDATE
またはDELETE
操作で競合が発生することがあります。次の表では、各タイプの競合と、最新のタイムスタンプの競合検出および解消を使用して競合を解消する方法について説明します。
表13-1 最新のタイムスタンプの競合検出および解消
操作 | 競合の検出 | 競合の解消 |
---|---|---|
|
表のキー列の値が、行LCRの新しい値と同じである場合、競合が検出されます。 |
行LCRのタイムスタンプが、表の行のタイムスタンプより後の日付の場合、行LCRの値で表の値が置き換えられます。 行LCRのタイムスタンプが、表の行のタイムスタンプより前の日付の場合、その行LCRは破棄され、表の値が保持されます。 |
|
次の各ケースで競合が検出されます。
|
値の不一致があり、行LCRのタイムスタンプが、表の行のタイムスタンプより後の日付の場合、行LCRの値で表の値が置き換えられます。 値の不一致があり、行LCRのタイムスタンプが、表の行のタイムスタンプより前の日付の場合、その行LCRは破棄され、表の値が保持されます。 表の行が存在せず、行LCRのタイムスタンプが、ツームストン表の行のタイムスタンプより後の日付の場合、行LCRは 表の行が存在せず、行LCRのタイムスタンプが、ツームストン表の行のタイムスタンプより前の日付の場合、その行LCRは破棄されます。 表の行が存在せず、ツームストン表の対応する行がない場合、行LCRは |
|
次の各ケースで競合が検出されます。
|
行LCRのタイムスタンプが、表のタイムスタンプより後の日付の場合、表から行が削除されます。 行LCRのタイムスタンプが、表のタイムスタンプより前の日付の場合、その行LCRは破棄され、表の値が保持されます。 削除に成功した場合、行LCRをツームストン表に挿入して行LCRをログに記録します。 表の行が存在しない場合、行LCRをツームストン表に挿入して行LCRをログに記録します。 |
関連項目:
列グループ親トピック: 自動競合検出および解消について
13.2.3 デルタ競合検出および解消
デルタ競合検出を使用すると、行論理変更レコード(行LCR)の古い列リスト内の値が、表にある対応する行の値と異なる場合に競合が発生します。
表についてのデルタ競合検出および解消を構成するには、DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR_DELTA_RES
プロシージャを実行します。デルタ解消方法は、タイムスタンプまたは追加の解消列には依存しません。デルタ競合解消では、行LCRの新しい値と古い値との差異を表の値に追加することで、競合を解消します。この解決方法は、一般に勘定残高などの財務データに使用されます。たとえば、2つのサイトで同時に銀行残高が更新された場合、収束された金額はすべての貸方と借方を考慮に入れたものになります。
次の図は、デルタ競合検出および解消の例を示します。
この例では、データベースAとデータベースBでレプリケートされる行を示しています。Balance
列は、デルタ競合解消が行われる列として指定されており、TS1
列は、Balance
列に対するそれぞれの変更された時刻を追跡するための非表示のタイムスタンプ列です。両方のデータベースで、行のBalance
値にほぼ同時に変更が加えられます(データベースAでは@T20
、データベースBでは@T22
)。これらの変更によって競合が発生するため、デルタ競合解消を使用して次のように競合を解消します。
-
データベースAでは、
Balance
の値が100
から110
に変更されました。したがって、値が10増加しました。 -
データベースBでは、
Balance
の値が100
から120
に変更されました。したがって、値が20増加しました。 -
データベースAで競合を解消するために、行LCRの新しい値と古い値の差が表の値に加算されます。LCRの新しい値と古い値の差は20です(120–100=20)。したがって、表の現在の値(110)が20増えるため、競合解消後の値は130になります。
-
データベースBで競合を解消するために、行LCRの新しい値と古い値の差が表の値に加算されます。LCRの新しい値と古い値の差は10です(110–100=10)。したがって、表の現在の値(120)が10増えるため、競合解消後の値は130になります。
デルタ競合の解消後、データベースAとデータベースBの行で、Balance
列の値が同一になります。
親トピック: 自動競合検出および解消について
13.2.4 列グループ
列グループは、レプリケート表の1つ以上の列を論理的にグループ化したものです。列グループを追加すると、表内の他の列とは別個に、その列グループの列に対して競合検出および解消が実行されます。
ADD_AUTO_CDR
プロシージャを使用して、Oracle GoldenGate競合検出および解消のために表を構成すると、表のすべてのスカラー列がデフォルト列グループに追加されます。表の他の列グループを定義するには、ADD_AUTO_CDR_COLUMN_GROUP
プロシージャを実行します。ユーザー定義の列グループに含まれない表の列は、表のデフォルト列グループに残ります。
列グループを使用することで、競合を発生させることなく、異なるデータベースで同じ行の異なる列をほぼ同時に更新できます。表に対して列グループが構成されると、異なるデータベースが表の同じ行を更新した場合でも、競合を回避できます。更新によって、異なる列グループの列の値が変更された場合、競合は検出されません。次の図に、列グループの例を示します。
この例では、データベースAとデータベースBでレプリケートされる行を示しています。各データベースでレプリケートされた表に対して、次の2つの列グループが構成されています。
-
1つの列グループには
Office
列が含まれています。この列グループの非表示のタイムスタンプ列はTS1
です。 -
もう1つの列グループには
Title
列とSalary
列が含まれています。この列グループの非表示のタイムスタンプ列はTS2
です。
これらの列グループによって、データベースAとデータベースBでは競合を発生させずにほぼ同時に同じ行を更新できるようになります。具体的には、次の変更が行われます。
-
データベースAで、
Office
の値が1080
から1030
に変更されました。 -
データベースBで、
Title
の値がMTS1
からMTS2
に変更されました。
Office
列とTitle
列は別の列グループに含まれているため、競合が検出されずに変更がレプリケートされます。結果として、各変更がレプリケートされた後に、行の値は両方のデータベースで同じになります。
ピース単位のLOBの更新
LOB WRITE
、LOB ERASE
、LOB TRIM
からなるLOB操作のセットは、ピース単位のLOB更新です。LOB列を含む表が競合検出および解消のために構成された場合、各LOB列は独自の列グループに配置され、列グループには独自の非表示のタイムスタンプ列が含まれます。タイムスタンプ列は、最初のピース単位のLOB操作で更新されます。
LOB列の場合は、競合は次の方法で検出および解消されます。
-
LOBの列グループのタイムスタンプが、行の対応するLOB列グループより後の日付の場合、ピース単位のLOB更新が適用されます。
-
LOBの列グループのタイムスタンプが、行の対応するLOB列グループより前の日付の場合、表の行のLOBが保持されます。
-
行が表に存在しない場合は、エラーが発生します。
親トピック: 自動競合検出および解消について
13.3 自動競合検出および解消の構成
DBMS_GOLDENGATE_ADM
パッケージを使用して、Oracle DatabaseのOracle GoldenGate自動競合検出および解消を構成できます。これはOracle GoldenGateバージョン12.3以上に特に該当します。レプリケートされる表を含むMAP
文を除き、Golden Gate ReplicatファイルにCDR構成パラメータを指定する必要はありません。
- 最新のタイムスタンプの競合検出および解消の構成
DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR
プロシージャは、最新のタイムスタンプの競合検出および解消を構成します。ADD_AUTO_CDR_COLUMN_GROUP
プロシージャはオプションの列グループを追加します。 - デルタ競合検出および解消の構成
DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR_DELTA_RES
プロシージャは、デルタ競合検出および解消を構成します。
13.3.1 最新のタイムスタンプの競合検出および解消の構成
DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR
プロシージャは、最新のタイムスタンプの競合検出および解消を構成します。ADD_AUTO_CDR_COLUMN_GROUP
プロシージャはオプションの列グループを追加します。
ADD_AUTO_CDR
プロシージャを実行すると、指定した表の行ごとに非表示のタイムスタンプ列が追加され、タイムスタンプの競合検出および解消が構成されます。ADD_AUTO_CDR_COLUMN_GROUP
プロシージャを使用して、1つ以上の列グループを追加した場合、列グループのタイムスタンプが追加され、列グループのタイムスタンプの競合検出および解消が構成されます。
DBMS_GOLDENGATE_ADM
パッケージのGRANT_ADMIN_PRIVILEGE
プロシージャを使用して構成できます。
- 各データベースにOracle GoldenGate管理者として接続します。
ADD_AUTO_CDR
プロシージャを実行し、最新のタイムスタンプの競合検出および解消を構成する表を指定します。- オプション:
ADD_AUTO_CDR_COLUMN_GROUP
プロシージャを実行して、表の1つ以上の列グループを指定します。 - 表をレプリケートするOracleデータベースごとに前述のステップを繰り返します。
例13-1: 表の最新タイムスタンプの競合検出および解消の構成
この例では、hr.employees
表に対して最新のタイムスタンプの競合検出および解消を構成します。
BEGIN
DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR(
schema_name => 'hr',
table_name => 'employees');
END;
/
例13-2 列グループの構成
この例では、hr.employees
表におけるタイムスタンプ競合解消のために次の列グループが構成されます。
-
job_identifier_cg
列グループにはjob_id
、department_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;
/
関連項目:
-
Oracle GoldenGateレプリケーションおよびOracle GoldenGate管理者の構成の詳細は、Oracle GoldenGateのドキュメントを参照してください
親トピック: 自動競合検出および解消の構成
13.3.2 デルタ競合検出および解消の構成
DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR_DELTA_RES
プロシージャは、デルタ競合検出および解消を構成します。
DBMS_GOLDENGATE_ADM
パッケージのGRANT_ADMIN_PRIVILEGE
プロシージャを使用して構成できます。
- 各データベースにOracle GoldenGate管理者として接続します。
ADD_AUTO_CDR
プロシージャを実行し、最新のタイムスタンプの競合検出および解消を構成する表を指定します。ADD_AUTO_CDR_DELTA_RES
プロシージャを実行し、デルタ競合検出および解消が実行される列を指定します。- 表をレプリケートするOracleデータベースごとに前述のステップを繰り返します。
例13-3: 表のデルタ競合検出および解消の構成
この例では、oe.orders
表のorder_total
列についてのデルタ競合検出および解消を構成します。
BEGIN
DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR(
schema_name => 'oe',
table_name => 'orders');
END;
/
BEGIN
DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR_DELTA_RES(
schema_name => 'oe',
table_name => 'orders',
column_name => 'order_total');
END;
/
関連項目:
-
Oracle GoldenGateレプリケーションおよびOracle GoldenGate管理者の構成の詳細は、Oracle GoldenGateのドキュメントを参照してください
親トピック: 自動競合検出および解消の構成
13.4 自動競合検出および解消の管理
DBMS_GOLDENGATE_ADM
パッケージを使用して、Oracle DatabaseのOracle GoldenGate自動競合検出および解消を管理できます。
- 表についての競合検出および解消の変更
DBMS_GOLDENGATE_ADM
パッケージのALTER_AUTO_CDR
プロシージャは、表についての競合検出および解消を変更します。 - 列グループの変更
ALTER_AUTO_CDR_COLUMN_GROUP
プロシージャは列グループを変更します。 - ツームストン行の削除
PURGE_TOMBSTONES
プロシージャは、指定された日時より前に記録されたツームストン行を削除します。このプロシージャは、データベース内の競合解消用に構成されたすべての表に対してツームストンの行を削除します。 - 表からの競合検出および解消の削除
DBMS_GOLDENGATE_ADM
パッケージのREMOVE_AUTO_CDR
プロシージャは、表から自動競合検出および解消を削除します。また、このプロシージャでは、表用に構成された列グループおよびデルタ競合検出および解消を削除します。 - 列グループの削除
REMOVE_AUTO_CDR_COLUMN_GROUP
プロシージャは列グループを削除します。 - デルタ競合検出および解消の削除
DBMS_GOLDENGATE_ADM
パッケージのREMOVE_AUTO_CDR_DELTA_RES
プロシージャは、列のデルタ競合検出および解消を削除します。
13.4.1 表に対する競合検出および解消の変更
DBMS_GOLDENGATE_ADM
パッケージのALTER_AUTO_CDR
プロシージャは、表に対する競合検出および解消を変更します。
- 各データベースにOracle GoldenGate管理者として接続します。
ALTER_AUTO_CDR
プロシージャを実行し、最新のタイムスタンプの競合検出および解消を構成する表を指定します。- 表をレプリケートする各Oracleデータベースで前のステップをすべて繰り返します。
例13-4 表に対する競合検出および解消の変更
この例では、hr.employees
表についての競合検出および解消を変更して、削除の競合がツームストン表で追跡されるように指定します。
BEGIN
DBMS_GOLDENGATE_ADM.ALTER_AUTO_CDR(
schema_name => 'hr',
table_name => 'employees',
tombstone_deletes => TRUE);
END;
/
関連項目:
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照してください
親トピック: 自動競合検出および解消の管理
13.4.2 列グループの変更
ALTER_AUTO_CDR_COLUMN_GROUP
プロシージャは、列グループを変更します。
- インバウンド・サーバー・データベースにOracle GoldenGate管理者として接続します。
ALTER_AUTO_CDR_COLUMN_GROUP
プロシージャを実行し、表内の1つ以上の列グループを指定します。- 表をレプリケートする各Oracleデータベースで前のステップをすべて繰り返します。
例13-5 列グループの変更
この例では、hr.employees
表のjob_identifier_cg
列グループからmanager_id
列が削除されます。
BEGIN
DBMS_GOLDENGATE_ADM.ALTER_AUTO_CDR_COLUMN_GROUP(
schema_name => 'hr',
table_name => 'employees',
column_group_name => 'job_identifier_cg',
remove_column_list => 'manager_id');
END;
/
ノート:
複数の列がある場合、カンマ区切りリストを使用します。関連項目:
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照
親トピック: 自動競合検出および解消の管理
13.4.3 ツームストン行の削除
PURGE_TOMBSTONES
プロシージャは、指定された日時より前に記録されたツームストン行を削除します。このプロシージャは、データベース内の競合解消のために構成されたすべての表のツームストン行を削除します。
- 各データベースにOracle GoldenGate管理者として接続します。
PURGE_TOMBSTONES
プロシージャを実行し、日付と時刻を指定します。
例13-6 ツームストン行の削除
この例では、東部標準時の2015年12月1日の午後3時より前に記録されたすべてのツームストン行を削除します。タイムスタンプは、TIMESTAMP WITH TIME ZONE
形式で入力する必要があります。
EXEC DBMS_GOLDENGATE_ADM.PURGE_TOMBSTONES('2015-12-01 15:00:00.000000 EST');
関連項目:
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照してください
親トピック: 自動競合検出および解消の管理
13.4.4 表からの競合検出および解消の削除
DBMS_GOLDENGATE_ADM
パッケージのREMOVE_AUTO_CDR
プロシージャは、表から自動競合検出および解消を削除します。また、このプロシージャでは、表に構成された列グループおよびデルタ競合検出および解消を削除します。
- 各データベースにOracle GoldenGate管理者として接続します。
REMOVE_AUTO_CDR
プロシージャを実行し、表を指定します。- 表をレプリケートする各Oracleデータベースで前のステップをすべて繰り返します。
例13-7 表についての競合検出および解消の削除
この例では、hr.employees
表の競合検出および解消を削除します。
BEGIN
DBMS_GOLDENGATE_ADM.REMOVE_AUTO_CDR(
schema_name => 'hr',
table_name => 'employees');
END;
/
関連項目:
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照してください。
親トピック: 自動競合検出および解消の管理
13.4.5 列グループの削除
REMOVE_AUTO_CDR_COLUMN_GROUP
プロシージャは、列グループを削除します。
- 各データベースにOracle GoldenGate管理者として接続します。
REMOVE_AUTO_CDR_COLUMN_GROUP
プロシージャを実行して、列グループの名前を指定します。- 表をレプリケートする各Oracleデータベースで前のステップをすべて繰り返します。
例13-8 列グループの削除
この例では、hr.employees
表からcompensation_cg
列グループを削除します。
BEGIN
DBMS_GOLDENGATE_ADM.REMOVE_AUTO_CDR_COLUMN_GROUP(
schema_name => 'hr',
table_name => 'employees',
column_group_name => 'compensation_cg');
END;
/
関連項目:
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照してください。
親トピック: 自動競合検出および解消の管理
13.4.6 デルタ競合検出および解消の削除
DBMS_GOLDENGATE_ADM
パッケージのREMOVE_AUTO_CDR_DELTA_RES
プロシージャは、列のデルタ競合検出および解消を削除します。
- インバウンド・サーバー・データベースにOracle GoldenGate管理者として接続します。
REMOVE_AUTO_CDR_DELTA_RES
プロシージャを実行し、列を指定します。- 表をレプリケートする各Oracleデータベースで前のステップをすべて繰り返します。
例13-9 表についてのデルタ競合検出および解消の削除
この例では、oe.orders
表のorder_total
列に対するデルタ競合検出および解消を削除します。
BEGIN
DBMS_GOLDENGATE_ADM.REMOVE_AUTO_CDR_DELTA_RES(
schema_name => 'oe',
table_name => 'orders',
column_name => 'order_total');
END;
/
関連項目:
-
Oracle GoldenGateの詳細は、Oracle GoldenGateのドキュメントを参照してください。
親トピック: 自動競合検出および解消の管理
13.5 自動競合検出および解消の監視
データ・ディクショナリ・ビューを問い合せることで、OracleデータベースのOracle GoldenGate自動競合検出および解消を監視できます。
- 競合のために構成された表に関する情報の表示
ALL_GG_AUTO_CDR_TABLES
ビューには、Oracle GoldenGate自動競合検出および解消のために構成された表に関する情報が表示されます。 - 競合解消列に関する情報の表示
ALL_GG_AUTO_CDR_COLUMNS
ビューには、Oracle GoldenGate自動競合検出および解消のために構成された列に関する情報が表示されます。 - 列グループに関する情報の表示
ALL_GG_AUTO_CDR_COLUMN_GROUPS
ビューには、Oracle GoldenGate自動競合検出および解消のために構成された列グループに関する情報が表示されます。
13.5.1 競合のために構成された表に関する情報の表示
ALL_GG_AUTO_CDR_TABLES
ビューには、Oracle GoldenGate自動競合検出および解消のために構成された表に関する情報が表示されます。
- データベースに接続します。
ALL_GG_AUTO_CDR_TABLES
ビューを問い合せます。
例13-10 競合検出および解消のために構成された表に関する情報の表示
この問合せでは、競合検出および解消のために構成された表に関する次の情報が表示されます。
-
それぞれの表の所有者
-
それぞれの表の名前
-
更新削除競合で削除された行を保存するために使用するツームストン表(表に対してツームストン表が構成されている場合)
-
各表の競合解消に使用される非表示のタイムスタンプ列
COLUMN TABLE_OWNER FORMAT A15
COLUMN TABLE_NAME FORMAT A15
COLUMN TOMBSTONE_TABLE FORMAT A15
COLUMN ROW_RESOLUTION_COLUMN FORMAT A25
SELECT TABLE_OWNER,
TABLE_NAME,
TOMBSTONE_TABLE,
ROW_RESOLUTION_COLUMN
FROM ALL_GG_AUTO_CDR_TABLES
ORDER BY TABLE_OWNER, TABLE_NAME;
出力は次のようになります。
TABLE_OWNER TABLE_NAME TOMBSTONE_TABLE ROW_RESOLUTION_COLUMN
--------------- --------------- --------------- -------------------------
HR EMPLOYEES DT$_EMPLOYEES CDRTS$ROW
OE ORDERS DT$_ORDERS CDRTS$ROW
関連トピック
親トピック: 自動競合検出および解消の監視
13.5.2 競合解消列に関する情報の表示
ALL_GG_AUTO_CDR_COLUMNS
ビューには、Oracle GoldenGate自動競合検出および解消のために構成された列に関する情報が表示されます。
- データベースにOracle GoldenGate管理者として接続します。
ALL_GG_AUTO_CDR_COLUMNS
ビューを問い合せます。
例13-11 列グループに関する情報の表示
この問合せでは、競合検出および解消のために構成された表に関する次の情報が表示されます。
-
それぞれの表の所有者
-
それぞれの表の名前
-
列が列グループに含まれている場合、列グループの名前
-
列名
-
列が最新のタイムスタンプの競合解消用に構成されている場合、その列についての非表示のタイム・スタンプ列の名前
COLUMN TABLE_OWNER FORMAT A10
COLUMN TABLE_NAME FORMAT A10
COLUMN COLUMN_GROUP_NAME FORMAT A17
COLUMN COLUMN_NAME FORMAT A15
COLUMN RESOLUTION_COLUMN FORMAT A23
SELECT TABLE_OWNER,
TABLE_NAME,
COLUMN_GROUP_NAME,
COLUMN_NAME,
RESOLUTION_COLUMN
FROM ALL_GG_AUTO_CDR_COLUMNS
ORDER BY TABLE_OWNER, TABLE_NAME;
出力は次のようになります。
TABLE_OWNE TABLE_NAME COLUMN_GROUP_NAME COLUMN_NAME RESOLUTION_COLUMN
---------- ---------- ----------------- --------------- -----------------------
HR EMPLOYEES COMPENSATION_CG COMMISSION_PCT CDRTS$COMPENSATION_CG
HR EMPLOYEES COMPENSATION_CG SALARY CDRTS$COMPENSATION_CG
HR EMPLOYEES JOB_IDENTIFIER_CG MANAGER_ID CDRTS$JOB_IDENTIFIER_CG
HR EMPLOYEES JOB_IDENTIFIER_CG JOB_ID CDRTS$JOB_IDENTIFIER_CG
HR EMPLOYEES JOB_IDENTIFIER_CG DEPARTMENT_ID CDRTS$JOB_IDENTIFIER_CG
HR EMPLOYEES IMPLICIT_COLUMNS$ PHONE_NUMBER CDRTS$ROW
HR EMPLOYEES IMPLICIT_COLUMNS$ LAST_NAME CDRTS$ROW
HR EMPLOYEES IMPLICIT_COLUMNS$ HIRE_DATE CDRTS$ROW
HR EMPLOYEES IMPLICIT_COLUMNS$ FIRST_NAME CDRTS$ROW
HR EMPLOYEES IMPLICIT_COLUMNS$ EMAIL CDRTS$ROW
HR EMPLOYEES IMPLICIT_COLUMNS$ EMPLOYEE_ID CDRTS$ROW
OE ORDERS IMPLICIT_COLUMNS$ ORDER_MODE CDRTS$ROW
OE ORDERS IMPLICIT_COLUMNS$ ORDER_ID CDRTS$ROW
OE ORDERS IMPLICIT_COLUMNS$ ORDER_DATE CDRTS$ROW
OE ORDERS IMPLICIT_COLUMNS$ CUSTOMER_ID CDRTS$ROW
OE ORDERS DELTA$ ORDER_TOTAL
OE ORDERS IMPLICIT_COLUMNS$ PROMOTION_ID CDRTS$ROW
OE ORDERS IMPLICIT_COLUMNS$ ORDER_STATUS CDRTS$ROW
OE ORDERS IMPLICIT_COLUMNS$ SALES_REP_ID CDRTS$ROW
この出力で、列グループ名がIMPLICIT_COLUMNS$
に指定されている列は、行の競合検出および解消のために構成されていますが、これらは列グループの一部ではありません。列グループ名がDELTA$
に指定されている列は、デルタ競合検出および解消のために構成されており、これらの列には解消列がありません。
関連トピック
親トピック: 自動競合検出および解消の監視
13.5.3 列グループに関する情報の表示
ALL_GG_AUTO_CDR_COLUMN_GROUPS
ビューには、Oracle GoldenGate自動競合検出および解消のために構成された列グループに関する情報が表示されます。
DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR
プロシージャを使用して、Oracle GoldenGate自動競合検出および解消を構成できます。DBMS_GOLDENGATE_ADM
パッケージのADD_AUTO_CDR_COLUMN_GROUP
プロシージャを使用して、列グループを構成できます。
- データベースにOracle GoldenGate管理者として接続します。
ALL_GG_AUTO_CDR_COLUMN_GROUPS
ビューを問い合せます。
例13-12 列グループに関する情報の表示
この問合せでは、競合検出および解消のために構成された表に関する次の情報が表示されます。
-
表の所有者
-
表の名前
-
列グループの名前
-
各列グループの競合解消に使用される非表示のタイムスタンプ列
COLUMN TABLE_OWNER FORMAT A15
COLUMN TABLE_NAME FORMAT A15
COLUMN COLUMN_GROUP_NAME FORMAT A20
COLUMN RESOLUTION_COLUMN FORMAT A25
SELECT TABLE_OWNER,
TABLE_NAME,
COLUMN_GROUP_NAME,
RESOLUTION_COLUMN
FROM ALL_GG_AUTO_CDR_COLUMN_GROUPS
ORDER BY TABLE_OWNER, TABLE_NAME;
出力は次のようになります。
TABLE_OWNER TABLE_NAME COLUMN_GROUP_NAME RESOLUTION_COLUMN
--------------- --------------- -------------------- -------------------------
HR EMPLOYEES COMPENSATION_CG CDRTS$COMPENSATION_CG
HR EMPLOYEES JOB_IDENTIFIER_CG CDRTS$JOB_IDENTIFIER_CG
関連トピック
親トピック: 自動競合検出および解消の監視