14 Oracle GoldenGateプロシージャ・レプリケーション

プロシージャ・レプリケーションは主にOracle GoldenGate内で構成されます。ただし、データベース内でプロシージャ・レプリケーション構成を表示し、一部の構成タスクを実行できます。

関連項目:

Oracle GoldenGateを使用したプロシージャ・レプリケーションの構成の詳細は、Oracle GoldenGateのドキュメントを参照してください。

14.1 Oracle GoldenGateプロシージャ・レプリケーションについて

Oracle GoldenGateは、オラクル社が提供するパッケージ内のプロシージャ・コールのレプリケーションをサポートします。OracleデータベースにおけるOracle GoldenGateプロシージャ・レプリケーションを監視できます。

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ファンクションを使用します。

  1. Oracle GoldenGate管理者としてではなく、sys (sqlplussqlclsqldeveloper)としてデータベースに接続します。
  2. 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プロシージャを使用します。

データベース・オブジェクトがOracle GoldenGateプロシージャ・レプリケーションの除外リストにある場合、サブプログラムが除外されたオブジェクトに対して実行される場合は、パッケージ内のサブプログラムの実行はレプリケートされません。

注意:

INSERT_PROCREP_EXCLUSION_OBJプロシージャは、Oracleサポートの指示がある場合にのみ実行します。
  1. Oracle GoldenGate管理者としてではなく、sys (sqlplussqlclsqldeveloper)としてデータベースに接続します。
  2. INSERT_PROCREP_EXCLUSION_OBJプロシージャを実行し、除外するデータベース・オブジェクトを指定します。
指定されたデータベース・オブジェクトがOracle GoldenGateプロシージャ・レプリケーションの除外リストに配置されます。除外リストからデータベース・オブジェクトを削除するには、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プロシージャ・レプリケーション・ビュー

ビュー 説明

DBA_GG_SUPPORTED_PACKAGES

Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージの詳細を示します。

パッケージがサポートされており、Oracle GoldenGateプロシージャ・レプリケーションがオンの場合、パッケージ内のサブプログラムへのコールがレプリケートされます。

DBA_GG_SUPPORTED_PROCEDURES

Oracle GoldenGateプロシージャ・レプリケーションでサポートされているプロシージャの詳細を示します。

DBA_GG_PROC_OBJECT_EXCLUSION

Oracle GoldenGateプロシージャ・レプリケーションについての除外リストに存在するすべてのデータベース・オブジェクトに関する詳細を示します。

データベース・オブジェクトは、DBMS_GOLDENGATE_ADMパッケージのINSERT_PROCREP_EXCLUSION_OBJプロシージャを使用して除外リストに追加されます。データベース・オブジェクトが除外リストにある場合、サブプログラムが除外されたオブジェクトに対して実行される場合は、パッケージ内のサブプログラムの実行はレプリケートされません。

  1. Oracle GoldenGate管理者としてではなく、sys (sqlplussqlclsqldeveloper)としてデータベースに接続します。
  2. Oracle GoldenGateプロシージャ・レプリケーションに関連するビューを問い合せます。

14.4.1 Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージの表示

DBA_GG_SUPPORTED_PACKAGESビューには、Oracle GoldenGateプロシージャ・レプリケーションでサポートされているパッケージに関する情報が表示されます。

パッケージがサポートされており、Oracle GoldenGateプロシージャ・レプリケーションがオンの場合、パッケージが特に除外されていないかぎり、パッケージ内のサブプログラムへのコールがレプリケートされます。
  1. Oracle GoldenGate管理者としてではなく、sys (sqlplussqlclsqldeveloper)としてデータベースに接続します。
  2. 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プロシージャ・レプリケーションがオンの場合、プロシージャが特に除外されていないかぎり、プロシージャへのコールがレプリケートされます。
  1. Oracle GoldenGate管理者としてではなく、sys (sqlplussqlclsqldeveloper)としてデータベースに接続します。
  2. 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プロシージャを使用して除外リストに追加されます。データベース・オブジェクトが除外リストにある場合、サブプログラムが除外されたオブジェクトに対して実行される場合は、パッケージ内のサブプログラムの実行はレプリケートされません。
  1. Oracle GoldenGate管理者としてではなく、sys (sqlplussqlclsqldeveloper)としてデータベースに接続します。
  2. 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