Advanced Replicationをインストールすると、レプリケーション・マネージメントApplication Program Interface(API)もインストールされます。レプリケーション・マネージメントAPIは、管理者が各サイトのレプリケーション機能を設定および管理するための、PL/SQLパッケージのコレクションです。また、Oracle Enterprise Manager Cloud Controlのアドバンスト・レプリケーション・インタフェースでは、各サイトのレプリケーション・マネージメントAPIのプロシージャおよびファンクションを使用して作業を実行します。
この章には、次の項が含まれます。
注意: この部の章で説明するPL/SQLプロシージャおよびファンクションの一部は、オーバーロードされています。すなわち、1つのパッケージ内に、同一の名前のプロシージャまたはファンクションが複数ありますが、それらの仮パラメータの個数、順序またはデータ型のグループは異なります。オーバーロードされているプロシージャまたはファンクションは、その旨を記述します。オーバーロードおよびPL/SQLの一般情報の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。 |
Oracleのレプリケーション・マネージメントAPIを使用するには、SQL*Plusなどの問合せツールを使用して、プロシージャまたはファンクションをコールします。たとえば、次に示すDBMS_REPCAT
.CREATE_MASTER_REPOBJECT
プロシージャをコールすると、hr_repg
レプリケーション・グループ内に新しいレプリケート表hr.employees
が作成されます。
BEGIN DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( gname => 'hr_repg', type => 'TABLE', oname => 'employees', sname => 'hr', use_existing_object => TRUE, copy_rows => FALSE); END; /
レプリケーション・マネージメントAPIファンクションをコールするには、ファンクションの戻り値を受け取る環境を用意する必要があります。たとえば、次に示す無名PL/SQLブロックは、DBMS_DEFER_SYS
.DISABLED
ファンクションをIF
文でコールします。
BEGIN IF DBMS_DEFER_SYS.DISABLED ('inst2') THEN DBMS_OUTPUT.PUT_LINE('Propagation to INST2 is disabled.'); ELSE DBMS_OUTPUT.PUT_LINE('Propagation to INST2 is enabled.'); END IF; END; /
レプリケーション・マネージメントAPIのプロシージャおよびファンクションの多くには、いくつかの重要な考慮事項があります。次に例を示します。
プロシージャやファンクションのいくつかは、マルチマスター構成のマスター定義サイトからのみコールします。
マスター・グループに対して特定の管理操作を行う場合は、レプリケーション・マネージメントAPIのプロシージャやファンクションをコールする前に、そのグループのレプリケーション・アクティビティを中断する必要があります。
Oracleレプリケーション・マネージメントAPIのプロシージャやファンクションをコールする順序は大変重要です。レプリケーション・マネージメント・コールを発行する方法の詳細は、次の項を参照してください。
Oracle Enterprise Manager Cloud ControlのAdvanced Replicationインタフェースでは、ほとんどのファンクションの実行に、レプリケーション・マネージメントAPIが使用されます。Advanced Replicationインタフェースには次に示す機能が備わっているため、レプリケーション・マネージメントAPIコールを個別に発行するより便利です。
APIコールのパラメータの入力および調整を行うGUIインタフェースを用意
大量の関連APIコールを、適切に順序付け
APIコールで戻された出力を、メッセージ・ボックスとエラー・ファイルに表示
日時データ型および期間データ型の多くの名前は、レプリケーション・マネージメントAPIのプロシージャおよびファンクションとともに使用するには長すぎます。このため、これらのデータ型に関してはフルネームのかわりに略称を使用する必要があります。各データ型およびその略称を次の表に示します。DATE
およびTIMESTAMP
データ型には略称は必要ありません。
データ型 | 略称 |
---|---|
TIME WITH TIME ZONE |
TSTZ |
TIMESTAMP LOCAL TIME ZONE |
TSLTZ |
INTERVAL YEAR TO MONTH |
IYM |
INTERVAL DAY TO SECOND |
IDS |
たとえば、DBMS_DEFER_QUERY.GET_
datatype
_ARG
ファンクションを使用して遅延コールのTIMESTAMP
LOCAL
TIME
ZONE
引数を判定する場合は、datatype
のかわりにTSLTZ
を使用します。したがって、DBMS_DEFER_QUERY.GET_TSLTZ_ARG
ファンクションを実行します。