76 DBMS_GOLDENGATE_ADM
DBMS_GOLDENGATE_ADM
パッケージには、Oracle GoldenGateの競合検出および解決を構成および管理するためのサブプログラムが含まれています。
この章のトピックは、次のとおりです:
76.1 DBMS_GOLDENGATE_ADMの使用方法
この項では、DBMS_GOLDENGATE_ADM
パッケージの使用に関連する項目について説明します。
76.1.1 DBMS_GOLDENGATE_ADMの概要
DBMS_GOLDENGATE_ADM
パッケージは、Oracleデータベース間で表をレプリケートするOracle GoldenGate構成で自動競合検出と解決を構成するためのインタフェースを提供します。
表の複数のレプリカによって表を変更できる場合、2つの異なるデータベースの同じ行にほぼ同時に変更が加えられたときに、競合が発生する可能性があります。Oracle GoldenGateは、行の論理変更レコード(LCR)を使用して変更をレプリケートします。行LCRの古い値と、キー列で識別された対応する表の行の現在の値を比較することで、競合を検出します。いずれかの列値が一致しない場合、競合が発生しています。競合の検出後、Oracle GoldenGateは行の値を行LCRの値で上書きし、行LCRの値を無視するか、デルタを計算して行の値を更新することで、競合を解決できます。
Xstreamインバウンド・サーバーおよびアウトバウンド・サーバーは、マルチテナント・コンテナ・データベース(CDB)のXStream構成で使用できます。CDBは、ユーザーが作成した0以上のプラガブル・データベース(PDB)を含むOracle Databaseです。
ノート:
XStreamを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。
参照:
-
CDBおよびPDBの詳細は、『Oracle Database概要』を参照してください。
76.1.2 DBMS_GOLDENGATE_ADMのセキュリティ・モデル
このパッケージのセキュリティは、選択したユーザーまたはロールにこのパッケージのEXECUTE
権限を付与するか、選択したユーザーまたはロールにEXECUTE_CATALOG_ROLE
を付与することで制御できます。
パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE
権限を直接付与する必要があります。ロールを通して付与することはできません。
Oracle GoldenGate管理者は表のレプリケーション環境内の各Oracleデータベースで構成する必要があり、Oracle GoldenGateは各Oracleデータベースで表をレプリケートするように構成する必要があります。Oracle GoldenGate管理者は、DBMS_GOLDENGATE_ADM
パッケージのGRANT_ADMIN_PRIVILEGE
プロシージャを使用して構成できます。
参照:
Oracle GoldenGateレプリケーションおよびOracle GoldenGate管理者の構成の詳細は、Oracle GoldenGateのドキュメントを参照してください
76.2 DBMS_GOLDENGATE_ADMサブプログラムの要約
表76-1 DBMS_GOLDENGATE_ADMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
表にOracle GoldenGateの自動競合検出および解決を構成します |
|
列グループを追加し、その列グループにOracle GoldenGateの自動競合検出および解決を構成します |
|
列にOracle GoldenGateの自動競合検出およびデルタ解決を構成します |
|
表のOracle GoldenGateの自動競合検出および解決を変更します |
|
Oracle GoldenGateの自動競合検出および解決の列グループを変更します |
|
Oracle GoldenGateプロシージャ・レプリケーションの除外リストからデータベース・オブジェクトを削除します |
|
Oracle GoldenGateプロシージャ・レプリケーションが有効な場合は1を戻し、無効な場合は0を戻します |
|
Oracle GoldenGateプロシージャ・レプリケーションの除外リストにデータベース・オブジェクトを挿入します |
|
指定されたタイムスタンプの前にツームストン表から削除された行をパージします |
|
表のOracle GoldenGateの自動競合検出および解決を削除します |
|
Oracle GoldenGateの自動競合検出および解決が構成された列グループを削除します |
|
列のOracle GoldenGateの自動競合検出および解決を削除します |
ノート:
特に指定がないかぎり、すべてのプロシージャがコミットされます。
76.2.1 ADD_AUTO_CDRプロシージャ
このプロシージャは、表にOracle GoldenGateの自動競合検出および解決を構成します。
このプロシージャによって構成される競合検出および解決は、変更のタイムスタンプに基づきます。このプロシージャはTIMESTAMP
タイプの1つ以上の非表示列を表に追加し、各非表示列は表ごとの1,000列の制限に対してカウントされます。
このプロシージャは、非スカラー列を除いて、表内の列をデフォルトの列グループおよび無条件のサプリメンタル・ログ・グループに自動的に配置します。表内の列のサブセットを含む列グループを作成するには、このパッケージのADD_AUTO_CDR_COLUMN_GROUP
プロシージャを使用します。
構文
DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR( schema_name IN VARCHAR2, table_name IN VARCHAR2, resolution_granularity IN VARCHAR2 DEFAULT 'ROW', existing_data_timestamp IN TIMESTAMP WITH TIME ZONE DEFAULT NULL, tombstone_deletes IN BOOLEAN DEFAULT TRUE, fetchcols IN BOOLEAN DEFAULT TRUE, record_conflicts IN BOOLEAN DEFAULT FALSE, use_custom_handlers IN BINARY_INTEGER DEFAULT 0);
パラメータ
表76-2 ADD_AUTO_CDRプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
|
デフォルトの
|
|
既存の行に割り当てるタイムスタンプ。 |
|
デフォルトの
|
|
デフォルトの
|
|
デフォルトの |
|
デフォルトの
|
76.2.2 ADD_AUTO_CDR_COLUMN_GROUPプロシージャ
このプロシージャは、Oracle GoldenGateの自動競合検出および解決が構成された表に列グループを追加します。
タイムスタンプ競合検出および解決が構成された表に対して、このプロシージャは指定された表内の列のサブセットを含む列グループを追加します。列グループに含まれない表内の列は、その表のデフォルトの列グループに残ります。
列グループを表に追加すると、表内の他の列とは別個に、その列グループの列に対して競合検出および解決が実行されます。列グループを使用することで、競合を発生させることなく、異なるデータベースで同じ行の異なる列をほぼ同時に更新できます。
たとえば、従業員情報を含むレプリケートされた表には、給与列および賞与列のほかに、従業員を識別するその他の行や従業員オフィス番号の場所列も含まれる可能性があります。会社のある部門がデータベースを更新して従業員の給与を変更し、他の部門がデータベースを更新して従業員の場所を変更するとします。列グループに給与列と賞与列が含まれる場合、競合を解決する必要なしに、これらの変更を各データベースのレプリケートされた表に適用できます。
このプロシージャは、非スカラー列を除いて、列グループの列を無条件のサプリメンタル・ログ・グループに自動的に配置します。
表に対してこのプロシージャを実行する前に、resolution_granularity
パラメータにROW
を指定して、表でDBMS_GOLDENGATE_ADM.ADD_AUTO_CDR
プロシージャを実行する必要があります。
構文
DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR_COLUMN_GROUP( schema_name IN VARCHAR2, table_name IN VARCHAR2, column_list IN VARCHAR2, column_group_name IN VARCHAR2 DEFAULT NULL, existing_data_timestamp IN TIMESTAMP WITH TIME ZONE DEFAULT NULL);
パラメータ
表76-3 ADD_AUTO_CDR_COLUMN_GROUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
|
競合検出および解決が構成された列のグループ。 カンマ区切りリストで列を指定します。 同じ列を複数の列グループに含めることはできません。また、同じ列を1つの列グループに含めて、デルタ解決で指定することはできません。 |
|
列グループの名前。
|
|
既存の表データに対して追加された |
76.2.3 ADD_AUTO_CDR_DELTA_RESプロシージャ
このプロシージャは、列にOracle GoldenGateの自動競合検出およびデルタ解決を構成します。
解決方法は、タイムスタンプまたは追加の解決列には依存しません。デルタ競合解決では、LCRの新しい値と古い値との差異を表の値に追加することで、競合を解決します。たとえば、2つのサイトで同時に銀行残高が更新された場合、収束された金額はすべての貸方と借方を考慮に入れたものになります。この解決方法は、一般に勘定残高などの財務データに使用されます。
このプロシージャは、列を無条件のサプリメンタル・ログ・グループに自動的に配置します。
表に対してこのプロシージャを実行する前に、resolution_granularity
パラメータにROW
を指定して、表でDBMS_GOLDENGATE_ADM.ADD_AUTO_CDR
プロシージャを実行する必要があります。
構文
DBMS_GOLDENGATE_ADM.ADD_AUTO_CDR_DELTA_RES( schema_name IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2);
パラメータ
表76-4 ADD_AUTO_CDR_DELTA_RESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
|
列の名前。 指定する列は 同じ列を列グループに含めることはできません。 |
76.2.4 ALTER_AUTO_CDRプロシージャ
このプロシージャは、表のOracle GoldenGateの自動競合検出および解決を変更します。
構文
DBMS_GOLDENGATE_ADM.ALTER_AUTO_CDR( schema_name IN VARCHAR2, table_name IN VARCHAR2, tombstone_deletes IN BOOLEAN DEFAULT NULL, fetchcols IN BOOLEAN DEFAULT NULL, record_conflicts IN BOOLEAN DEFAULT NULL, use_custom_handlers IN BINARY_INTEGER DEFAULT NULL);
パラメータ
表76-5 ALTER_AUTO_CDRプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
|
|
|
|
|
|
|
デフォルトの |
76.2.5 ALTER_AUTO_CDR_COLUMN_GROUPプロシージャ
このプロシージャは、Oracle GoldenGateの自動競合検出および解決の列グループを変更します。
構文
DBMS_GOLDENGATE_ADM.ALTER_AUTO_CDR_COLUMN_GROUP( schema_name IN VARCHAR2, table_name IN VARCHAR2, column_group_name IN VARCHAR2, add_column_list IN VARCHAR2, remove_column_list IN VARCHAR2);
パラメータ
表76-6 ALTER_AUTO_CDR_COLUMN_GROUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
|
列グループの名前。 |
|
列グループに追加する列のカンマ区切りリスト。 |
|
列グループから削除する列のカンマ区切りリスト。 |
76.2.6 DELETE_PROCREP_EXCLUSION_OBJプロシージャ
このプロシージャは、Oracle GoldenGateプロシージャ・レプリケーションの除外リストからデータベース・オブジェクトを削除します。
データベース・オブジェクトがOracle GoldenGateプロシージャ・レプリケーションの除外リストにある場合、サブプログラムが除外されたオブジェクトに対して実行される場合は、パッケージ内のサブプログラムの実行はレプリケートされません。たとえば、hr.employees
がDBMS_REDEFINITION
パッケージの除外されたデータベース・オブジェクトである場合、hr.employees
表に対するDBMS_REDEFINITION.START_REDEF_TABLE
プロシージャの実行はレプリケートされません。
注意:
DELETE_PROCREP_EXCLUSION_OBJ
プロシージャは、Oracleサポートの指示がある場合にのみ実行します。
構文
DBMS_GOLDENGATE_ADM.DELETE_PROCREP_EXCLUSION_OBJ( package_owner IN VARCHAR2 DEFAULT NULL, package_name IN VARCHAR2 DEFAULT NULL, object_owner IN VARCHAR2 DEFAULT NULL, object_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表76-7 DELETE_PROCREP_EXCLUSION_OBJプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パッケージの所有者。 |
|
パッケージの名前。 |
|
オブジェクトの所有者。 |
|
オブジェクトの名前。 |
76.2.7 GG_PROCEDURE_REPLICATION_ONファンクション
このプロシージャは、Oracle GoldenGateプロシージャ・レプリケーションが有効な場合は1を戻し、無効な場合は0を戻します。
構文
DBMS_GOLDENGATE_ADM.GG_PROCEDURE_REPLICATION_ON RETURN NUMBER;
76.2.8 INSERT_PROCREP_EXCLUSION_OBJプロシージャ
このプロシージャは、Oracle GoldenGateプロシージャ・レプリケーションの除外リストにデータベース・オブジェクトを挿入します。
データベース・オブジェクトがOracle GoldenGateプロシージャ・レプリケーションの除外リストにある場合、サブプログラムが除外されたオブジェクトに対して実行される場合は、パッケージ内のサブプログラムの実行はレプリケートされません。たとえば、hr.employees
がDBMS_REDEFINITION
パッケージの除外されたデータベース・オブジェクトである場合、hr.employees
表に対するDBMS_REDEFINITION.START_REDEF_TABLE
プロシージャの実行はレプリケートされません。
注意:
INSERT_PROCREP_EXCLUSION_OBJ
プロシージャは、Oracleサポートの指示がある場合にのみ実行します。
構文
DBMS_GOLDENGATE_ADM.INSERT_PROCREP_EXCLUSION_OBJ( package_owner IN VARCHAR2 DEFAULT NULL, package_name IN VARCHAR2 DEFAULT NULL, object_owner IN VARCHAR2 DEFAULT NULL, object_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表76-8 INSERT_PROCREP_EXCLUSION_OBJプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パッケージの所有者。 |
|
パッケージの名前。 |
|
オブジェクトの所有者。 |
|
オブジェクトの名前。 |
76.2.9 PURGE_TOMBSTONESプロシージャ
このプロシージャは、指定されたタイムスタンプの前にツームストン表から削除された行をパージします。
構文
DBMS_GOLDENGATE_ADM.PURGE_TOMBSTONES( purge_timestamp IN TIMESTAMP WITH TIME ZONE);
パラメータ
表76-9 PURGE_TOMBSTONESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
レコードがパージされる前のタイムスタンプ。 |
76.2.10 REMOVE_AUTO_CDRプロシージャ
このプロシージャは、表のOracle GoldenGateの自動競合検出および解決を削除します。
構文
DBMS_GOLDENGATE_ADM.REMOVE_AUTO_CDR( schema_name IN VARCHAR2, table_name IN VARCHAR2);
パラメータ
表76-10 REMOVE_AUTO_CDRプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
76.2.11 REMOVE_AUTO_CDR_COLUMN_GROUPプロシージャ
このプロシージャは、Oracle GoldenGateの自動競合検出および解決が構成された列グループを削除します。
構文
DBMS_GOLDENGATE_ADM.REMOVE_AUTO_CDR_COLUMN_GROUP( schema_name IN VARCHAR2, table_name IN VARCHAR2, column_group_name IN VARCHAR2);
パラメータ
表76-11 REMOVE_AUTO_CDR_COLUMN_GROUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
|
列グループの名前。 |
76.2.12 REMOVE_AUTO_CDR_DELTA_RESプロシージャ
このプロシージャは、列のOracle GoldenGateの自動競合検出および解決を削除します。
構文
DBMS_GOLDENGATE_ADM.REMOVE_AUTO_CDR_DELTA_RES( schema_name IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2);
パラメータ
表76-12 REMOVE_AUTO_CDR_DELTA_RESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表のスキーマの名前。 |
|
表の名前。 |
|
列の名前。 |