7 暗黙的適用の構成
レプリケーション環境では、Oracle Streams適用プロセスが特定のキューから論理変更レコード(LCR)をデキューして、それぞれを直接適用するか、適用ハンドラと呼ばれるユーザー定義プロシージャにパラメータとして渡します。
次のトピックでは、暗黙的適用の構成について説明します。
この章で説明する各タスクは、特に明記されていないかぎり、適切な権限を付与されているOracle Streams管理者が完了する必要があります。
7.1 適用プロセスの作成の概要
次の任意のプロシージャを使用して、適用プロセスを構成できます。
DBMS_STREAMS_ADM
パッケージの各プロシージャでは、名前を指定して適用プロセスを作成したり(存在しない場合)、適用プロセスにポジティブ・ルール・セットまたはネガティブ・ルール・セットを作成します(適用プロセスにこれらのルール・セットがない場合)。また、ルール・セットに表ルール、スキーマ・ルール、グローバル・ルールまたはメッセージ・ルールを追加することもできます。
DBMS_APPLY_ADM
パッケージのCREATE_APPLY
プロシージャでは、適用プロセスは作成しますが、その適用プロセスのルール・セットやルールは作成しません。ただし、CREATE_APPLY
プロシージャを使用すると、適用プロセスにポジティブ・ルール・セットまたはネガティブ・ルール・セットとして関連付ける既存のルール・セットを指定したり、適用ハンドラ、適用ユーザー、適用タグなどの他の多数のオプションを指定でき、さらに、バッファ・キューまたは永続キューのいずれからメッセージをデキューするかを指定することもできます。
1つの適用プロセスでは、バッファ・キューまたは永続キューのいずれかからメッセージをデキューする必要があります。取得プロセスによって取得された論理変更レコードは取得LCRと呼ばれ、通常、バッファ・キューに格納されています。したがって、取得プロセスによって取得されたLCRを1つの適用プロセスで適用する場合は、永続LCRまたは永続ユーザー・メッセージは適用できません。
また、同期取得によって取得されたLCRは永続LCRであり、通常、永続キューに格納されています。したがって、同期取得によって取得されたLCRを1つの適用プロセスで適用する場合は、取得プロセスによって取得されたLCRは適用できません。ただし、永続LCRおよび永続ユーザー・メッセージについては、両方のタイプのメッセージが永続キューにステージングされるため、1つの適用プロセスで両方を適用できます。
この章の例では、取得LCR、永続LCRおよび永続ユーザー・メッセージを適用する適用プロセスを作成します。適用プロセスに関連付けるANYDATA
キューが存在しない場合は、先にそのキューを作成してから、適用プロセスを作成します。
注意:
-
DBMS_STREAMS_ADM
パッケージのプロシージャまたはOracle Enterprise Manager Cloud Controlを使用して、Oracle Streams環境全体(適用プロセスを含む)を構成できます。「Oracle Streamsレプリケーションの簡単な構成」を参照してください。 -
作成する適用プロセスの構成によっては、適用プロセスで変更を適用する表の列について、ソース・データベースでサプリメンタル・ロギングが必要になる場合があります。「サプリメンタル・ロギングの指定」を参照してください。
-
取得LCRと永続LCRの詳細は、『Oracle Streams概要および管理』を参照してください。
7.2 適用プロセスの作成の準備
適用プロセスを作成する前に、次のタスクを完了する必要があります。
-
「Oracle Streamsレプリケーションを構成する前に実行するタスク」で説明されている次のタスクを完了します。
-
適用プロセスに関連付ける
ANYDATA
キューを作成します(存在しない場合)。方法については、「ANYDATAキューの作成」を参照してください。この章の例では、適用プロセスで使用されるキューはstrmadmin.streams_queue
であると想定しています。適用プロセスを実行するデータベースと同じデータベースでキューを作成します。
7.3 DBMS_STREAMS_ADMを使用した取得LCRの適用プロセスの作成
次の例では、DBMS_STREAMS_ADM
パッケージのADD_SCHEMA_RULES
プロシージャを実行して、取得論理変更レコード(LCR)を適用する適用プロセスを作成します。この適用プロセスでは、取得プロセスで取得されたLCRを適用できます。
手順は次のとおりです。
7.4 DBMS_APPLY_ADMを使用した適用プロセスの作成
この項では、DBMS_APPLY_ADM
パッケージを使用して適用プロセスを作成する次の例を取り上げます。
関連項目:
-
apply_database_link
パラメータを使用してOracle以外のデータベースにメッセージを適用するように適用プロセスを構成する方法の詳細は、「OracleからOracle以外への環境での変更の適用」を参照してください
7.4.1 DBMS_APPLY_ADMを使用した取得LCRの適用プロセスの作成
次の例では、DBMS_APPLY_ADM
パッケージのCREATE_APPLY
プロシージャを実行して、取得論理変更レコード(LCR)を適用する適用プロセスを作成します。この適用プロセスでは、取得プロセスで取得されたLCRを適用できます。
手順は次のとおりです。
適用プロセスを作成した後、ADD_TABLE_RULES
またはADD_SUBSET_RULES
プロシージャを実行して、適用プロセスのルール・セットにルールを追加します。これらのルールによって、適用プロセスは、指定された表のLCRを適用するように指示されます。
関連項目:
ルールの詳細は、『Oracle Streams概要および管理』を参照してください。
7.4.2 DBMS_APPLY_ADMを使用した永続LCRの適用プロセスの作成
次の例では、DBMS_APPLY_ADM
パッケージのCREATE_APPLY
プロシージャを実行して、永続論理変更レコード(LCR)を適用する適用プロセスを作成します。この適用プロセスでは、同期取得によって取得されたLCRやアプリケーションによって構成されたLCRを適用できます。
手順は次のとおりです。
適用プロセスを作成した後、ADD_TABLE_RULES
またはADD_SUBSET_RULES
プロシージャを実行して、適用プロセスのルール・セットにルールを追加します。これらのルールによって、適用プロセスは、指定された表のLCRを適用するように指示されます。
関連項目:
ルールの詳細は、『Oracle Streams概要および管理』を参照してください。