14 Oracle GoldenGateプロシージャ・レプリケーション
プロシージャ・レプリケーションは主にOracle GoldenGate内で構成されます。ただし、データベース内でプロシージャ・レプリケーション構成を表示し、一部の構成タスクを実行できます。
- Oracle GoldenGateプロシージャ・レプリケーションについて
Oracle GoldenGateは、オラクル社が提供するパッケージ内のプロシージャ・コールのレプリケーションをサポートします。OracleデータベースにおけるOracle GoldenGateプロシージャ・レプリケーションを監視できます。 - プロシージャ・レプリケーションがオンかどうかの判断
Oracle GoldenGateプロシージャ・レプリケーションがオンかオフかを判断するには、DBMS_GOLDENGATE_ADM
パッケージのGG_PROCEDURE_REPLICATION_ON
ファンクションを使用します。 - プロシージャ・レプリケーションからのオブジェクトの除外
Oracle GoldenGateプロシージャ・レプリケーションからオブジェクトを除外するには、DBMS_GOLDENGATE_ADM
パッケージのINSERT_PROCREP_EXCLUSION_OBJ
プロシージャを使用します。 - Oracle GoldenGateプロシージャ・レプリケーションの監視
一連のデータ・ディクショナリ・ビューによってOracle GoldenGateプロシージャ・レプリケーションを監視できます。
関連項目:
Oracle GoldenGateを使用したプロシージャ・レプリケーションの構成の詳細は、Oracle GoldenGateのドキュメントを参照してください。14.1 Oracle GoldenGateプロシージャ・レプリケーションについて
Oracle GoldenGateは、オラクル社が提供するパッケージ内のプロシージャ・コールのレプリケーションをサポートします。OracleデータベースにおけるOracle GoldenGateプロシージャ・レプリケーションを監視できます。
ノート:
このマニュアルでは、Oracle Database 12cリリース2 (12.2)以降に固有のプロシージャ・レプリケーション機能について説明します。この機能はOracleデータベースで構成されます。また、Oracle GoldenGateバージョン12.3以降が必要です。
Oracle GoldenGate管理者は、必要に応じてプロシージャ・レプリケーションを有効または無効にできます。プロシージャ・レプリケーションを使用すると、1つのデータベースでのオラクル社が提供するパッケージ内のプロシージャのコールが1つ以上の他のデータベースにレプリケートされ、それらのデータベースで実行されます。
たとえば、DBMS_REDEFINITION
パッケージ内のサブプログラムのコールによって、表のオンライン再定義を実行できます。この表が複数のデータベースにレプリケートされており、同じオンライン再定義を各データベースの表に対して実行する必要がある場合は、1つのデータベースでDBMS_REDEFINITION
パッケージ内のサブプログラムにコールを行うと、Oracle GoldenGateはそれらのコールを他のデータベースにレプリケートできます。
また、Oracle Supportの指導のもとで、プロシージャ・レプリケーションから特定のデータベース・オブジェクトを除外できます。これを行うには、DBMS_GOLDENGATE_ADM
パッケージのINSERT_PROCREP_EXCLUSION_OBJ
プロシージャを使用します。
データ・ディクショナリ・ビューを使用して、OracleデータベースのOracle GoldenGateプロシージャ・レプリケーションを監視できます。たとえば、これらのビューを問い合せて、Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージとプロシージャをリストできます。プロシージャ・レプリケーションから除外されたデータベース・オブジェクトをリストすることもできます。
関連項目:
プロシージャ・レプリケーションの有効化および使用については、Oracle GoldenGateのドキュメントを参照14.2 プロシージャ・レプリケーションがオンかどうかの判断
Oracle GoldenGateプロシージャ・レプリケーションがオンかオフかを判断するには、DBMS_GOLDENGATE_ADM
パッケージのGG_PROCEDURE_REPLICATION_ON
ファンクションを使用します。
- Oracle GoldenGate管理者としてではなく、
sys
(sqlplus
、sqlcl
、sqldeveloper
)としてデータベースに接続します。 GG_PROCEDURE_REPLICATION_ON
ファンクションを実行します。
例14-1 GG_PROCEDURE_REPLICATION_ON
ファンクションの実行
SET SERVEROUTPUT ON
DECLARE
on_or_off NUMBER;
BEGIN
on_or_off := DBMS_GOLDENGATE_ADM.GG_PROCEDURE_REPLICATION_ON;
IF on_or_off=1 THEN
DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is ON.');
ELSE
DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is OFF.');
END IF;
END;
/
14.3 プロシージャ・レプリケーションからのオブジェクトの除外
Oracle GoldenGateプロシージャ・レプリケーションからオブジェクトを除外するには、DBMS_GOLDENGATE_ADM
パッケージのINSERT_PROCREP_EXCLUSION_OBJ
プロシージャを使用します。
ノート:
INSERT_PROCREP_EXCLUSION_OBJ
プロシージャは、Oracleサポートの指示がある場合にのみ実行します。
- Oracle GoldenGate管理者としてではなく、
sys
(sqlplus
、sqlcl
、sqldeveloper
)としてデータベースに接続します。 INSERT_PROCREP_EXCLUSION_OBJ
プロシージャを実行し、除外するデータベース・オブジェクトを指定します。
DELETE_PROCREP_EXCLUSION_OBJ
プロシージャを実行します。
例14-2 Oracle GoldenGateプロシージャ・レプリケーションからのオブジェクトの除外
hr.employees
表のDBMS_REDEFINITION.START_REDEF_TABLE
プロシージャへのコールがレプリケートされないようにする必要があると仮定します。この例ではこの目標を達成するために、DBMS_REDEFINITION
パッケージの除外するデータベース・オブジェクトとしてhr.employees
表を追加します。
BEGIN
DBMS_GOLDENGATE_ADM.INSERT_PROCREP_EXCLUSION_OBJ(
package_owner => 'SYS',
package_name => 'DBMS_REDEFINITION',
object_owner => 'hr',
object_name => 'employees');
END;
/
14.4 Oracle GoldenGateプロシージャ・レプリケーションの監視
一連のデータ・ディクショナリ・ビューによってOracle GoldenGateプロシージャ・レプリケーションを監視できます。
次のビューを使用して、Oracle GoldenGateプロシージャ・レプリケーションを監視できます。
表14-1 Oracle GoldenGateプロシージャ・レプリケーション・ビュー
ビュー | 説明 |
---|---|
|
Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージの詳細を示します。 パッケージがサポートされており、Oracle GoldenGateプロシージャ・レプリケーションがオンの場合、パッケージ内のサブプログラムへのコールがレプリケートされます。 |
|
Oracle GoldenGateプロシージャ・レプリケーションでサポートされているプロシージャの詳細を示します。 |
|
Oracle GoldenGateプロシージャ・レプリケーションについての除外リストに存在するすべてのデータベース・オブジェクトに関する詳細を示します。 データベース・オブジェクトは、 |
- Oracle GoldenGate管理者としてではなく、
sys
(sqlplus
、sqlcl
、sqldeveloper
)としてデータベースに接続します。 - Oracle GoldenGateプロシージャ・レプリケーションに関連するビューを問い合せます。
- Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージの表示
DBA_GG_SUPPORTED_PACKAGES
ビューには、Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージに関する情報が表示されます。 - Oracle GoldenGateプロシージャ・レプリケーションでサポートされているプロシージャのリスト
DBA_GG_SUPPORTED_PROCEDURES
ビューには、Oracle GoldenGateプロシージャ・レプリケーションでサポートされているプロシージャに関する情報が表示されます。 - Oracle GoldenGateプロシージャ・レプリケーションから除外されるデータベース・オブジェクトに関する情報の表示
DBA_GG_PROC_OBJECT_EXCLUSION
ビューには、Oracle GoldenGateプロシージャ・レプリケーションについての除外リストに存在するすべてのデータベース・オブジェクトに関する詳細が示されます。
関連トピック
14.4.1 Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージの表示
DBA_GG_SUPPORTED_PACKAGES
ビューには、Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージに関する情報が表示されます。
- Oracle GoldenGate管理者としてではなく、
sys
(sqlplus
、sqlcl
、sqldeveloper
)としてデータベースに接続します。 DBA_GG_SUPPORTED_PACKAGES
ビューを問い合せます。
例14-3 Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージに関する情報の表示
この問合せでは、パッケージに関する次の情報が表示されます。
-
各パッケージの所有者
-
各パッケージの名前
-
サポートされているパッケージが属している機能の名前
-
パッケージがサポートされる最小データベース・リリース
COLUMN OWNER FORMAT A10
COLUMN NAME FORMAT A20
COLUMN FEATURE FORMAT A20
COLUMN MIN_DB_VERSION FORMAT A14
SELECT OWNER,
NAME,
FEATURE,
MIN_DB_VERSION
FROM DBA_GG_SUPPORTED_PACKAGES;
出力は次のようになります。
OWNER NAME FEATURE MIN_DB_VERSION
---------- -------------------- -------------------- --------------
SYS DBMS_REDEFINITION REDEFINITION 12.2
SYS DBMS_FGA FGA 12.2
SYS DBMS_RLS RLS 12.2
.
.
.
関連トピック
14.4.2 Oracle GoldenGateプロシージャ・レプリケーションでサポートされているプロシージャのリスト
DBA_GG_SUPPORTED_PROCEDURES
ビューには、Oracle GoldenGateプロシージャ・レプリケーションでサポートされているプロシージャに関する情報が表示されます。
- Oracle GoldenGate管理者としてではなく、
sys
(sqlplus
、sqlcl
、sqldeveloper
)としてデータベースに接続します。 DBA_GG_SUPPORTED_PROCEDURES
ビューを問い合せます。
例14-4 Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージに関する情報の表示
この問合せでは、パッケージに関する次の情報が表示されます。
-
各パッケージの所有者
-
各パッケージの名前
-
各プロシージャの名前
-
プロシージャがサポートされる最小データベース・リリース
-
一部のデータベース・オブジェクトについて、プロシージャのレプリケートを禁止する除外ルールがあるかどうか
COLUMN OWNER FORMAT A10
COLUMN PACKAGE_NAME FORMAT A15
COLUMN PROCEDURE_NAME FORMAT A15
COLUMN MIN_DB_VERSION FORMAT A14
COLUMN EXCLUSION_RULE_EXISTS FORMAT A14
SELECT OWNER,
PACKAGE_NAME,
PROCEDURE_NAME,
MIN_DB_VERSION,
EXCLUSION_RULE_EXISTS
FROM DBA_GG_SUPPORTED_PROCEDURES;
出力は次のようになります。
OWNER PACKAGE_NAME PROCEDURE_NAME MIN_DB_VERSION EXCLUSION_RULE
---------- --------------- --------------- -------------- --------------
XDB DBMS_XDB_CONFIG ADDTRUSTMAPPING 12.2 NO
CTXSYS CTX_DDL ALTER_INDEX 12.2 NO
SYS DBMS_FGA DROP_POLICY 12.2 NO
SYS XS_ACL DELETE_ACL 12.2 NO
.
.
.
関連トピック
14.4.3 Oracle GoldenGateプロシージャ・レプリケーションから除外されるデータベース・オブジェクトに関する情報の表示
DBA_GG_PROC_OBJECT_EXCLUSION
ビューには、Oracle GoldenGateプロシージャ・レプリケーションについての除外リストに存在するすべてのデータベース・オブジェクトに関する詳細が示されます。
DBMS_GOLDENGATE_ADM
パッケージのINSERT_PROCREP_EXCLUSION_OBJ
プロシージャを使用して除外リストに追加されます。データベース・オブジェクトが除外リストにある場合、サブプログラムが除外されたオブジェクトに対して実行される場合は、パッケージ内のサブプログラムの実行はレプリケートされません。
- Oracle GoldenGate管理者としてではなく、
sys
(sqlplus
、sqlcl
、sqldeveloper
)としてデータベースに接続します。 DBA_GG_PROC_OBJECT_EXCLUSION
ビューを問い合せます。
例14-5 Oracle GoldenGateプロシージャ・レプリケーションから除外されるデータベース・オブジェクトに関する情報の表示
この問合せでは、パッケージに関する次の情報が表示されます。
-
各パッケージの所有者
-
各パッケージの名前
-
除外される各データベース・オブジェクトの所有者
-
除外される各データベース・オブジェクトの名前
COLUMN PACKAGE_OWNER FORMAT A15
COLUMN PACKAGE_NAME FORMAT A20
COLUMN OBJECT_OWNER FORMAT A15
COLUMN OBJECT_NAME FORMAT A15
SELECT PACKAGE_OWNER,
PACKAGE_NAME,
OBJECT_OWNER,
OBJECT_NAME
FROM DBA_GG_PROC_OBJECT_EXCLUSION;
出力は次のようになります。
PACKAGE_OWNER PACKAGE_NAME OBJECT_OWNER OBJECT_NAME
--------------- -------------------- --------------- ---------------
SYS DBMS_REDEFINITION HR EMPLOYEES