230 DBMS_XSTREAM_ADM
このDBMS_XSTREAM_ADM
パッケージは、Oracleデータベースと他のシステム間でデータベースの変更をストリームするためのインタフェースを提供します。XStreamを使用すると、アプリケーションでデータベースの変更をストリーム・アウトまたはストリーム・インできます。
この章では、次の項目について説明します。
230.1 DBMS_XSTREAM_ADMの概要
このパッケージは、データベースの変更をOracleデータベースから他のシステムにストリームするアウトバウンド・サーバーを構成するためのインタフェースを提供します。このパッケージは、データベースの変更を他のシステムからOracleデータベースにストリームするインバウンド・サーバーを構成するためのインタフェースも提供しています。
どちらの場合でも、データベースの変更は論理変更レコード(LCR)にカプセル化されます。また、他のシステムとしてOracleシステム、または非Oracleシステム(Oracle以外のデータベースまたはファイル・システムなど)も使用できます。
XStreamアウトバウンド・サーバーでは、CまたはJavaを使用してLCRをOracleデータベースからプログラム的にストリーム・アウトできます。LCRの受信後、他のシステムは任意にカスタマイズした方法でそのLCRを処理できます。たとえば、他のシステムではLCRのコンテンツをファイルに保存したり、LCRをXstreamインバウンド・サーバー経由でOracleデータベースに送信したり、SQL文を生成して任意のOracleデータベースまたはOracle以外のデータベースで実行することができます。
XStreamインバウンド・サーバーは別のシステムからLCRを受け入れ、そのLCRをOracleデータベースに適用するか、適用ハンドラを使用してカスタマイズした方法で処理します。
XStreamは、マルチテナント・コンテナ・データベース(CDB)で使用できます。CDBは、ユーザーが作成した0以上のプラガブル・データベース(PDB)を含むOracle Databaseです。
参照:
-
CDBおよびPDBの詳細は、『Oracle Database概要』を参照してください。
230.2 DBMS_XSTREAM_ADMのセキュリティ・モデル
このパッケージのサブプログラムを実行するユーザーが必要な権限を持っていることを確認するには、XStream管理者を構成し、このパッケージを使用する際にXStream管理者として接続します。
管理者には、次のいずれかのアクションを実行する際にDBA
ロールが付与される必要があります。
-
アウトバウンド・サーバーに対して構成された接続ユーザーとは異なるユーザーとして接続しているときに、
ADD_OUTBOUND
プロシージャを実行する -
取得プロセスの取得ユーザーを変更、またはアウトバウンド・サーバーの接続ユーザーを変更するために、
ALTER_OUTBOUND
プロシージャを実行する -
CREATE_OUTBOUND
プロシージャで取得プロセスが作成されたために、このプロシージャを実行する -
インバウンド・サーバーの適用ユーザーを変更するために、
ALTER_INBOUND
プロシージャを実行する -
インバウンド・サーバーに対して構成された適用ユーザーとは異なるユーザーとして接続しているときに、
ADD_INBOUND
プロシージャを実行する
管理者が前述の作業を実行する必要がない場合、DBA
ロールは不要です。
参照:
XStreamおよびセキュリティの詳細は、『Oracle Database XStreamガイド』の第4章「XStream Outおよびセキュリティ」を参照してください。
230.3 DBMS_XSTREAM_ADMの操作上のノート
DBMS_APPLY_ADM
パッケージの一部のサブプログラムではXStreamアウトバウンド・サーバーを管理でき、DBMS_APPLY_ADM
パッケージの一部のサブプログラムではXStreamインバウンド・サーバーを管理できます。
参照:
どのサブプログラムがアウトバウンド・サーバーとインバウンド・サーバーを管理できるかについて、「DBMS_APPLY_ADM」を参照してください。
230.4 DBMS_XSTREAM_ADMサブプログラムの要約
この表は、DBMS_XSTREAM_ADM
サブプログラムを示し、簡単に説明しています。
表230-1 DBMS_XSTREAM_ADMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
指定されたルールを満たす行論理変更レコード(行LCR)に列を追加する宣言ルールベースの変換を追加または削除します。 |
|
伝播のポジティブ・ルール・セットまたはネガティブ・ルール・セットにグローバル・ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。 |
|
取得プロセスまたは適用プロセスのポジティブ・ルール・セットまたはネガティブ・ルール・セットにグローバル・ルールを追加し、指定した取得プロセスまたは適用プロセスが存在しない場合は、それを作成します。 |
|
指定したキューからLCRをデキューするXStreamアウトバウンド・サーバーを作成します。 |
|
伝播のポジティブ・ルール・セットまたはネガティブ・ルール・セットにスキーマ・ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。 |
|
XStreamクライアントのルール・セットにルールを追加します。 |
|
アウトバウンド・サーバーの構成にサブセット・ルールを追加します。 |
|
伝播のポジティブ・ルール・セットにサブセット・ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。 |
|
取得プロセスまたは適用プロセスのポジティブ・ルール・セットにサブセット・ルールを追加し、指定した取得プロセスまたは適用プロセスが存在しない場合は、それを作成します。 |
|
伝播のポジティブ・ルール・セットまたはネガティブ・ルール・セットに表ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。 |
|
このプロシージャは、XStreamクライアントのルール・セットにルールを追加します。 |
|
XStreamインバウンド・サーバーを変更します。 |
|
XStreamアウトバウンド・サーバーを変更します。 |
|
XStreamインバウンド・サーバーとそのキューを作成します。 |
|
XStreamアウトバウンド・サーバー、キュー、および取得プロセスを作成して、XStreamクライアントのアプリケーションがLCRにカプセル化されたOracleデータベースの変更をストリーム・アウトできるようにします。 |
|
指定されたルールを満たす行LCRから列を削除する宣言ルールベースの変換を追加または削除します。 |
|
インバウンド・サーバーの構成を削除します。 |
|
アウトバウンド・サーバーの構成を削除します。 |
|
Oracle Replicationコンポーネントに対してXStreamのパフォーマンス最適化を有効にします。 |
|
現在のセッションの追跡ラベルを戻します。 |
|
現行のセッションで生成されるREDOエントリすべてに対してバイナリ・タグを取得します。 |
|
Oracle Replicationコンポーネントに対してXStreamのパフォーマンス最適化を有効にした場合は |
|
指定されたルールを満たす行LCR内の列のリストを保持する宣言ルールベースの変換を追加または削除します。 |
|
1つの取得プロセスからのストリームを別の取得プロセスからのストリームとマージします。 |
|
元の取得プロセスおよびクローニングされた取得が、指定されたマージしきい値内にあるかどうかを判別し、マージしきい値内にある場合は、 |
|
指定されたオブジェクトに関するすべてのOracle Replicationデータ・ディクショナリ情報をローカル・データベースから削除します。 |
|
エラーが発生したために停止した分割およびマージ操作に対してオプションを提供します。このプロシージャは、操作のロールフォワード、操作のロールバック、操作に関するすべてのメタデータのパージのいずれかの処理を実行します。 |
|
指定された |
|
指定した取得プロセス、適用プロセス、または伝播に関連付けられたルール・セットから、指定したルールまたはすべてのルールを削除します。 |
|
アウトバウンド・サーバーの構成からサブセット・ルールを削除します。 |
|
ローカル・データベースでXStreamの構成を削除します。 |
|
指定されたルールを満たす行LCR内の列の名前を変更する宣言ルールベースの変換を追加または削除します。 |
|
指定されたルールを満たす行LCR内のスキーマの名前を変更する宣言ルールベースの変換を追加または削除します。 |
|
指定されたルールを満たす行LCR内の表の名前を変更する宣言ルールベースの変換を追加または削除します。 |
|
現在のセッションで生成された論理変更レコード(LCR)の追跡ラベルを設定します。 |
|
アウトバウンド・サーバー、インバウンド・サーバー、またはアウトバウンド・サーバーの取得プロセスのパラメータを設定します。 |
|
現行のセッションで継続して生成されるREDOエントリすべてに対してバイナリ・タグを設定します。 |
|
キュー表と、XStreamの取得、伝播、適用機能で使用するキューを作成します。 |
|
取得プロセスからの1つのストリームを、その取得プロセスからの他のすべてのストリームから分割します。 |
|
XStreamアウトバウンド・サーバーを起動します。 |
|
XStreamアウトバウンド・サーバーを停止します。 |
ノート:
特に指定がないかぎり、すべてのサブプログラムがコミットされます。
230.4.1 ADD_COLUMNプロシージャ
このプロシージャは、指定されたルールを満たす行論理変更レコード(行LCR)に列を追加する宣言ルールベースの変換を追加または削除します。
指定したルールがTRUE
と評価されるときに変換を実行する場合、ルールはXStreamクライアントのポジティブ・ルール・セットに入っている必要があります。XStreamクライアントには、取得プロセス、伝播プロセスおよび適用プロセスがあります。
このプロシージャはオーバーロードされています。column_value
パラメータとcolumn_function
パラメータは、両方同時には指定できません。
ノート:
-
ADD_COLUMN
変換では、BLOB
、CLOB
、NCLOB
、BFILE
、LONG
、LONG
RAW
、ROWID
、ユーザー定義タイプ(オブジェクト・タイプ、REF
、VARRAY、ネストした表)およびオラクル社提供のタイプ(任意のタイプ、XMLタイプ、空間タイプ、メディア・タイプ)などは追加できません。 -
宣言的変換では、行LCRのみを変換できます。したがって、このプロシージャを実行する場合は、DMLルールを指定する必要があります。DDLルールを指定した場合は、エラーが発生します。
参照:
宣言的なルールベースの変換の詳細は、『Oracle Database XStreamガイド』を参照してください。
構文
DBMS_XSTREAM_ADM.ADD_COLUMN( rule_name IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2, column_value IN ANYDATA, value_type IN VARCHAR2 DEFAULT 'NEW', step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD');
DBMS_XSTREAM_ADM.ADD_COLUMN( rule_name IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2, column_function IN VARCHAR2, value_type IN VARCHAR2 DEFAULT 'NEW', step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD');
パラメータ
表230-2 ADD_COLUMNプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
たとえば、 |
|
行LCRで列を追加する表の名前で、 |
|
ルールを満たす各行LCRに追加する列の名前。 |
|
追加する列の値。列のデータ・タイプおよび値に適した
|
|
'SYSDATE' SQL関数は、現在の日時を戻します。
戻り値のデータ・タイプは 'SYSTIMESTAMP' SQL関数は、小数秒を含むシステム日付を戻します。
TIMESTAMP WITH TIME ZONE です。
このファンクションは、ルールの評価結果が
関連項目: |
|
行LCRの新しい値に列を追加する場合は、 行LCRの古い値に列を追加する場合は、 |
|
変換の実行順序。 関連項目: 変換の順序の詳細は、『Oracle Database XStreamガイド』を参照してください。 |
|
変換をルールに追加する場合は、 変換をルールから削除する場合は、 |
使用上のノート
operation
パラメータに'REMOVE'
を指定すると、指定したルールに対する列追加の宣言ルールベースの変換のうち、指定したパラメータ(table_name
、column_name
およびstep_number
)に一致するすべての変換が削除されます。これらのパラメータにNULLを指定すると、ワイルドカードとして動作します。次の表に、これらのパラメータの1つ以上がNULL
の場合のADD_COLUMN
プロシージャの動作を示します。
table_name | column_name | step_number | 結果 |
---|---|---|---|
|
|
|
指定したルールに対するすべての列追加変換が削除されます。 |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
230.4.2 ADD_GLOBAL_PROPAGATION_RULESプロシージャ
このプロシージャは、伝播のポジティブ・ルール・セットまたはネガティブ・ルール・セットにグローバル・ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは2つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
構文
DBMS_XSTREAM_ADM.ADD_GLOBAL_PROPAGATION_RULES( streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, dml_rule_name OUT VARCHAR2, ddl_rule_name OUT VARCHAR2, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, queue_to_queue IN BOOLEAN DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_GLOBAL_PROPAGATION_RULES( streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, queue_to_queue IN BOOLEAN DEFAULT NULL);
パラメータ
表230-3 ADD_GLOBAL_PROPAGATION_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播の名前所有者を指定しないでください。 指定された伝播が存在しない場合は、自動的に作成されます。 このパラメータが このパラメータが |
|
ソース・キューの名前で、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 |
|
宛先キュー(データベース・リンクを含む)の名前で、宛先キューがリモート・データベース内に存在する場合は、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 データベース・リンクが省略された場合は、現行のデータベースのグローバル名が使用されます。その場合、ソース・キューと宛先キューは同じデータベース内に存在する必要があります。 ノート: 接続修飾子は使用できません。 |
|
|
|
|
|
|
|
ソース・データベースのグローバル名。ソース・データベースは、変更が発生したデータベースです。 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が 伝播ルールではソース・データベースを指定することをお薦めします。 |
|
|
|
|
|
どちらの場合も、ルール・セットが存在しないときは、自動的に作成されます。 |
|
このパラメータに (system_condition) AND (and_condition) 指定する条件の変数は、必ず :lcr.get_tag() = HEXTORAW(''02'') 指定した条件内の つまり、行LCRに対してのみ有効なLCRメンバー・サブプログラムを指定する場合は、 関連項目: 論理変更レコードのタイプ |
|
このプロシージャでは、既存の伝播のqueue_to_queueプロパティは変更できません。指定した伝播が存在する場合は、それぞれの設定に対して次のように処理されます。
|
使用上のノート
このプロシージャは、現行のユーザーを使用して伝播を構成します。特定のソース・キューと宛先キューの間で許可される伝播は1つのみです。
このプロシージャは、include_dml
パラメータ値とinclude_ddl
パラメータ値に基づいて、DMLとDDLのルールをそれぞれ自動的に作成します。各ルールには、システム生成のルール名(データベース名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。データベース名と順序番号を組み合せた名前が長すぎる場合は、データベース名が切り捨てられます。伝播では、これらのルールがフィルタ処理に使用されます。
例
次に、DMLの変更に関して作成されるグローバル・ルール条件の例を示します。
(:dml.is_null_tag() = 'Y' and :dml.get_source_database_name() = 'DBS1.NET' )
230.4.3 ADD_GLOBAL_RULESプロシージャ
このプロシージャは、XStreamクライアントのルール・セットにルールを追加します。
次のいずれかのタイプのXStreamクライアントのルール・セットにルールを追加します。
-
streams_type
パラメータをcapture
に設定すると、このプロシージャは、データベース全体に対する変更を取得する取得プロセス・ルールを追加します。このプロシージャは、指定した取得プロセスが存在しない場合にそれを作成します。
-
streams_type
パラメータをapply
に設定し、streams_name
パラメータで適用プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーの名前を指定すると、このプロシージャは、受信したすべての論理変更レコード(LCR)を適用する適用ルールを追加します。このルールでは、特定のソース・データベースに属するLCRのみをルールの対象として指定できます。このプロシージャは、指定した
streams_name
を持つ適用プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーが存在しない場合に適用プロセスを作成します。このプロシージャはアウトバウンド・サーバーまたはインバウンド・サーバーにルールを追加できますが、アウトバウンド・サーバーまたはインバウンド・サーバーを作成することはできません。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは2つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
ノート:
グローバル・ルールを取得プロセスのポジティブ・ルールセットに追加する場合は、Oracle Replicationでサポートされていないデータベース・オブジェクトを除外するルールを、取得プロセスのネガティブ・ルールセットに追加してください。Oracle Replicationによってサポートされていないデータベース・オブジェクトを判別するには、DBA_XSTREAM_OUT_SUPPORT_MODE
データ・ディクショナリ・ビューを問い合せます。サポートされないデータベース・オブジェクトが除外されていない場合は、取得エラーが発生します。
構文
DBMS_XSTREAM_ADM.ADD_GLOBAL_RULES( streams_type IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, dml_rule_name OUT VARCHAR2, ddl_rule_name OUT VARCHAR2, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_GLOBAL_RULES( streams_type IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-4 ADD_GLOBAL_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
XStreamクライアントのタイプ:
|
|
取得プロセスまたは適用プロセスの名前。所有者を指定しないでください。
このパラメータが
このパラメータが このパラメータが 適用プロセスには、それぞれ一意の名前を付ける必要があります。 |
|
ローカル・キューの名前で、 たとえば、 取得プロセス・ルールの場合は、取得プロセスによってLCRがエンキューされるキューを指定します。アウトバウンド・サーバーのルールの場合、これはアウトバウンド・サーバーがLCRをデキューするキューになります。インバウンド・サーバーのルールの場合、これはインバウンド・サーバーがエラー・トランザクションをエンキューするキューになります。 |
|
|
|
|
|
|
|
ソース・データベースのグローバル名。 取得プロセス・ルールの場合、ソース・データベース上でローカルに取得プロセスを作成するには、 適用プロセス・ルールの場合は、適用プロセスによって適用される変更のソース・データベースを指定します。ソース・データベースは、変更が発生したデータベースです。取得されたLCRを適用プロセスで適用する場合、適用プロセスによって適用できるのは、1つのソース・データベースでの1つの取得プロセスによるLCRのみです。 CDBでは、ルールに関連するコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が |
|
|
|
|
|
どちらの場合も、ルール・セットが存在しないときは、自動的に作成されます。 |
|
このパラメータに (system_condition) AND (and_condition) 指定する条件の変数は、必ず :lcr.get_tag() = HEXTORAW(''02'') 指定した条件内の つまり、行LCRに対してのみ有効なLCRメンバー・サブプログラムを指定する場合は、 関連項目: 論理変更レコードのタイプ |
|
ソースCDBのルートのグローバル名。たとえば、 このパラメータが ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
ソース・コンテナの短縮名。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
使用上のノート
このプロシージャは、include_dml
パラメータ値とinclude_ddl
パラメータ値に基づいて、DMLとDDLのルールをそれぞれ自動的に作成します。各ルールには、システム生成のルール名(データベース名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。データベース名と順序番号を組み合せた名前が長すぎる場合は、データベース名が切り捨てられます。取得プロセスまたは適用プロセスは、フィルタリングのためのルールを使用します。
参照:
例
次に、DMLの変更に関して作成されるグローバル・ルール条件の例を示します。
(:dml.is_null_tag() = 'Y' and :dml.get_source_database_name() = 'DBS1.NET' )
230.4.4 ADD_OUTBOUNDプロシージャ
このプロシージャは、指定したキューからLCRをデキューするXStreamアウトバウンド・サーバーを作成します。アウトバウンド・サーバーは、LCRをXStreamクライアントのアプリケーションにストリーム・アウトします。
このプロシージャは、取得プロセスまたはキューをいずれも作成しません。アウトバウンド・サーバー、取得プロセス、およびキューを1回のプロシージャ・コールで作成するには、CREATE_OUTBOUNDプロシージャを使用します。
取得プロセスを個々に作成するには、次のパッケージのいずれかを使用します。
-
DBMS_XSTREAM_ADM
-
DBMS_CAPTURE_ADM
キューを個々に作成するには、DBMS_XSTREAM_ADM
パッケージのSET_UP_QUEUE
プロシージャを使用します。
このプロシージャはオーバーロードされています。1つのtable_names
パラメータは、VARCHAR2
タイプで、もう1つのtable_names
パラメータは、DBMS_UTILITY.UNCL_ARRAY
タイプです。また、一方のschema_names
パラメータはVARCHAR2
タイプで、もう一方のschema_names
パラメータはDBMS_UTILITY.UNCL_ARRAY
タイプです。これらのパラメータを使用して、表とスキーマのリストをそれぞれ別の方法で入力することができます。これらのパラメータは相互に排他的です。
ノート:
-
1つのクライアント・アプリケーションで複数のセッションを作成できます。各セッションは1つのアウトバウンド・サーバーにのみ連結でき、各アウトバウンド・サーバーは一度に1つのセッションのみを処理できます。ただし、クライアント・アプリケーションのセッションは、それぞれ異なるアウトバウンド・サーバーに接続できます。アウトバウンド・サーバーへの連結の詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』およびOracle Database XStream Java APIリファレンスを参照してください。
-
このプロシージャは、作成したアウトバウンド・サーバーを有効化します。
-
Oracle Database 11gリリース2 (11.2.0.2)から、このプロシージャに
capture_name
、start_scn
およびstart_time
の各パラメータが組み込まれています。
構文
DBMS_XSTREAM_ADM.ADD_OUTBOUND( server_name IN VARCHAR2, queue_name IN VARCHAR2 DEFAULT NULL, source_database IN VARCHAR2 DEFAULT NULL, table_names IN DBMS_UTILITY.UNCL_ARRAY, schema_names IN DBMS_UTILITY.UNCL_ARRAY, connect_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, capture_name IN VARCHAR2 DEFAULT NULL, start_scn IN NUMBER DEFAULT NULL, start_time IN TIMESTAMP DEFAULT NULL, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL, lcrid_version IN NUMBER DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_OUTBOUND( server_name IN VARCHAR2, queue_name IN VARCHAR2 DEFAULT NULL, source_database IN VARCHAR2 DEFAULT NULL, table_names IN VARCHAR2 DEFAULT NULL, schema_names IN VARCHAR2 DEFAULT NULL, connect_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, capture_name IN VARCHAR2 DEFAULT NULL, start_scn IN NUMBER DEFAULT NULL, start_time IN TIMESTAMP DEFAULT NULL, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL, lcrid_version IN NUMBER DEFAULT NULL);
パラメータ
表230-5 ADD_OUTBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成中のアウトバウンド・サーバーの名前。 指定した名前が既存のアウトバウンド・サーバー、インバウンド・サーバー、適用プロセス、またはメッセージ・クライアントの名前と一致しないようにしてください。 ノート: |
|
アウトバウンド・サーバーがLCRをデキューするローカル・キューの名前で、 たとえば、
|
|
ソース・データベースのグローバル名。 CDBでは、ルールに関連するコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が |
|
データ操作言語(DML)とデータ定義言語(DDL)の変更がXStreamクライアント・アプリケーションにストリーム・アウトされる表。表は、次の方法で指定できます。
それぞれの表は、 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
DMLとDDLの変更がXStreamクライアント・アプリケーションにストリーム・アウトされるスキーマ。スキーマは、次の方法で指定できます。
ノート: このプロシージャでは、 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
指定したアウトバウンド・サーバーに連結してLCRストリームを取得できるユーザー。クライアント・アプリケーションは、指定した接続ユーザーとしてアウトバウンド・サーバーに連結する必要があります。接続ユーザーに必要な権限の詳細は、「CREATE_OUTBOUNDプロシージャ」を参照してください。
|
|
アウトバウンド・サーバーに関連付けられたオプションのコメント。 |
|
アウトバウンド・サーバー用の変更を取得するように構成された取得プロセスの名前。所有者を指定しないでください。 指定した名前が別のアウトバウンド・サーバーの既存の取得プロセスの名前と一致する場合、このプロシージャは既存の取得プロセスを使用して、データベースの変更の取得ルールを取得プロセスのポジティブ・ルール・セットに追加します。 指定した名前が適用プロセスの既存の取得プロセスの名前と一致する場合は、エラーが発生します。 指定した名前が既存の取得プロセスの名前と一致しない場合は、エラーが発生します。
|
|
取得プロセスによる変更の取得の開始点である、データベースの有効なシステム変更番号(SCN)。
無効なSCNが指定された場合はエラーが戻されます。
|
|
取得プロセスによる変更の取得の開始時点となる有効な時間。
|
|
|
|
|
|
ソースCDBのルートのグローバル名。たとえば、 このパラメータが ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
ソース・コンテナの短縮名。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
取得済LCRのLCRIDバージョン(
|
使用上のノート
次のリストは、table_names
およびschema_names
パラメータの様々な組合せにおけるアウトバウンド・サーバーの動作について説明しています。
-
table_names
およびschema_names
パラメータが両方ともNULL
か空の場合、アウトバウンド・サーバーはDMLとDDLのすべての変更をクライアント・アプリケーションにストリームします。このプロシージャはオーバーロードされています。
table_names
およびschema_names
パラメータのデフォルトはNULL
です。同じコールでtable_names
とschema_names
の両方にNULL
を指定しないでください。指定した場合は、エラーPLS-00307
が戻されます。 -
table_names
およびschema_names
パラメータを両方とも指定した場合、アウトバウンド・サーバーは指定した表とスキーマに対するDMLとDDLの変更をストリームします。 -
table_names
パラメータが指定されていて、schema_names
パラメータがNULL
または空の場合、アウトバウンド・サーバーは指定した表に対するDMLとDDLの変更をストリームします。 -
table_names
パラメータがNULL
または空で、schema_names
パラメータが指定されている場合、アウトバウンド・サーバーは指定したスキーマに対するDMLとDDLの変更をストリームします。
table_names
およびschema_names
パラメータでDBMS_UTILITY.UNCL_ARRAY
タイプを使用するプロシージャの場合、両方のパラメータを指定する必要があります。表のみを指定するには、schema_names
パラメータを指定して空にする必要があります。スキーマのみを指定するには、table_names
パラメータを指定して空にする必要があります。
ノート:
空の配列には、1つのNULL
エントリが含まれています。
230.4.5 ADD_SCHEMA_PROPAGATION_RULESプロシージャ
このプロシージャは、伝播のポジティブ・ルール・セットまたはネガティブ・ルール・セットにスキーマ・ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは2つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
構文
DBMS_XSTREAM_ADM.ADD_SCHEMA_PROPAGATION_RULES( schema_name IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, dml_rule_name OUT VARCHAR2, ddl_rule_name OUT VARCHAR2, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, queue_to_queue IN BOOLEAN DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_SCHEMA_PROPAGATION_RULES( schema_name IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, queue_to_queue IN BOOLEAN DEFAULT NULL);
パラメータ
表230-6 ADD_SCHEMA_PROPAGATION_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
スキーマの名前。たとえば、 |
|
伝播の名前所有者を指定しないでください。 指定された伝播が存在しない場合は、自動的に作成されます。 このパラメータが このパラメータが |
|
ソース・キューの名前で、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 |
|
宛先キュー(データベース・リンクを含む)の名前で、宛先キューがリモート・データベース内に存在する場合は、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 データベース・リンクが省略された場合は、現行のデータベースのグローバル名が使用されます。その場合、ソース・キューと宛先キューは同じデータベース内に存在する必要があります。 ノート: 接続修飾子は使用できません。 |
|
|
|
|
|
|
|
ソース・データベースのグローバル名。ソース・データベースは、変更が発生したデータベースです。 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が 伝播ルールではソース・データベースを指定することをお薦めします。 |
|
|
|
|
|
どちらの場合も、ルール・セットが存在しないときは、自動的に作成されます。 |
|
このパラメータに (system_condition) AND (and_condition) 指定する条件の変数は、必ず :lcr.get_tag() = HEXTORAW(''02'') 指定した条件内の つまり、行LCRに対してのみ有効なLCRメンバー・サブプログラムを指定する場合は、 関連項目: 論理変更レコードのタイプ |
|
このプロシージャでは、既存の伝播のqueue_to_queueプロパティは変更できません。指定した伝播が存在する場合は、それぞれの設定に対して次のように処理されます。
|
使用上のノート
このプロシージャは、現行のユーザーを使用して伝播を構成します。特定のソース・キューと宛先キューの間で許可される伝播は1つのみです。
このプロシージャは、include_dml
パラメータ値とinclude_ddl
パラメータ値に基づいて、DMLとDDLのルールをそれぞれ自動的に作成します。各ルールには、システム生成のルール名(スキーマ名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。スキーマ名と順序番号を組み合せた名前が長すぎる場合は、スキーマ名が切り捨てられます。伝播では、これらのルールがフィルタ処理に使用されます。
例
次に、DMLの変更に関して作成されるスキーマ・ルール条件の例を示します。
((:dml.get_object_owner() = 'HR') and :dml.is_null_tag() = 'Y' and :dml.get_source_database_name() = 'DBS1.NET' )
230.4.6 ADD_SCHEMA_RULESプロシージャ
このプロシージャは、次のいずれかのタイプのXStreamクライアントのルール・セットにルールを追加します。
-
streams_type
パラメータをcapture
に設定すると、このプロシージャは、指定したスキーマに対する変更を取得する取得プロセス・ルールを追加します。このプロシージャは、指定した取得プロセスが存在しない場合にそれを作成します。
-
streams_type
パラメータをapply
に設定し、streams_name
パラメータで適用プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーの名前を指定すると、このプロシージャは、指定したスキーマに対する変更が記録されている論理変更レコード(LCR)を適用する適用ルールを追加します。このルールでは、特定のソース・データベースに属するLCRのみをルールの対象として指定できます。このプロシージャは、指定した
streams_name
を持つ適用プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーが存在しない場合に適用プロセスを作成します。このプロシージャはアウトバウンド・サーバーまたはインバウンド・サーバーにルールを追加できますが、アウトバウンド・サーバーまたはインバウンド・サーバーを作成することはできません。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは2つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
ノート:
スキーマ・ルールを取得プロセスのポジティブ・ルールセットに追加する場合は、Oracle Replicationでサポートされていない、スキーマ内のデータベース・オブジェクトを除外するルールを、取得プロセスのネガティブ・ルールセットに必ず追加するようにしてください。Oracle Replicationによってサポートされていないデータベース・オブジェクトを判別するには、DBA_XSTREAM_OUT_SUPPORT_MODE
データ・ディクショナリ・ビューを問い合せます。サポートされないデータベース・オブジェクトが除外されていない場合は、取得エラーが発生します。
構文
DBMS_XSTREAM_ADM.ADD_SCHEMA_RULES( schema_name IN VARCHAR2, streams_type IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, dml_rule_name OUT VARCHAR2, ddl_rule_name OUT VARCHAR2, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_SCHEMA_RULES( schema_name IN VARCHAR2, streams_type IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-7 ADD_SCHEMA_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
スキーマの名前。たとえば、 Oracle Replicationではスキーマの有無がチェックされないため、まだ存在しないスキーマも指定できます。 |
|
XStreamクライアントのタイプ:
|
|
取得プロセスまたは適用プロセスの名前。所有者を指定しないでください。
このパラメータが
このパラメータが このパラメータが 適用プロセスには、それぞれ一意の名前を付ける必要があります。 |
|
ローカル・キューの名前で、 たとえば、 取得プロセス・ルールの場合は、取得プロセスによってLCRがエンキューされるキューを指定します。アウトバウンド・サーバーのルールの場合、これはアウトバウンド・サーバーがLCRをデキューするキューになります。インバウンド・サーバーのルールの場合、これはインバウンド・サーバーがエラー・トランザクションをエンキューするキューになります。 |
|
|
|
|
|
|
|
ソース・データベースのグローバル名。 取得プロセス・ルールの場合、ソース・データベース上でローカルに取得プロセスを作成するには、 適用プロセス・ルールの場合は、適用プロセスによって適用される変更のソース・データベースを指定します。ソース・データベースは、変更が発生したデータベースです。取得されたLCRを適用プロセスで適用する場合、適用プロセスによって適用できるのは、1つのソース・データベースでの1つの取得プロセスによるLCRのみです。 CDBでは、ルールに関連するコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が |
|
|
|
|
|
どちらの場合も、ルール・セットが存在しないときは、自動的に作成されます。 |
|
このパラメータに (system_condition) AND (and_condition) 指定する条件の変数は、必ず :lcr.get_tag() = HEXTORAW(''02'') 指定した条件内の つまり、行LCRに対してのみ有効なLCRメンバー・サブプログラムを指定する場合は、 関連項目: 論理変更レコードのタイプ |
|
ソースCDBのルートのグローバル名。たとえば、 このパラメータが ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
ソース・コンテナの短縮名。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
使用上のノート
このプロシージャは、include_dml
パラメータ値とinclude_ddl
パラメータ値に基づいて、DMLとDDLのルールをそれぞれ自動的に作成します。各ルールには、システム生成のルール名(スキーマ名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。スキーマ名と順序番号を組み合せた名前が長すぎる場合は、スキーマ名が切り捨てられます。取得プロセスまたは適用プロセスは、フィルタリングのためのルールを使用します。
参照:
例
次に、DMLの変更に関して作成されるスキーマ・ルール条件の例を示します。
((:dml.get_object_owner() = 'HR') and :dml.is_null_tag() = 'Y' and :dml.get_source_database_name() = 'DBS1.NET' )
230.4.7 ADD_SUBSET_OUTBOUND_RULESプロシージャ
このプロシージャは、アウトバウンド・サーバーの構成にサブセット・ルールを追加します。サブセット・ルールは、変更のサブセットを指定した表にストリーム・アウトするようにアウトバウンド・サーバーに指示します。アウトバウンド・サーバーは、行と列のサブセットをストリーム・アウトできます。
このプロシージャはオーバーロードされています。一方のcolumn_list
パラメータはVARCHAR2
タイプで、もう一方のcolumn_list
パラメータはDBMS_UTILITY.LNAME_ARRAY
タイプです。これらのパラメータによって、列のリストを異なる方法で入力できますが、これらのパラメータを同時に使用することはできません。
ノート:
このプロシージャでは、アウトバウンド・サーバーの取得プロセスにルールが追加されません。
構文
DBMS_XSTREAM_ADM.ADD_SUBSET_OUTBOUND_RULES( server_name IN VARCHAR2, table_name IN VARCHAR2, condition IN VARCHAR2 DEFAULT NULL, column_list IN DBMS_UTILITY.LNAME_ARRAY, keep IN BOOLEAN DEFAULT TRUE, source_database IN VARCHAR2 DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_SUBSET_OUTBOUND_RULES( server_name IN VARCHAR2, table_name IN VARCHAR2, condition IN VARCHAR2 DEFAULT NULL, column_list IN VARCHAR2 DEFAULT NULL, keep IN BOOLEAN DEFAULT TRUE, source_database IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-8 ADD_SUBSET_OUTBOUND_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ルールを追加中であるアウトバウンド・サーバーの名前。既存のアウトバウンド・サーバーを指定します。所有者を指定しないでください。 |
|
アウトバウンド・サーバーの構成でローカルの取得プロセスが使用される場合は、表がローカル・ソース・データベースに存在している必要があります。アウトバウンド・サーバーの構成でダウンストリーム取得プロセスが使用される場合は、表がソース・データベースとダウンストリーム取得データベースの両方に存在している必要があります。 指定した表では、現在または将来にわたってLOB、 |
|
サブセット条件。SQLの たとえば、
ノート: 前述の例の引用符は、すべて一重引用符です。 |
|
アウトバウンド・サーバーの構成に含める列のリスト、またはアウトバウンド・サーバーの構成から除外する列のリスト。列を含めるか除外するかは、 列は次の方法で指定できます。
表中のすべての列を含めるか除外するには、リストまたは配列内の表の各列を指定します。
|
|
関連項目: 「使用上のノート」 |
|
指定した
CDBでは、ルールに関連するコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 |
使用上のノート
keep
パラメータがTRUE
に設定されている場合、このプロシージャは、column_list
にリストされた列に対して、keep列の宣言的なルールベース変換を作成します。
keep
パラメータがFALSE
に設定されている場合、このプロシージャは、column_list
にリストされた列ごとに、delete列の宣言的なルールベース変換を作成します。
参照:
宣言的なルールベース変換の詳細は、『Oracle Database XStreamガイド』を参照してください。
230.4.8 ADD_SUBSET_PROPAGATION_RULESプロシージャ
このプロシージャは、ソース・キュー内の論理変更レコード(LCR)のうち、指定した表の行のサブセットに関連するLCRを宛先キューに伝播するための伝播ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは3つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
構文
DBMS_XSTREAM_ADM.ADD_SUBSET_PROPAGATION_RULES( table_name IN VARCHAR2, dml_condition IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, insert_rule_name OUT VARCHAR2, update_rule_name OUT VARCHAR2, delete_rule_name OUT VARCHAR2, queue_to_queue IN BOOLEAN DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_SUBSET_PROPAGATION_RULES( table_name IN VARCHAR2, dml_condition IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, queue_to_queue IN BOOLEAN DEFAULT NULL);
パラメータ
表230-9 ADD_SUBSET_PROPAGATION_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
指定した表は、伝播と同じデータベースに存在する必要があります。また、指定した表では、現在および将来にわたり、LOB列、 |
|
サブセット条件。SQLの たとえば、
ノート: 前述の例の引用符は、すべて一重引用符です。 |
|
伝播の名前所有者を指定しないでください。 指定された伝播が存在しない場合は、自動的に作成されます。 このパラメータが このパラメータが |
|
ソース・キューの名前で、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 |
|
宛先キュー(データベース・リンクを含む)の名前で、宛先キューがリモート・データベース内に存在する場合は、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 データベース・リンクが省略された場合は、現行のデータベースのグローバル名が使用されます。その場合、ソース・キューと宛先キューは同じデータベース内に存在する必要があります。 ノート: 接続修飾子は使用できません。 |
|
|
|
ソース・データベースのグローバル名。ソース・データベースは、変更が発生したデータベースです。 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が 伝播ルールではソース・データベースを指定することをお薦めします。 |
|
システムによって生成された |
|
システムによって生成された |
|
システムによって生成された |
|
このプロシージャでは、既存の伝播のqueue_to_queueプロパティは変更できません。指定した伝播が存在する場合は、それぞれの設定に対して次のように処理されます。
|
使用上のノート
このプロシージャは、現行のユーザーを使用して伝播を構成します。特定のソース・キューと宛先キューの間で許可される伝播は1つのみです。
このプロシージャを実行すると、指定された伝播に対して3つのルール(INSERT
文に関するルール、UPDATE
文に関するルール、DELETE
文に関するルール)が生成されます。INSERT
文とDELETE
文については、dml_condition
パラメータで指定された条件を満たす行LCRのみが伝播されます。UPDATE
文については、次のバリエーションがあります。
-
行LCRの新旧の値が両方とも指定の
dml_condition
を満たす場合、その行LCRは変更なしで伝播されます。 -
行LCRの新旧の値が両方とも指定の
dml_condition
を満たさない場合、その行LCRは伝播されません。 -
行LCRの古い値が指定の
dml_condition
を満たし、新しい値が満たさない場合、更新行LCRは削除行LCRに変換されます。 -
行LCRの新しい値が指定の
dml_condition
を満たし、古い値が満たさない場合、更新行LCRは挿入行LCRに変換されます。
更新が挿入または削除に変換されることを行の移行と呼びます。
伝播では、これらのルールがフィルタ処理に使用されます。伝播にポジティブ・ルール・セットがない場合は、ポジティブ・ルール・セットが自動的に作成され、表に変更を伝播するためのルールがポジティブ・ルール・セットに追加されます。サブセット・ルールはポジティブ・ルール・セットのみに追加可能で、ネガティブ・ルール・セットには追加できません。伝播の既存のポジティブ・ルール・セット内にある他のルールは、この影響を受けません。追加ルールは、DBMS_XSTREAM_ADM
パッケージまたはDBMS_RULE_ADM
パッケージのいずれかを使用して追加できます。
このプロシージャを実行すると、INSERT
文、UPDATE
文およびDELETE
文のルールが自動的に作成され、これらのルールには、システム生成のルール名が指定されます。各ルールには、システム生成のルール名(表名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。表名と順序番号を組み合せた名前が長すぎる場合は、表名が切り捨てられます。ADD_SUBSET_RULES
プロシージャがオーバーロードされているため、INSERT
文、UPDATE文
およびDELETE
文に対するシステム生成のルール名が戻されます。
表のサブセット・ルールを作成する場合は、表のすべての列を保持するソース・データベースで、無条件のサプリメンタル・ログ・グループを作成してください。サプリメンタル・ロギングは、更新を挿入に変換する必要がある場合に必要です。この変換を正しく実行するには、伝播ルールに列値がすべて設定されている必要があります。
ノート:
サブセット・ルールはポジティブ・ルール・セットの内部のみで使用できます。ネガティブ・ルール・セットにはサブセット・ルールを追加できません。ネガティブ・ルール・セットにサブセット・ルールを追加すると、ネガティブ・ルール・セットによって破棄されないLCRに対して行の移行が実行されないため、予期しない結果が発生する場合があります。
例
次に、行LCRのフィルタ処理に関して作成されるルール条件の例を示します。このルール条件では、dml_condition
がregion_id = 2
、table_name
がhr.regions
、およびsource_database
がdbs1.net
である場合の更新操作を示します。
:dml.get_object_owner()='HR' AND :dml.get_object_name()='REGIONS' AND :dml.is_null_tag()='Y' AND :dml.get_source_database_name()='DBS1.NET' AND :dml.get_command_type()='UPDATE' AND (:dml.get_value('NEW','"REGION_ID"') IS NOT NULL) AND (:dml.get_value('OLD','"REGION_ID"') IS NOT NULL) AND (:dml.get_value('OLD','"REGION_ID"').AccessNumber()=2) AND (:dml.get_value('NEW','"REGION_ID"').AccessNumber()=2)
230.4.9 ADD_SUBSET_RULESプロシージャ
このプロシージャは、XStreamクライアントにルールを追加します。
次のいずれかのタイプのXStreamクライアントのルール・セットにルールを追加します。
-
streams_type
パラメータをcapture
に設定すると、このプロシージャは、指定した表の行のサブセットに対する変更を取得する取得プロセス・ルールを追加します。このプロシージャは、指定した取得プロセスが存在しない場合にそれを作成します。
-
streams_type
パラメータをapply
に設定し、streams_name
パラメータで適用プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーの名前を指定すると、このプロシージャは、指定した表の行のサブセットに対する変更が記録されている論理変更レコード(LCR)を適用する適用ルールを追加します。このルールでは、特定のソース・データベースに属するLCRのみをルールの対象として指定できます。このプロシージャは、指定した
streams_name
を持つ適用プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーが存在しない場合に適用プロセスを作成します。このプロシージャはアウトバウンド・サーバーまたはインバウンド・サーバーにルールを追加できますが、アウトバウンド・サーバーまたはインバウンド・サーバーを作成することはできません。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは3つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
構文
DBMS_XSTREAM_ADM.ADD_SUBSET_RULES( table_name IN VARCHAR2, dml_condition IN VARCHAR2, streams_type IN VARCHAR2 DEFAULT 'apply', streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, insert_rule_name OUT VARCHAR2, update_rule_name OUT VARCHAR2, delete_rule_name OUT VARCHAR2, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_SUBSET_RULES( table_name IN VARCHAR2, dml_condition IN VARCHAR2, streams_type IN VARCHAR2 DEFAULT 'apply', streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-10 ADD_SUBSET_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
指定した表は、取得プロセスまたは適用プロセスと同じデータベースに存在している必要があります。また、指定した表では、現在および将来にわたり、LOB列、 |
|
サブセット条件。SQLの たとえば、
ノート: 前述の例の引用符は、すべて一重引用符です。 |
|
XStreamクライアントのタイプ:
|
|
取得プロセスまたは適用プロセスの名前。所有者を指定しないでください。
このパラメータが
このパラメータが このパラメータが 適用プロセスには、それぞれ一意の名前を付ける必要があります。 |
|
ローカル・キューの名前で、 たとえば、 取得プロセス・ルールの場合は、取得プロセスによってLCRがエンキューされるキューを指定します。アウトバウンド・サーバーのルールの場合、これはアウトバウンド・サーバーがLCRをデキューするキューになります。インバウンド・サーバーのルールの場合、これはインバウンド・サーバーがエラー・トランザクションをエンキューするキューになります。 |
|
通常、変更が頻発する構成でソース・データベースに変更が循環するのを防ぐには、 |
|
ソース・データベースのグローバル名。 取得プロセス・ルールの場合、ソース・データベース上でローカルに取得プロセスを作成するには、 適用プロセス・ルールの場合は、適用プロセスによって適用される変更のソース・データベースを指定します。ソース・データベースは、変更が発生したデータベースです。取得されたLCRを適用プロセスで適用する場合、適用プロセスによって適用できるのは、1つのソース・データベースでの1つの取得プロセスによるLCRのみです。 CDBでは、ルールに関連するコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が |
|
システムによって生成された |
|
システムによって生成された |
|
システムによって生成された |
|
ソースCDBのルートのグローバル名。たとえば、 このパラメータが ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
ソース・コンテナの短縮名。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
使用上のノート
このプロシージャを実行すると、指定された取得プロセスまたは適用プロセスに対して3つのルール(INSERT
文に関するルール、UPDATE
文に関するルール、DELETE
文に関するルール)が生成されます。INSERT
文とDELETE
文については、dml_condition
パラメータで指定された条件を満たすDML変更のみが取得または適用の対象となります。UPDATE
文については、次のバリエーションがあります。
-
DML変更の新旧の値が両方とも指定の
dml_condition
を満たす場合、そのDML変更は変更なしでそのまま取得または適用されます。 -
DML変更の新旧の値が両方とも指定の
dml_condition
を満たさない場合、そのDML変更は取得または適用されません。 -
DML変更の古い値が指定の
dml_condition
を満たし、新しい値が満たさない場合、DML変更は削除に変換されます。 -
DML変更の新しい値が指定の
dml_condition
を満たし、古い値が満たさない場合、DML変更は挿入に変換されます。
更新が挿入または削除に変換されることを行の移行と呼びます。
取得プロセスまたは適用プロセスは、フィルタリングのためのルールを使用します。XStreamクライアントにポジティブ・ルール・セットがない場合は、ポジティブ・ルール・セットが自動的に作成され、表に関するルールがポジティブ・ルール・セットに追加されます。サブセット・ルールはポジティブ・ルール・セットのみに追加可能で、ネガティブ・ルール・セットには追加できません。プロセスの既存のルール・セット内にある他のルールは、この影響を受けません。追加ルールは、DBMS_XSTREAM_ADM
パッケージまたはDBMS_RULE_ADM
パッケージのいずれかを使用して追加できます。
このプロシージャを実行すると、INSERT
文、UPDATE
文およびDELETE
文のルールが自動的に作成され、これらのルールには、システム生成のルール名が指定されます。各ルールには、システム生成のルール名(表名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。表名と順序番号を組み合せた名前が長すぎる場合は、表名が切り捨てられます。ADD_SUBSET_RULES
プロシージャがオーバーロードされているため、INSERT
文、UPDATE文
およびDELETE
文に対するシステム生成のルール名が戻されます。
ノート:
サブセット・ルールはポジティブ・ルール・セットの内部のみで使用できます。ネガティブ・ルール・セットにはサブセット・ルールを追加できません。ネガティブ・ルール・セットにサブセット・ルールを追加すると、ネガティブ・ルール・セットによって破棄されないLCRに対して行の移行が実行されないため、予期しない結果が発生する場合があります。
例
次に、DML変更のフィルタ処理に関して作成されるルール条件の例を示します。このルール条件では、dml_condition
がregion_id = 2
、table_name
がhr.regions
、かつsource_database
がdbs1.net
である場合の更新操作を示します。
:dml.get_object_owner()='HR' AND :dml.get_object_name()='REGIONS' AND :dml.is_null_tag()='Y' AND :dml.get_source_database_name()='DBS1.NET' AND :dml.get_command_type()='UPDATE' AND (:dml.get_value('NEW','"REGION_ID"') IS NOT NULL) AND (:dml.get_value('OLD','"REGION_ID"') IS NOT NULL) AND (:dml.get_value('OLD','"REGION_ID"').AccessNumber()=2) AND (:dml.get_value('NEW','"REGION_ID"').AccessNumber()=2)
230.4.10 ADD_TABLE_PROPAGATION_RULESプロシージャ
このプロシージャは、伝播のポジティブ・ルール・セットまたはネガティブ・ルール・セットに表ルールを追加します。指定された伝播が存在しない場合は、伝播を作成します。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは2つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
構文
DBMS_XSTREAM_ADM.ADD_TABLE_PROPAGATION_RULES( table_name IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, dml_rule_name OUT VARCHAR2, ddl_rule_name OUT VARCHAR2, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, queue_to_queue IN BOOLEAN DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_TABLE_PROPAGATION_RULES( table_name IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, source_queue_name IN VARCHAR2, destination_queue_name IN VARCHAR2, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, queue_to_queue IN BOOLEAN DEFAULT NULL);
パラメータ
表230-11 ADD_TABLE_PROPAGATION_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表の名前で、 |
|
伝播の名前所有者を指定しないでください。 指定された伝播が存在しない場合は、自動的に作成されます。 このパラメータが このパラメータが |
|
ソース・キューの名前で、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 |
|
宛先キュー(データベース・リンクを含む)の名前で、宛先キューがリモート・データベース内に存在する場合は、 たとえば、 スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 データベース・リンクが省略された場合は、現行のデータベースのグローバル名が使用されます。その場合、ソース・キューと宛先キューは同じデータベース内に存在する必要があります。 ノート: 接続修飾子は使用できません。 |
|
|
|
生成されるルールは、表で動作するDDL変更または表内のオブジェクト(表の索引、トリガーなど)で動作するDDL変更に対しては |
|
|
|
ソース・データベースのグローバル名。ソース・データベースは、変更が発生したデータベースです。 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が 伝播ルールではソース・データベースを指定することをお薦めします。 |
|
|
|
|
|
どちらの場合も、ルール・セットが存在しないときは、自動的に作成されます。 |
|
このパラメータに (system_condition) AND (and_condition) 指定する条件の変数は、必ず :lcr.get_tag() = HEXTORAW(''02'') 指定した条件内の つまり、行LCRに対してのみ有効なLCRメンバー・サブプログラムを指定する場合は、 関連項目: 論理変更レコードのタイプ |
|
このプロシージャでは、既存の伝播のqueue_to_queueプロパティは変更できません。指定した伝播が存在する場合は、それぞれの設定に対して次のように処理されます。
|
使用上のノート
このプロシージャは、現行のユーザーを使用して伝播を構成します。特定のソース・キューと宛先キューの間で許可される伝播は1つのみです。
このプロシージャは、include_dml
パラメータ値とinclude_ddl
パラメータ値に基づいて、DMLとDDLのルールをそれぞれ自動的に作成します。各ルールには、システム生成のルール名(表名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。表名と順序番号を組み合せた名前が長すぎる場合は、表名が切り捨てられます。伝播では、これらのルールがフィルタ処理に使用されます。
例
次に、DML文のフィルタ処理に関して作成される表ルール条件の例を示します。
(((:dml.get_object_owner() = 'HR' and :dml.get_object_name() = 'LOCATIONS')) and :dml.is_null_tag() = 'Y' and :dml.get_source_database_name() = 'DBS1.NET' )
230.4.11 ADD_TABLE_RULESプロシージャ
このプロシージャは、XStreamクライアントのルール・セットにルールを追加します。
次のいずれかのタイプのXStreamクライアントのルール・セットにルールを追加します。
-
streams_type
パラメータをcapture
に設定すると、このプロシージャは、指定した表に対する変更を取得する取得プロセス・ルールを追加します。このプロシージャは、指定した取得プロセスが存在しない場合にそれを作成します。
-
streams_type
パラメータをapply
に設定し、streams_name
パラメータで適用プロセス、アウトバウンド・サーバー、またはインバウンド・サーバーの名前を指定すると、このプロシージャは、指定した表の変更が記録されている論理変更レコード(LCR)を適用する適用ルールを追加します。このルールでは、特定のソース・データベースに属するLCRのみをルールの対象として指定できます。このプロシージャは、指定した
streams_name
を持つ適用プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーが存在しない場合に適用プロセスを作成します。このプロシージャはアウトバウンド・サーバーまたはインバウンド・サーバーにルールを追加できますが、アウトバウンド・サーバーまたはインバウンド・サーバーを作成することはできません。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンでは2つのOUT
パラメータを使用しますが、もう一方のバージョンでは使用しません。
構文
DBMS_XSTREAM_ADM.ADD_TABLE_RULES( table_name IN VARCHAR2, streams_type IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, dml_rule_name OUT VARCHAR2, ddl_rule_name OUT VARCHAR2, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL); DBMS_XSTREAM_ADM.ADD_TABLE_RULES( table_name IN VARCHAR2, streams_type IN VARCHAR2, streams_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, include_tagged_lcr IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, and_condition IN VARCHAR2 DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-12 ADD_TABLE_RULESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Replicationでは表の有無がチェックされないため、まだ存在しない表も指定できます。 |
|
XStreamクライアントのタイプ:
|
|
取得プロセスまたは適用プロセスの名前。所有者を指定しないでください。
このパラメータが
このパラメータが このパラメータが 適用プロセスには、それぞれ一意の名前を付ける必要があります。 |
|
ローカル・キューの名前で、 たとえば、 取得プロセス・ルールの場合は、取得プロセスによってLCRがエンキューされるキューを指定します。アウトバウンド・サーバーのルールの場合、これはアウトバウンド・サーバーがLCRをデキューするキューになります。インバウンド・サーバーのルールの場合、これはインバウンド・サーバーがエラー・トランザクションをエンキューするキューになります。 |
|
|
|
生成されるルールは、表で動作するDDL変更または表内のオブジェクト(表の索引、トリガーなど)で動作するDDL変更に対しては |
|
ポジティブ・ルール・セットにルールが追加される場合は、データベースの完全なコピー(スタンバイなど)を作成するときに、このパラメータを
ポジティブ・ルール・セットにルールが追加される場合は、変更が頻発する構成でソース・データベースに変更が循環するのを防ぐために、このパラメータを 通常、変更が頻発する構成でソース・データベースに変更が循環するのを防ぐには、
|
|
ソース・データベースのグローバル名。 取得プロセス・ルールの場合、ソース・データベース上でローカルに取得プロセスを作成するには、 適用プロセス・ルールの場合は、適用プロセスによって適用される変更のソース・データベースを指定します。ソース・データベースは、変更が発生したデータベースです。取得されたLCRを適用プロセスで適用する場合、適用プロセスによって適用できるのは、1つのソース・データベースでの1つの取得プロセスによるLCRのみです。 CDBでは、ルールに関連するコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が |
|
|
|
|
|
どちらの場合も、ルール・セットが存在しないときは、自動的に作成されます。 |
|
このパラメータに (system_condition) AND (and_condition) 指定する条件の変数は、必ず :lcr.get_tag() = HEXTORAW(''02'') 指定した条件内の つまり、行LCRに対してのみ有効なLCRメンバー・サブプログラムを指定する場合は、 関連項目: 論理変更レコードのタイプ |
|
ソースCDBのルートのグローバル名。たとえば、 このパラメータが ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
ソース・コンテナの短縮名。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
使用上のノート
このプロシージャは、include_dml
パラメータ値とinclude_ddl
パラメータ値に基づいて、DMLとDDLのルールをそれぞれ自動的に作成します。各ルールには、システム生成のルール名(表名とその後ろに付加される順序番号で構成される)が付けられます。この順序番号によって、名前の競合が回避されます。表名と順序番号を組み合せた名前が長すぎる場合は、表名が切り捨てられます。取得プロセスまたは適用プロセスは、フィルタリングのためのルールを使用します。
参照:
例
次に、DMLの変更に関して作成される表ルール条件の例を示します。
(((:dml.get_object_owner() = 'HR' and :dml.get_object_name() = 'LOCATIONS')) and :dml.is_null_tag() = 'Y' and :dml.get_source_database_name() = 'DBS1.NET' )
230.4.12 ALTER_INBOUNDプロシージャ
このプロシージャは、XStreamインバウンド・サーバーを変更します。
構文
DBMS_XSTREAM_ADM.ALTER_INBOUND( server_name IN VARCHAR2, apply_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-13 ALTER_INBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更中のインバウンド・サーバーの名前。既存のインバウンド・サーバーを指定します。所有者を指定しないでください。 |
|
インバウンド・サーバーのルール・セットを満たすDMLおよびDDL変更をすべて適用するユーザー、ユーザー定義の適用ハンドラを実行するユーザー、およびインバウンド・サーバーのルール用に構成されたカスタムのルールベース変換を実行するユーザー。 クライアント・アプリケーションは、適用ユーザーとしてインバウンド・サーバーに連結する必要があります。 ユーザーを指定して、適用ユーザーを変更してください。この場合、
適用ユーザーに必要な権限の詳細は、「CREATE_INBOUNDプロシージャ」を参照してください。 |
|
インバウンド・サーバーに関連付けられたオプションのコメント。
|
230.4.13 ALTER_OUTBOUNDプロシージャ
このプロシージャは、XStreamアウトバウンド・サーバーの構成を変更します。
このプロシージャは、指定されたアウトバウンド・サーバーを常に変更します。また、次の条件のいずれかが満たされた場合、このプロシージャはアウトバウンド・サーバーの取得プロセスを変更することもできます。
-
取得プロセスがこのパッケージの
CREATE_OUTBOUND
プロシージャによって作成されました。 -
取得プロセスで使用されたキューは、
CREATE_OUTBOUND
プロシージャによって作成されました。
このプロシージャがアウトバウンド・サーバーの取得プロセスを変更できるかどうかを確認するには、ALL_XSTREAM_OUTBOUND
ビューのCAPTURE_NAME
列を問い合せます。取得プロセスの名前がこのビューのCAPTURE_NAME
列に表示される場合、ALTER_OUTBOUND
プロシージャは取得プロセスのルールを管理するか、取得プロセスの取得ユーザーを変更することができます。このビューのCAPTURE_NAME
列がNULL
の場合、ALTER_OUTBOUND
プロシージャは取得プロセスを管理できません。
このプロシージャはオーバーロードされています。1つのtable_names
パラメータは、VARCHAR2
タイプで、もう1つのtable_names
パラメータは、DBMS_UTILITY.UNCL_ARRAY
タイプです。また、一方のschema_names
パラメータはVARCHAR2
タイプで、もう一方のschema_names
パラメータはDBMS_UTILITY.UNCL_ARRAY
タイプです。これらのパラメータを使用して、表とスキーマのリストをそれぞれ別の方法で入力することができます。これらのパラメータは相互に排他的です。
ノート:
Oracle Database 11gリリース2 (11.2.0.2)から、このプロシージャにstart_scn
およびstart_time
の各パラメータが組み込まれています。
構文
DBMS_XSTREAM_ADM.ALTER_OUTBOUND( server_name IN VARCHAR2, table_names IN DBMS_UTILITY.UNCL_ARRAY, schema_names IN DBMS_UTILITY.UNCL_ARRAY, add IN BOOLEAN DEFAULT TRUE, capture_user IN VARCHAR2 DEFAULT NULL, connect_user IN VARCHR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, start_scn IN NUMBER DEFAULT NULL, start_time IN TIMESTAMP DEFAULT NULL, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL); DBMS_XSTREAM_ADM.ALTER_OUTBOUND( server_name IN VARCHAR2, table_names IN VARCHAR2 DEFAULT NULL, schema_names IN VARCHAR2 DEFAULT NULL, add IN BOOLEAN DEFAULT TRUE, capture_user IN VARCHAR2 DEFAULT NULL, connect_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, inclusion_rule IN BOOLEAN DEFAULT TRUE, start_scn IN NUMBER DEFAULT NULL, start_time IN TIMESTAMP DEFAULT NULL, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-14 ALTER_OUTBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更中のアウトバウンド・サーバーの名前。既存のアウトバウンド・サーバーを指定します。所有者を指定しないでください。 |
|
XStream Out構成に追加、またはXStream Out構成から削除される表。表が追加されるか、または変更されるかは、 表は、次の方法で指定できます。
それぞれの表は、 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
XStream Out構成に追加、またはXStream Out構成から削除されるスキーマ。スキーマが追加されるか、または削除されるかは、 スキーマは、次の方法で指定できます。
ノート: このプロシージャでは、 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
|
|
ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、取得プロセスは、取得プロセスのルール・セットを満たす変更を取得し、取得プロセス・ルールに対して構成されているカスタム・ルールベースの変換を実行します。 ユーザーを指定して、取得ユーザーを変更してください。この場合、
取得ユーザーを変更すると、取得プロセスで使用されるキューに対するエンキュー権限が新しい取得ユーザーに付与され、その取得ユーザーがセキュアなキュー・ユーザーとして構成されます。 取得ユーザーに、その他の必須権限が付与されていることを確認してください。取得ユーザーに必要な権限の詳細は、「CREATE_OUTBOUNDプロシージャ」を参照してください。 このパラメータの値を変更すると、取得プロセスは自動的に停止し、再開します。 ノート: 取得プロセスの取得ユーザーが |
|
指定したアウトバウンド・サーバーに連結して変更ストリームを取得できるユーザー。XStreamクライアント・アプリケーションは、指定された接続ユーザーとしてアウトバウンド・サーバーに連結する必要があります。 ユーザーを指定して、接続ユーザーを変更してください。この場合、
接続ユーザーを変更すると、アウトバウンド・サーバーで使用されるキューに対するデキュー権限が新しい接続ユーザーに付与され、そのユーザーがセキュアなキュー・ユーザーとして構成されます。 接続ユーザーにその他の必須権限が付与されていることを確認してください。接続ユーザーに必要な権限の詳細は、「CREATE_OUTBOUNDプロシージャ」を参照してください。 |
|
アウトバウンド・サーバーに関連付けられたオプションのコメント。
|
|
|
|
データベースの有効なSCNのうち、取得プロセスによる変更の取得の開始時に使用するSCN(開始時SCN)。SCN値を有効にするには、取得プロセスの最初のSCN値以上にする必要があります。 有効なSCNが指定された場合、取得プロセスは、再起動したときに指定のSCNから変更を取得します。 無効なSCNが指定された場合はエラーが戻されます。
ノート: 取得プロセスが有効な場合、 |
|
取得プロセスによる変更の取得の開始時点となる有効な時間。時間を有効にするには、取得プロセスの最初のSCN値以上であるSCN値の時間と一致している必要があります。 有効な時間が指定された場合、取得プロセスは再起動したときに指定の時間の変更を取得します。 無効な時間が指定された場合はエラーが戻されます。
ノート: 取得プロセスが有効な場合、 |
|
|
|
|
|
指定した
|
|
ソース・コンテナの短縮名。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
使用上のノート
次のリストは、table_names
およびschema_names
パラメータの様々な組合せにおけるアウトバウンド・サーバーの動作について説明しています。
-
table_names
パラメータとschema_names
パラメータが両方ともNULL
または空の場合、XStream Out構成に対するルールは変更されません。このプロシージャはオーバーロードされています。
table_names
およびschema_names
パラメータのデフォルトはNULL
です。同じコールでtable_names
とschema_names
の両方にNULL
を指定しないでください。指定した場合は、エラーPLS-00307
が戻されます。 -
table_names
パラメータとschema_names
パラメータが両方とも指定された場合、表およびスキーマのルールは、add
パラメータの設定に応じてXStream Out構成に追加、またはXStream Out構成から削除されます。 -
table_names
パラメータが指定されていて、schema_names
パラメータがNULL
または空の場合、表のルールは、add
パラメータの設定に応じてXStream Out構成に追加、またはXStream Out構成から削除されます。スキーマの既存ルールは、XStream Out構成に対して変更されません。 -
table_names
パラメータがNULL
または空で、schema_names
パラメータが指定されている場合、スキーマのルールは、add
パラメータの設定に応じてXStream Out構成に追加、またはXStream Out構成から削除されます。表の既存ルールは、XStream Out構成に対して変更されません。
table_names
およびschema_names
パラメータでDBMS_UTILITY.UNCL_ARRAY
タイプを使用するプロシージャの場合、両方のパラメータを指定する必要があります。表のみを指定するには、schema_names
パラメータを指定して空にする必要があります。スキーマのみを指定するには、table_names
パラメータを指定して空にする必要があります。
ノート:
空の配列には、1つのNULL
エントリが含まれています。
230.4.14 CREATE_INBOUNDプロシージャ
このプロシージャは、XStreamインバウンド・サーバーとそのキューを作成します。
ノート:
1つのクライアント・アプリケーションで複数のセッションを作成できます。各セッションは1つのインバウンド・サーバーにのみ連結でき、各インバウンド・サーバーは一度に1つのセッションのみを処理できます。ただし、クライアント・アプリケーションのセッションは、それぞれ異なるインバウンド・サーバーに接続できます。インバウンド・サーバーへの連結の詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』およびOracle Database XStream Java APIリファレンスを参照してください。
構文
DBMS_XSTREAM_ADM.CREATE_INBOUND( server_name IN VARCHAR2, queue_name IN VARCHAR2, apply_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-15 CREATE_INBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成中のインバウンド・サーバーの名前。 指定した名前が既存のアウトバウンド・サーバー、インバウンド・サーバー、適用プロセス、またはメッセージ・クライアントの名前と一致しないようにしてください。 ノート: |
|
インバウンド・サーバーによって使用され、 指定したキューが存在する場合は、それが使用されます。指定したキューが存在しない場合は、このプロシージャによって作成されます。 たとえば、 ノート: インバウンド・サーバーのキューは、エラー・トランザクションを格納する目的でのみ使用されます。 |
|
適用ユーザー。 クライアント・アプリケーションは、適用ユーザーとしてインバウンド・サーバーに連結する必要があります。 適用ユーザーとは、そのセキュリティ・ドメイン内で、LCRがインバウンド・サーバーのルール・セットを満たしているかどうかをインバウンド・サーバーが評価します。また、データベース・オブジェクトにDMLおよびDLLの変更を直接適用し、インバウンド・サーバーのルールに対して構成されているカスタム・ルールベースの変換を実行し、インバウンド・サーバーに対して構成されている適用ハンドラを実行するユーザーのことです。このユーザーは、これらのアクションの実行に必要な権限を持っている必要があります。このプロシージャは、インバウンド・サーバーによって使用されるキューに対するデキュー権限を適用ユーザーに付与し、ユーザーをセキュアなキュー・ユーザーとして構成します。 このプロシージャによって付与される権限だけでなく、次の権限を適用ユーザーに付与する必要があります。
これらの権限は適用ユーザーに直接付与することも、ロールを通して付与することもできます。 さらに、インバウンド・サーバーによって実行されるサブプログラムで起動するすべてのパッケージ(オラクル社が提供するパッケージを含む)に対する ノート: インバウンド・サーバーの適用ユーザーが |
|
インバウンド・サーバーに関連付けられたオプションのコメント。 |
使用上のノート
デフォルトでは、インバウンド・サーバーはルールまたはルール・セットを使用しません。したがって、インバウンド・サーバーは、XStreamクライアント・アプリケーションにより送信されたLCRをすべて適用します。ただし、インバウンド・サーバーに送信されたLCRをフィルタリングするために、DBMS_XSTREAM_ADM
パッケージとDBMS_RULE_ADM
パッケージを使用して、ルールおよびルール・セットをインバウンド・サーバーに追加できます。
CDBでは、ルートまたはPDBのどちらでもCREATE_INBOUND
プロシージャを実行できます。インバウンド・サーバーは1つのソース・データベースからのLCRの受信に限定されており、そのソース・データベースのローカル・コンテナにのみ変更を適用します。インバウンド・サーバーがルート・レベルにある場合、適用ユーザーは共通ユーザーである必要があります。
230.4.15 CREATE_OUTBOUNDプロシージャ
このプロシージャは、XStreamアウトバウンド・サーバー、キューおよび取得プロセスを作成して、クライアント・アプリケーションがOracleデータベースの変更をストリーム・アウトできるようにします。
ノート:
マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。
このプロシージャはオーバーロードされています。1つのtable_names
パラメータは、VARCHAR2
タイプで、もう1つのtable_names
パラメータは、DBMS_UTILITY.UNCL_ARRAY
タイプです。また、一方のschema_names
パラメータはVARCHAR2
タイプで、もう一方のschema_names
パラメータはDBMS_UTILITY.UNCL_ARRAY
タイプです。これらのパラメータを使用して、表とスキーマのリストをそれぞれ別の方法で入力することができます。これらのパラメータは相互に排他的です。
ノート:
-
1つのクライアント・アプリケーションで複数のセッションを作成できます。各セッションは1つのアウトバウンド・サーバーにのみ連結でき、各アウトバウンド・サーバーは一度に1つのセッションのみを処理できます。ただし、クライアント・アプリケーションのセッションは、それぞれ異なるアウトバウンド・サーバーに接続できます。アウトバウンド・サーバーへの連結の詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』のOCIXStreamOutAttach()に関する項およびOracle Database XStream Java APIリファレンスを参照してください。
-
capture_name
パラメータがNULL
の場合は、このプロシージャによって作成される取得プロセスの名前が自動的に生成されます。 -
このプロシージャは、作成したキューの名前を自動的に生成します。
-
このプロシージャは、取得プロセスと、作成したアウトバウンド・サーバーの両方を有効化します。
-
Oracle Database 11gリリース2 (11.2.0.2)から、このプロシージャに
capture_name
パラメータが組み込まれています。
構文
DBMS_XSTREAM_ADM.CREATE_OUTBOUND( server_name IN VARCHAR2, source_database IN VARCHAR2 DEFAULT NULL, table_names IN DBMS_UTILITY.UNCL_ARRAY, schema_names IN DBMS_UTILITY.UNCL_ARRAY, capture_user IN VARCHAR2 DEFAULT NULL, connect_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, capture_name IN VARCHAR2 DEFAULT NULL, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL, lcrid_version IN NUMBER DEFAULT NULL); DBMS_XSTREAM_ADM.CREATE_OUTBOUND( server_name IN VARCHAR2, source_database IN VARCHAR2 DEFAULT NULL, table_names IN VARCHAR2 DEFAULT NULL, schema_names IN VARCHAR2 DEFAULT NULL, capture_user IN VARCHAR2 DEFAULT NULL, connect_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, capture_name IN VARCHAR2 DEFAULT NULL, include_dml IN BOOLEAN DEFAULT TRUE, include_ddl IN BOOLEAN DEFAULT FALSE, source_root_name IN VARCHAR2 DEFAULT NULL, source_container_name IN VARCHAR2 DEFAULT NULL, lcrid_version IN NUMBER DEFAULT NULL);
パラメータ
表230-16 CREATE_OUTBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成中のアウトバウンド・サーバーの名前。 指定した名前が既存のアウトバウンド・サーバー、インバウンド・サーバー、適用プロセス、またはメッセージ・クライアントの名前と一致しないようにしてください。 ノート: |
|
ソース・データベースのグローバル名。ソース・データベースは、取得対象の変更が発生したデータベースです。
CDBでは、ルールに関連するコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 CDB以外では、 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 |
|
DMLおよびDDLの変更がXStreamクライアント・アプリケーションにストリーム・アウトされる表。表は、次の方法で指定できます。
それぞれの表は、 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
DMLとDDLの変更がXStreamクライアント・アプリケーションにストリーム・アウトされるスキーマ。スキーマは、次の方法で指定できます。
ノート: このプロシージャでは、 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、取得プロセスは、取得プロセスのルール・セットを満たす変更を取得し、取得プロセス・ルールに対して構成されているカスタム・ルールベースの変換を実行します。 このプロシージャは、取得プロセスによって使用されるキューに対するエンキュー権限を取得ユーザーに付与し、ユーザーをセキュアなキュー・ユーザーとして構成します。 また、取得ユーザーが次の権限を持っていることを確認する必要があります。
これらの権限は適用ユーザーに直接付与することも、ロールを通して付与することもできます。 また、取得ユーザーには、取得プロセスによって実行されるルールベース変換で起動されるすべてのパッケージ(オラクル社が提供するパッケージを含む)の 取得ユーザーを設定できるのは、 取得ユーザーは、データベース・オブジェクトに対する権限を持っていなくても、データベース・オブジェクトに対する変更を取得できます。取得プロセスでは、データベース・オブジェクトに対する変更をカスタムのルールベース変換ファンクションに渡すことができます。したがって、取得プロセスを構成するときは、セキュリティ問題に留意する必要があります。 |
|
指定したアウトバウンド・サーバーに連結して変更ストリームを取得できるユーザー。クライアント・アプリケーションは、指定した接続ユーザーとしてアウトバウンド・サーバーに連結する必要があります。
接続ユーザーとは、そのセキュリティ・ドメインでアウトバウント・サーバーがルール・セットを照合してLCRを評価し、アウトバウンド・サーバーのルールに対して構成されているカスタム・ルールベースの変換を実行するユーザーです。このユーザーは、これらのアクションの実行に必要な権限を持っている必要があります。このプロシージャは、アウトバウンド・サーバーによって使用されるキューに対するデキュー権限を接続ユーザーに付与し、ユーザーをセキュアなキュー・ユーザーとして構成します。 このプロシージャによって付与された権限だけでなく、次の権限も接続ユーザーに付与します。
これらの権限は接続ユーザーに直接付与することも、ロールを通して付与することもできます。 さらに、アウトバウンド・サーバーによって実行されるサブプログラムで起動するすべてのパッケージ(オラクル社が提供するパッケージを含む)に対する |
|
アウトバウンド・サーバーに関連付けられたオプションのコメント。 |
|
アウトバウンド・サーバー用の変更を取得するように構成された取得プロセスの名前。所有者を指定しないでください。 取得プロセスは存在してはいけません。指定した名前が既存の取得プロセスの名前と一致する場合、エラーが発生します。 名前が既存の取得プロセスの名前と一致しない場合は、指定した名前を付けた取得プロセスが新規に作成されます。
ノート: 取得プロセスは、作成した後で名前を変更することはできません。 |
|
|
|
|
|
ソースCDBのルートのグローバル名。たとえば、 このパラメータが ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
ソース・コンテナの短縮名。コンテナは、ルートまたはPDBのいずれでもかまいません。たとえば、 ノート: このパラメータはCDBにのみ適用されます。 |
|
取得済LCRのLCRIDバージョン(
|
使用上のノート
次のリストは、table_names
およびschema_names
パラメータの様々な組合せにおけるアウトバウンド・サーバーの動作について説明しています。
-
table_names
およびschema_names
パラメータが両方ともNULL
か空の場合、アウトバウンド・サーバーはDMLとDDLのすべての変更をクライアント・アプリケーションにストリームします。このプロシージャはオーバーロードされています。
table_names
およびschema_names
パラメータのデフォルトはNULL
です。同じコールでtable_names
とschema_names
の両方にNULL
を指定しないでください。指定した場合は、エラーPLS-00307
が戻されます。 -
table_names
およびschema_names
パラメータを両方とも指定した場合、アウトバウンド・サーバーは指定した表とスキーマに対するDMLとDDLの変更をストリームします。 -
table_names
パラメータが指定されていて、schema_names
パラメータがNULL
または空の場合、アウトバウンド・サーバーは指定した表に対するDMLとDDLの変更をストリームします。 -
table_names
パラメータがNULL
または空で、schema_names
パラメータが指定されている場合、アウトバウンド・サーバーは指定されたスキーマに対するDMLおよびDLLの変更をストリームします。
table_names
およびschema_names
パラメータでDBMS_UTILITY.UNCL_ARRAY
タイプを使用するプロシージャの場合、両方のパラメータを指定する必要があります。表のみを指定するには、schema_names
パラメータを指定して空にする必要があります。スキーマのみを指定するには、table_names
パラメータを指定して空にする必要があります。
ノート:
空の配列には、1つのNULL
エントリが含まれています。
230.4.16 DELETE_COLUMNプロシージャ
このプロシージャは、指定されたルールを満たす行論理変更レコード(LCR)から列を削除する宣言ルールベースの変換を追加または削除します。
指定したルールがTRUE
と評価されるときに変換を実行する場合、ルールはXStreamクライアントのポジティブ・ルール・セットに入っている必要があります。XStreamクライアントには、取得プロセス、伝播プロセスおよび適用プロセスがあります。
ノート:
-
DELETE_COLUMN
プロシージャでサポートされているデータ・タイプは、Oracle Replication取得プロセスでサポートされているデータ・タイプと同じです。 -
DELETE_COLUMN
プロシージャは、行LCR内の比較的少ない数の列を削除する場合に役立ちます。行LCR内のほとんどの列を削除し、比較的少ない数の列を保持するには、このパッケージのKEEP_COLUMNS
プロシージャの使用を検討してください。 -
宣言的変換では、行LCRのみを変換できます。したがって、このプロシージャを実行する場合は、DMLルールを指定する必要があります。DDLルールを指定した場合は、エラーが発生します。
参照:
-
宣言的なルールベース変換および取得プロセスでサポートされるデータ・タイプの詳細は、『Oracle Database XStreamガイド』を参照してください。
構文
DBMS_XSTREAM_ADM.DELETE_COLUMN( rule_name IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2, value_type IN VARCHAR2 DEFAULT '*', step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD');
パラメータ
表230-17 DELETE_COLUMNプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
たとえば、 |
|
行LCRで列を削除する表の名前で、 |
|
ルールを満たす各行LCRから削除する列の名前。 |
|
行LCRの新しい値から列を削除する場合は、 行LCRの古い値から列を削除する場合は、 行LCRの新しい値と古い値の両方から列を削除する場合は、 |
|
変換の実行順序。 関連項目: 変換の順序の詳細は、『Oracle Database XStreamガイド』を参照してください。 |
|
変換をルールに追加する場合は、 変換をルールから削除する場合は、 |
使用上のノート
operation
パラメータに'REMOVE'
を指定すると、指定したルールに対する列削除の宣言ルールベースの変換のうち、指定したパラメータ(table_name
、column_name
およびstep_number
)に一致するすべての変換が削除されます。これらのパラメータにNULLを指定すると、ワイルドカードとして動作します。次の表に、これらのパラメータの1つ以上がNULL
の場合の、DELETE_COLUMN
プロシージャの動作を示します。
table_name | column_name | step_number | 結果 |
---|---|---|---|
|
|
|
指定したルールに対するすべての列削除変換が削除されます。 |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
230.4.17 DROP_INBOUNDプロシージャ
このプロシージャは、インバウンド・サーバーの構成を削除します。
このプロシージャでは、指定されたインバウンド・サーバーが常に削除されます。また、次の条件がすべて満たされている場合は、インバウンド・サーバーのキューも削除されます。
-
CREATE_INBOUND
プロシージャを1回コールして、キューが作成されました。 -
インバウンド・サーバーは、このキューの唯一のサブスクライバです。
構文
DBMS_XSTREAM_ADM.DROP_INBOUND( server_name IN VARCHAR2);
パラメータ
表230-18 DROP_INBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除中のインバウンド・サーバーの名前。既存のインバウンド・サーバーを指定します。所有者を指定しないでください。 |
230.4.18 DROP_OUTBOUNDプロシージャ
このプロシージャは、アウトバウンド・サーバーの構成を削除します。
このプロシージャでは、指定されたアウトバウンド・サーバーが常に削除されます。また、次の条件が両方とも満たされている場合は、アウトバウンド・サーバーで使用されるキューも削除されます。
-
キューは、このパッケージの
CREATE_OUTBOUND
プロシージャにより作成されました。 -
アウトバウンド・サーバーは、このキューの唯一のサブスクライバです。
前述の条件のいずれかが満たされていない場合、DROP_OUTBOUND
プロシージャはアウトバウント・サーバーのみを削除します。キューは削除されません。
また、次の条件が両方とも満たされている場合は、アウトバウンド・サーバーの取得プロセスも削除されます。
-
このプロシージャでは、アウトバウンド・サーバーのキューを削除できます。
-
取得プロセスが
CREATE_OUTBOUND
プロシージャによって作成されました。
このプロシージャがキューを削除できても取得プロセスを管理できない場合には、取得プロセスを削除せずにキューが削除されます。
構文
DBMS_XSTREAM_ADM.DROP_OUTBOUND( server_name IN VARCHAR2);
パラメータ
表230-19 DROP_OUTBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除中のアウトバウンド・サーバーの名前。既存のアウトバウンド・サーバーを指定します。所有者を指定しないでください。 |
230.4.19 ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ
このプロシージャでは、Oracle Replicationコンポーネントに対してXStream最適化およびパフォーマンス最適化を有効にします。
このプロシージャは、XStream最適化および最適化を有効にするOracle Replicationユーザーを対象としています。たとえば、Oracleデータベース間の変更をレプリケートするために取得プロセスと適用プロセスを使用するOracle Replication構成の最適化を有効にできます。
これらの機能と最適化は、アウトバウンド・サーバー、インバウンド・サーバーおよびアウトバウンド・サーバーに変更を送信する取得プロセスなどのXStreamコンポーネントに対して自動的に有効化されます。XStreamコンポーネントに対してこのプロシージャを実行する必要はありません。
XStream最適化が有効になると、Oracle ReplicationコンポーネントはIDキーLCRと順序LCRのストリームが可能になります。XStreamパフォーマンス最適化により、次のような様々な領域で効率を向上させることができます。
-
LCRの処理
-
大規模なトランザクションの処理
-
適用時のDMLの実行
-
依存性の計算とスケジューリング
-
取得プロセスの並列性
構文
DBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMS( enable IN BOOLEAN TRUE);
パラメータ
表230-20 ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
使用上のノート
このプロシージャには、次の使用上のノートが適用されます。
-
このプロシージャを実行すると、すべての取得プロセスと適用プロセスが再起動します。
-
このプロシージャの実行後は、次のビューの
PURPOSE
列にXStream
Streams
が表示されます。-
ALL_APPLY
-
DBA_APPLY
-
ALL_CAPTURE
-
DBA_CAPTURE
-
-
Oracle Replicationコンポーネントに対してXStreamパフォーマンス最適化を有効にするには、Oracle GoldenGate製品のライセンスが必要です。
230.4.20 GET_MESSAGE_TRACKINGファンクション
GET_MESSAGE_TRACKING
ファンクションは、現在のセッションの追跡ラベルを戻します。
構文
DBMS_XSTREAM_ADM.GET_MESSAGE_TRACKING RETURN VARCHAR2;
230.4.21 GET_TAGファンクション
このファンクションは、現行のセッションで生成されるREDOエントリすべてに対してバイナリ・タグを取得します。
参照:
構文
DBMS_XSTREAM_ADM.GET_TAG RETURN RAW;
例
次の例は、現行の論理変更レコード(LCR)タグを出力として表示する方法を示しています。
SET SERVEROUTPUT ON DECLARE raw_tag RAW(2000); BEGIN raw_tag := DBMS_XSTREAM_ADM.GET_TAG(); DBMS_OUTPUT.PUT_LINE('Tag Value = ' || RAWTOHEX(raw_tag)); END; /
DUAL
ビューを問い合せて値を表示することもできます。
SELECT DBMS_XSTREAM_ADM.GET_TAG FROM DUAL;
230.4.22 IS_GG_XSTREAM_FOR_STREAMSファンクション
このファンクションは、Oracle Replicationコンポーネントに対するXStreamパフォーマンス最適化が有効な場合にTRUE
を戻し、Oracle Replicationコンポーネントに対するXStreamパフォーマンス最適化が無効な場合にFALSE
を戻します。
構文
DBMS_XSTREAM_ADM.IS_GG_XSTREAM_FOR_STREAMS RETURN BOOLEAN;
230.4.23 KEEP_COLUMNSプロシージャ
このプロシージャは、指定されたルールを満たす行論理変更レコード(LCR)内の列のリストを保持する宣言ルールベースの変換を追加または削除します。変換によって、リストにない列が行LCRから削除されます。
指定したルールがTRUE
と評価されるときに変換を実行する場合、ルールはXStreamクライアントのポジティブ・ルール・セットに入っている必要があります。XStreamクライアントには、取得プロセス、伝播プロセスおよび適用プロセスがあります。
このプロシージャはオーバーロードされています。column_list
パラメータは、VARCHAR2
タイプで、column_table
パラメータは、DBMS_UTILITY.LNAME_ARRAY
タイプです。これらのパラメータによって、列のリストを異なる方法で入力できますが、これらのパラメータを同時に使用することはできません。
ノート:
-
KEEP_COLUMNS
プロシージャでサポートされているデータ・タイプは、Oracle Replication取得プロセスでサポートされているデータ・タイプと同じです。 -
KEEP_COLUMNS
プロシージャは、行LCR内の比較的少ない数の列を保持する場合に役立ちます。行LCR内のほとんどの列を保持し、比較的少ない数の列を削除するには、このパッケージのDELETE_COLUMN
プロシージャの使用を検討してください。 -
宣言的変換では、行LCRのみを変換できます。したがって、このプロシージャを実行する場合は、DMLルールを指定する必要があります。DDLルールを指定した場合は、エラーが発生します。
参照:
-
宣言的なルールベースの変換とOracle Replicationの取得プロセスによってサポートされているデータ・タイプの詳細は、『Oracle Database XStreamガイド』を参照してください。
構文
DBMS_XSTREAM_ADM.KEEP_COLUMNS( rule_name IN VARCHAR2, table_name IN VARCHAR2, column_list IN VARCHAR2, value_type IN VARCHAR2 DEFAULT '*', step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD'); DBMS_XSTREAM_ADM.KEEP_COLUMNS( rule_name IN VARCHAR2, table_name IN VARCHAR2, column_table IN DBMS_UTILITY.LNAME_ARRAY, value_type IN VARCHAR2 DEFAULT '*', step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD');
パラメータ
表230-21 KEEP_COLUMNSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
たとえば、 |
|
行LCRで列を保存する表の名前で、 |
|
ルールを満たす各行LCRで保持される列の名前。 このパラメータが |
|
ルールを満たす各行LCRで保持される列の名前。 表に含まれていない列は、変換によって行LCRから削除されません。 このパラメータが |
|
行LCRの新しい値に列を保持する場合は、 行LCRの古い値に列を保持する場合は、 行LCRの新しい値と古い値の両方に列を保持する場合は、 |
|
変換の実行順序。 関連項目: 変換の順序の詳細は、『Oracle Database XStreamガイド』を参照してください。 |
|
変換をルールに追加する場合は、 変換をルールから削除する場合は、 |
使用上のノート
operation
パラメータに'REMOVE'
を指定すると、指定したルールに対する列保持の宣言ルールベースの変換のうち、指定したパラメータ(table_name
、column_list
、column_table
およびstep_number
)に一致するすべての変換が削除されます。これらのパラメータにNULLを指定すると、ワイルドカードとして動作します。次の表に、これらのパラメータの1つ以上がNULL
の場合の、KEEP_COLUMNS
プロシージャの動作を示します。
table_name | column_list/column_table | step_number | 結果 |
---|---|---|---|
|
|
|
指定したルールに対するすべての列保持変換が削除されます。 |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
230.4.24 MERGE_STREAMSプロシージャ
このプロシージャは、1つの取得プロセスからのストリームを別の取得プロセスからのストリームとマージします。
このプロシージャは、通常、このパッケージのSPLIT_STREAMS
プロシージャを使用して分割された2つのストリームのマージに使用します。SPLIT_STREAMS
プロシージャは、ストリームの分割時に元のストリームのコンポーネントをクローニングします。このため、この項では次の用語が使用されています。
-
分割前のストリームには、元のキュー、元の取得プロセスおよび元の伝播があります。
-
SPLIT_STREAMS
プロシージャによって分割されたストリームには、クローニングされたキュー、クローニングされた取得プロセスおよびクローニングされた伝播があります。
このプロシージャは、MERGE_STREAMS_JOB
プロシージャによってコールされます。MERGE_STREAMS_JOB
プロシージャは、安全にマージできるようにストリームがユーザー指定のマージしきい値内にあるかどうかを判別します。ストリームがマージしきい値の範囲外の場合、MERGE_STREAMS_JOB
プロシージャは何も実行しません。通常、MERGE_STREAMS
プロシージャを直接実行するのではなく、MERGE_STREAMS_JOB
プロシージャを実行することをお薦めします。
ただし、次の条件を満たす場合は、MERGE_STREAMS
プロシージャを直接実行することを選択できます。
-
分割ストリームの宛先での問題が修正されており、宛先キューが変更を受け入れることができる。
-
分割ストリームによって使用されるクローニングされた取得プロセスが開始され、変更を取得している。
-
接続先データベースにある適用プロセスが、クローニングされた取得プロセスによって取得された変更を適用している。
-
クローニングされた取得プロセスの
GV$XSTREAM_CAPTURE
ビューのCAPTURE_MESSAGE_CREATE_TIME
が、元の取得プロセスのCAPTURE_MESSAGE_CREATE_TIME
に追いついているか、ほとんど追いついている。クローニングされた取得プロセスは、元の取得プロセスに完全には追いつかない場合があります。そのため、クローニングされた取得プロセスが元の取得プロセスにほとんど追いついている場合、分割ストリームをマージできます。
MERGE_STREAMS
プロシージャを実行すると、次のアクションが実行されます。
-
クローニングされた取得プロセスが停止されます。
-
元の取得プロセスを停止します。
-
クローニングされた伝播を元の伝播にコピーして戻します。コピーして戻した後の伝播の名前は、元の伝播と同じ名前です。
-
次の2つのSCN値の小さいほうのSCN値から元の取得プロセスを開始します。
-
クローニングされた伝播の確認済SCN
-
元の取得プロセスによって取得された変更を伝播する他の伝播の、一番小さい確認済SCN
元の取得プロセスを開始すると、すでに取得されている変更が再取得されたり、クローニングされた取得プロセスによってすでに取得されている変更が取得される場合があります。いずれの場合も、関連する適用プロセスによって、重複して受信した変更が破棄されます。
-
-
クローニングされた伝播が削除されます。
-
クローニングされた取得プロセスが削除されます。
-
クローニングされたキューが削除されます。
構文
DBMS_XSTREAM_ADM.MERGE_STREAMS( cloned_propagation_name IN VARCHAR2, propagation_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT NULL, perform_actions IN BOOLEAN DEFAULT TRUE, script_name IN VARCHAR2 DEFAULT NULL, script_directory_object IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-22 MERGE_STREAMSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
既存の伝播名を指定する必要があります。所有者を指定しないでください。 |
|
元のストリームにマージされて戻される伝播の名前。
元の伝播名とは異なる名前を使用する場合、または
|
|
マージされて戻される伝播のソース・キューであるキューの名前。
|
|
このプロシージャでスクリプトを生成し、そのスクリプトを編集して実行できるようにする場合は、
|
|
このパラメータが このパラメータが このパラメータが このパラメータが |
|
作成されるスクリプトが保存されるローカル・コンピュータ・システムのディレクトリのディレクトリ・オブジェクト。
このパラメータが ノート: ディレクトリ・オブジェクトにOracle Automatic Storage Management (ASM)ディスク・グループを指定することはできません。 |
使用上のノート
MERGE_STREAMS
プロシージャを使用して、SPLIT_STREAMS
プロシージャを使用して分割されなかった2つのストリームをマージできます。この方法でストリームをマージすることによって、1つのデータベースで複数の取得プロセスを実行しているときに、リソースを節約してパフォーマンスを向上させることができます。
230.4.25 MERGE_STREAMS_JOBプロシージャ
このプロシージャは、元の取得プロセスおよびクローニングされた取得プロセスが、指定されたマージしきい値内にあるかどうかを判別します。マージしきい値内にある場合、このプロシージャはMERGE_STREAMS
プロシージャを実行して2つのストリームをマージします。
このプロシージャは、通常、このパッケージのSPLIT_STREAMS
プロシージャを使用して分割された2つのストリームのマージに使用します。SPLIT_STREAMS
プロシージャは、ストリームの分割時に元のストリームのコンポーネントをクローニングします。このため、この項では次の用語が使用されています。
-
分割前のストリームには、元のキュー、元の取得プロセスおよび元の伝播があります。
-
SPLIT_STREAMS
プロシージャによって分割されたストリームには、クローニングされたキュー、クローニングされた取得プロセスおよびクローニングされた伝播があります。
ストリームを分割するSPLIT_STREAMS
プロシージャでauto_merge_threshold
パラメータが正数に設定された場合、マージ・ジョブはスケジュールに従ってMERGE_STREAMS_JOB
プロシージャを自動的に実行します。MERGE_STREAMS_JOB
プロシージャが自動的に実行される場合、schedule_name
パラメータにスケジュール名を、merge_job_name
パラメータにマージ・ジョブ名を指定します。マージ・ジョブおよびそのスケジュールは、SPLIT_STREAMS
プロシージャによって作成されました。
ストリームを分割するSPLIT_STREAMS
プロシージャでauto_merge_threshold
パラメータがNULL
または0
(ゼロ)に設定された場合は、MERGE_STREAMS_JOB
プロシージャを手動で実行できます。この場合は、自動的には実行されません。
構文
DBMS_XSTREAM_ADM.MERGE_STREAMS_JOB( cloned_propagation_name IN VARCHAR2, propagation_name IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT NULL, merge_threshold IN NUMBER, schedule_name IN VARCHAR2 DEFAULT NULL, merge_job_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-23 MERGE_STREAMS_JOBプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
既存の伝播名を指定する必要があります。所有者を指定しないでください。 |
|
元のストリームにマージされて戻される伝播の名前。
元の伝播名とは異なる名前を使用する場合、または
|
|
マージされて戻される伝播のソース・キューであるキューの名前。
|
|
マージしきい値(秒単位)。
具体的には、クローニングされた取得プロセスと元の取得プロセスの |
|
マージ・ジョブのスケジュールの名前。
このプロシージャを手動で実行する場合は、 |
|
ストリームをマージするジョブの名前。
このプロシージャを手動で実行する場合は、 |
使用上のノート
MERGE_STREAMS_JOB
プロシージャを使用して、SPLIT_STREAMS
プロシージャを使用して分割されなかった2つのストリームをマージできます。この方法でストリームをマージすることによって、1つのデータベースで複数の取得プロセスを実行しているときに、リソースを節約してパフォーマンスを向上させることができます。
MERGE_STREAMS_JOB
プロシージャの完了後、DBA_CAPTURE
ビューおよびDBA_PROPAGATION
ビューを問い合せて、ストリームがマージされたかどうかを判別できます。ストリームがマージされた場合、クローニングされた取得プロセスおよびクローニングされた伝播はこれらのビューに表示されません。
ストリームがマージされ、schedule_name
パラメータおよびmerge_job_name
パラメータがNULL
以外の場合、指定されたスケジュールおよびマージ・ジョブは自動的に削除されます。
230.4.26 PURGE_SOURCE_CATALOGプロシージャ
このプロシージャでは、指定されたオブジェクトに関するすべてのOracle Replicationデータ・ディクショナリ情報をローカル・データベースから削除します。
ノート:
マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。
このプロシージャを使用すると、今後不要になるOracle Replicationメタデータを削除できます。
構文
DBMS_XSTREAM_ADM.PURGE_SOURCE_CATALOG( source_database IN VARCHAR2, source_object_name IN VARCHAR2, source_object_type IN VARCHAR2, source_root_name IN VARCHAR2);
パラメータ
表230-24 PURGE_SOURCE_CATALOGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
CDB以外では、データベース・オブジェクトが含まれているソース・データベースのグローバル名を指定してください。 CDBでは、データベース・オブジェクトが含まれているコンテナのグローバル名を指定してください。コンテナは、ルートまたはPDBのいずれでもかまいません。 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が |
|
オブジェクトの名前で、 |
|
オブジェクトのタイプ。現在、使用できるオブジェクトのタイプは、 |
|
CDBにオブジェクトが含まれているソース・ルートのグローバル名。ソース・ルートは、CDB内における取得中の変更の発生場所です。 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、
ノート: このパラメータはCDBにのみ適用されます。 |
使用上のノート
オブジェクトが存在するソース・データベースのグローバル名をsource_database
パラメータに指定する必要があります。現行のデータベースがオブジェクトのソース・データベースでない場合、そのオブジェクトに関するデータ・ディクショナリ情報は、ソース・データベースではなく現行のデータベースから削除されます。
たとえば、ソース・データベースdbs1.net
のhr.employees
表への変更が、接続先データベースdbs2.net
のhr.employees
表に適用されると仮定します。また、dbs2.net
のhr.employees
は、ソース・データベースではないとします。この場合、この表にdbs2.net
をsource_database
として指定すると、エラーが発生します。ただし、dbs2.net
データベースでのPURGE_SOURCE_CATALOG
プロシージャの実行時に、この表にdbs1.net
をsource_database
として指定すると、dbs2.net
にある表に関するデータ・ディクショナリ情報が削除されます。
次のいずれかの条件がtrueの場合は、データベースでこのプロシージャを実行しないでください。
-
オブジェクトの取得プロセスで取得した論理変更レコード(LCR)が、オブジェクトの再インスタンス化を行わずにローカルで適用される場合(またはその可能性がある場合)。
-
オブジェクトの取得プロセスで取得したLCRが、オブジェクトの再インスタンス化を行わずにデータベースによって転送される場合(またはその可能性がある場合)。
ノート:
これらの条件は、取得プロセスで作成されていないLCRには適用されません。つまり、これらの条件は、ユーザーが作成したLCRには適用されません。
230.4.27 RECOVER_OPERATIONプロシージャ
このプロシージャは、エラーが発生したために停止した分割およびマージ操作に対してオプションを提供します。
このプロシージャは、操作のロールフォワード、操作のロールバック、操作に関するすべてのメタデータのパージのいずれかの処理を実行します。分割およびマージ操作は、複数のアウトバウンド・サーバーで同じ取得プロセスが使用されているXStream Out環境で実行される場合があります。
このプロシージャでは、split_threshold
およびmerge_threshold
取得プロセスの各パラメータをNULL
値以外に設定して自動分割および自動マージを有効にした場合にのみ、分割およびマージ操作に対する前述の処理を実行できます。
操作に関する情報は、操作の処理中に次のデータ・ディクショナリ・ビューに格納されます。
データ・ディクショナリ・ビューは、取得プロセスを含むデータベースで移入されます。
操作が正常に完了すると、操作に関するメタデータはDBA_RECOVERABLE_SCRIPT
ビューからDBA_RECOVERABLE_SCRIPT_HIST
ビューに移動されます。その他のビュー(DBA_RECOVERABLE_SCRIPT_PARAMS
、DBA_RECOVERABLE_SCRIPT_BLOCKS
およびDBA_RECOVERABLE_SCRIPT_ERRORS
)では、操作に関する情報は30日間保存された後に自動的に削除されます。
これらのいずれかの操作でエラーが発生して操作が停止した場合、操作に関するメタデータはこれらのビューに残ります。この場合、操作に関するメタデータは、RECOVER_OPERATION
プロシージャを使用してロールフォワード、ロールバックまたはパージできます。操作のロールフォワードを選択した場合は、処理を行う前にDBA_RECOVERABLE_SCRIPT_ERRORS
に記録されたエラーの原因を解消します。
取得プロセスが含まれているデータベースで、RECOVER_OPERATION
プロシージャを実行してください。
ノート:
RECOVER_OPERATION
プロシージャを実行するには、両方のデータベースがOracle Database 10g リリース2以上のデータベースである必要があります。
構文
DBMS_XSTREAM_ADM.RECOVER_OPERATION( script_id IN RAW, operation_mode IN VARCHAR2 DEFAULT 'FORWARD');
パラメータ
表230-25 RECOVER_OPERATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ロールフォワード中、ロールバック中またはパージ中の操作の操作ID。操作IDを確認するには、 |
|
|
230.4.28 REMOVE_QUEUEプロシージャ
このプロシージャは、指定されたANYDATA
キューを削除します。
具体的には、このプロシージャは次の操作を実行します。
-
現行のエンキュー・トランザクションとデキュー・トランザクションがすべてコミットされるのを待ちます。
-
キューを停止します。キューを停止すると、それ以降、キューに対するエンキュー操作とキューからのデキュー操作が禁止されます。
-
キューを削除します。
-
drop_unused_queue_table
パラメータがTRUE
に設定されている場合、キュー表が空で、他のキューによって使用されていなければ、キュー表を削除します。 -
cascade
パラメータがTRUE
に設定されている場合は、キューを使用しているすべてのXStreamクライアントが削除されます。ノート:
必ず
ANYDATA
キューを指定してください。
構文
DBMS_XSTREAM_ADM.REMOVE_QUEUE( queue_name IN VARCHAR2, cascade IN BOOLEAN DEFAULT FALSE, drop_unused_queue_table IN BOOLEAN DEFAULT TRUE);
パラメータ
表230-26 REMOVE_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するキューの名前で、 |
|
|
|
キューのキュー表が空の場合に
|
230.4.29 REMOVE_RULEプロシージャ
このプロシージャは、指定された取得プロセス、適用プロセスまたは伝播に関連付けられたルール・セットから、指定されたルールまたはすべてのルールを削除します。
ノート:
自動的に作成されたルールを削除する場合は、DBMS_RULE_ADM.DROP_RULE
プロシージャではなく、このプロシージャを使用してルールを削除してください。DBMS_RULE_ADM.DROP_RULE
プロシージャを使用すると、ルールに関するメタデータの一部が残存する可能性があります。
構文
DBMS_XSTREAM_ADM.REMOVE_RULE( rule_name IN VARCHAR2, streams_type IN VARCHAR2, streams_name IN VARCHAR2, drop_unused_rule IN BOOLEAN DEFAULT TRUE, inclusion_rule IN BOOLEAN DEFAULT TRUE);
パラメータ
表230-27 REMOVE_RULEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するルールの名前で、 たとえば、 |
|
XStreamクライアントのタイプ:
|
|
XStreamクライアントの名前。これは、取得プロセス、伝播または適用プロセスのいずれでもかまいません。所有者を指定しないでください。 指定したXStreamクライアントは存在しなくても、そのクライアントにルールを関連付けているメタデータがデータ・ディクショナリに存在する場合は、そのメタデータが削除されます。 指定されたXStreamクライアントが存在せず、そのクライアントにルールを関連付けているメタデータもデータ・ディクショナリに存在しない場合は、エラーが発生します。 |
|
ルールがルール・セットに属していない場合に ルールがいずれかのルール・セットに属している場合に
|
|
|
230.4.30 REMOVE_SUBSET_OUTBOUND_RULESプロシージャ
このプロシージャは、アウトバウンド・サーバーの構成からサブセット・ルールを削除します。
指定された挿入、更新、削除ルールの名前は、ADD_SUBSET_OUTBOUND_RULES
プロシージャによって生成された名前と一致している必要があります。サブセット・ルールの名前を表示するには、次の問合せを実行します。
SELECT RULE_OWNER, SUBSETTING_OPERATION, RULE_NAME FROM ALL_XSTREAM_RULES WHERE SUBSETTING_OPERATION IS NOT NULL;
ノート:
-
このプロシージャでは、削除する各ルールに関連付けられた宣言的なルールベース変換が削除されます。
-
アウトバウンド・サーバーの取得プロセスからルールが削除されることはありません。
構文
DBMS_XSTREAM_ADM.REMOVE_SUBSET_OUTBOUND_RULES( server_name IN VARCHAR2, insert_rule_name IN VARCHAR2, update_rule_name IN VARCHAR2, delete_rule_name IN VARCHAR2);
230.4.31 REMOVE_XSTREAM_CONFIGURATIONプロシージャ
このプロシージャは、XStream構成をローカル・データベースで削除します。
構文
DBMS_XSTREAM_ADM.REMOVE_XSTREAM_CONFIGURATION( container IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-28 REMOVE_XSTREAM_CONFIGURATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
コンテナ名の場合は、指定されたコンテナからXStream構成が削除されます。ルートを指定するには、ルートへの接続中に ノート: このパラメータはCDBにのみ適用されます。 |
使用上のノート
このプロシージャは、ローカル・データベース上で次の処理を実行します。
-
すべての取得プロセスを削除します。
-
インスタンス化のために表が準備されている場合は、
DBMS_CAPTURE_ADM
パッケージのABORT_TABLE_INSTANTIATION
プロシージャを使用すると、表のインスタンス化の準備が中断されます。 -
インスタンス化のためにスキーマが準備されている場合は、
DBMS_CAPTURE_ADM
パッケージのABORT_SCHEMA_INSTANTIATION
プロシージャを使用すると、スキーマのインスタンス化の準備が中断されます。 -
インスタンス化のためにデータベースが準備されている場合は、
DBMS_CAPTURE_ADM
パッケージのABORT_GLOBAL_INSTANTIATION
プロシージャを使用すると、データベースのインスタンス化の準備が中断されます。 -
DBMS_XSTREAM_ADM
パッケージまたはDBMS_PROPAGATION_ADM
パッケージのいずれかを使用して作成された伝播を削除します。伝播を削除する前に、伝播ジョブを無効にします。DBMS_AQADM
パッケージを使用して作成された伝播は削除しません。 -
伝播で使用されるすべての伝播ジョブを無効にします。
-
すべての適用プロセスを削除します。適用プロセスのエラー・キューに適用エラーがある場合は、すべての適用エラーを削除してから、適用プロセスを削除します。
-
適用プロセスで使用されるDDLハンドラの定義を削除します。DDLハンドラによって使用されるPL/SQLプロシージャは削除しません。
-
適用プロセスで使用されるメッセージ・ハンドラの定義を削除します。メッセージ・ハンドラによって使用されるPL/SQLプロシージャは削除しません。
-
適用プロセスで使用されるプリコミット・ハンドラの定義を削除します。プリコミット・ハンドラによって使用されるPL/SQLプロシージャは削除しません。
-
個々の適用オブジェクト用、個々のスキーマ用およびデータベース全体用の、初期化SCNと無視SCNを削除します。
-
メッセージ・クライアントを削除します。
-
DBMS_XSTREAM_ADM
パッケージのSET_MESSAGE_NOTIFICATION
プロシージャを使用して設定されたメッセージ通知指定を設定解除します。 -
プロシージャDMLハンドラとエラー・ハンドラの定義を削除します。この削除では、これらのハンドラによって使用されるPL/SQLプロシージャは削除されません。
-
更新競合ハンドラを削除します。
-
適用表の代替キー列の定義を削除します。
-
DBMS_XSTREAM_ADM
パッケージを使用して作成されたルール・セットとルールを削除します。 -
取得プロセス、伝播、適用プロセスおよびメッセージ・クライアントによって使用されなかったルール・セットを削除し、それぞれのルール・セット内のルールを削除します。これらのルールおよびルール・セットは、
DBMS_XSTREAM_ADM
パッケージまたはDBMS_RULE_ADM
パッケージを使用して作成されたかどうかに関係なく削除されます。
このプロシージャは、取得プロセスと適用プロセスを停止してから、それらのプロセスを削除します。
次の両方の条件を満たす場合は、このプロシージャはルール・セットまたはルールを削除しません。
-
ルール・セットまたはルールが
DBMS_RULE_ADM
パッケージを使用して作成された。 -
ルール・セットまたはルールが、取得プロセス、伝播、適用プロセスまたはメッセージ・クライアントによって使用されていない。
ノート:
このプロシージャの実行には危険が伴います。このプロシージャは、データベースでXStream構成全体を削除する必要がある場合にのみ実行してください。Oracle Replication構成がデータベースに存在している場合は、Oracle Replication構成全体も削除されます。
ノート:
-
このプロシージャを繰り返し実行しても、エラーは発生しません。プロシージャが途中で失敗した場合は再実行できます。
-
このプロシージャは複数回コミットされます。
230.4.32 RENAME_COLUMNプロシージャ
このプロシージャは、指定されたルールを満たす行論理変更レコード(LCR)内の列の名前を変更する宣言ルールベースの変換を追加または削除します。
指定したルールがTRUE
と評価されるときに変換を実行する場合、ルールはXStreamクライアントのポジティブ・ルール・セットに入っている必要があります。XStreamクライアントには、取得プロセス、伝播プロセスおよび適用プロセスがあります。
ノート:
-
RENAME_COLUMN
プロシージャでサポートされているデータ・タイプは、Oracle Replication取得プロセスでサポートされているデータ・タイプと同じです。 -
宣言的変換では、行LCRのみを変換できます。したがって、このプロシージャを実行する場合は、DMLルールを指定する必要があります。DDLルールを指定した場合は、エラーが発生します。
参照:
宣言的なルールベースの変換とOracle Replicationの取得プロセスによってサポートされているデータ・タイプの詳細は、『Oracle Database XStreamガイド』を参照してください。
構文
DBMS_XSTREAM_ADM.RENAME_COLUMN( rule_name IN VARCHAR2, table_name IN VARCHAR2, from_column_name IN VARCHAR2, to_column_name IN VARCHAR2, value_type IN VARCHAR2 DEFAULT '*', step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD');
パラメータ
表230-29 RENAME_COLUMNプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
たとえば、 |
|
行LCRで列の名前を変更する表の名前で、 |
|
ルールを満たす各行LCR内の名前を変更する列の名前。 |
|
ルールを満たす各行LCR内の列の新しい名前。 |
|
行LCRの新しい値の列の名前を変更する場合は、 行LCRの古い値の列の名前を変更する場合は、 行LCRの新しい値と古い値の両方の列の名前を変更する場合は、 |
|
変換の実行順序。 関連項目: 変換の順序の詳細は、『Oracle Database XStreamガイド』を参照してください。 |
|
変換をルールに追加する場合は、 変換をルールから削除する場合は、 |
使用上のノート
operation
パラメータに'REMOVE'
を指定すると、指定したルールに対する列名変更の宣言ルールベースの変換のうち、指定したパラメータ(table_name
、column_name
およびstep_number
)に一致するすべての変換が削除されます。これらのパラメータにNULLを指定すると、ワイルドカードとして動作します。次の表に、これらのパラメータの1つ以上がNULL
の場合の、RENAME_COLUMN
プロシージャの動作を示します。
table_name | from_column_name | to_column_name | step_number | 結果 |
---|---|---|---|---|
|
|
|
|
指定したルールに対するすべての列名変更変換が削除されます。 |
|
|
|
|
指定したルールに対して指定された |
|
|
|
|
指定したルールに対して指定された |
|
|
|
|
指定したルールに対して指定された |
|
|
|
|
指定したルールに対して指定されたcolumn_nameの値を持つすべての列名変更変換が削除されます。 |
|
|
|
|
指定したルールに対して指定された |
|
|
|
|
指定したルールに対して指定されている |
|
|
|
|
指定したルールに対して指定された |
|
|
|
|
指定したルールに対して指定された |
|
|
|
|
指定したルールに対して指定された |
|
|
|
|
指定したルールに対して指定された |
230.4.33 RENAME_SCHEMAプロシージャ
このプロシージャは、指定されたルールを満たす行論理変更レコード(LCR)内のスキーマの名前を変更する宣言ルールベースの変換を追加または削除します。
指定したルールがTRUE
と評価されるときに変換を実行する場合、ルールはXStreamクライアントのポジティブ・ルール・セットに入っている必要があります。XStreamクライアントには、取得プロセス、伝播プロセスおよび適用プロセスがあります。
ノート:
宣言的変換では、行LCRのみを変換できます。したがって、このプロシージャを実行する場合は、DMLルールを指定する必要があります。DDLルールを指定した場合は、エラーが発生します。
参照:
宣言的なルールベースの変換の詳細は、『Oracle Database XStreamガイド』を参照してください。
構文
DBMS_XSTREAM_ADM.RENAME_SCHEMA( rule_name IN VARCHAR2, from_schema_name IN VARCHAR2, to_schema_name IN VARCHAR2, step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD');
パラメータ
表230-30 RENAME_SCHEMAプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
たとえば、 |
|
ルールを満たす各行LCR内の名前を変更するスキーマの名前。 |
|
ルールを満たす各行LCR内のスキーマの新しい名前。 |
|
変換の実行順序。 関連項目: 変換の順序の詳細は、『Oracle Database XStreamガイド』を参照してください。 |
|
変換をルールに追加する場合は、 変換をルールから削除する場合は、 |
使用上のノート
operation
パラメータに'REMOVE'
を指定すると、指定したルールに対するスキーマ名変更の宣言ルールベースの変換のうち、指定したパラメータ(from_schema_name
、to_schema_name
およびstep_number
)に一致する変換がすべて削除されます。これらのパラメータにNULLを指定すると、ワイルドカードとして動作します。次の表に、これらのパラメータの1つ以上がNULL
の場合の、RENAME_SCHEMA
プロシージャの動作を示します。
from_schema_name | to_schema_name | step_number | 結果 |
---|---|---|---|
|
|
|
指定したルールに対するすべてのスキーマ名変更変換が削除されます。 |
|
|
|
指定したルールに対して指定された |
|
|
|
指定したルールに対して指定された |
|
|
|
指定したルールに対して指定された |
|
|
|
指定したルールに対して指定された |
|
|
|
指定したルールに対して指定された |
|
|
|
指定したルールに対して指定された |
|
|
|
指定したルールに対して指定された |
230.4.34 RENAME_TABLEプロシージャ
このプロシージャは、指定されたルールを満たす行論理変更レコード(行LCR)内の表の名前を変更する宣言ルールベースの変換を追加または削除します。
指定したルールがTRUE
と評価されるときに変換を実行する場合、ルールはXStreamクライアントのポジティブ・ルール・セットに入っている必要があります。XStreamクライアントには、取得プロセス、伝播プロセスおよび適用プロセスがあります。
ノート:
宣言的変換では、行LCRのみを変換できます。したがって、このプロシージャを実行する場合は、DMLルールを指定する必要があります。DDLルールを指定した場合は、エラーが発生します。
参照:
宣言的なルールベースの変換の詳細は、『Oracle Database XStreamガイド』を参照してください。
構文
DBMS_XSTREAM_ADM.RENAME_TABLE( rule_name IN VARCHAR2, from_table_name IN VARCHAR2, to_table_name IN VARCHAR2, step_number IN NUMBER DEFAULT 0, operation IN VARCHAR2 DEFAULT 'ADD');
パラメータ
表230-31 RENAME_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
たとえば、 |
|
ルールを満たす各行LCR内の名前を変更する表の名前で、 |
|
ルールを満たす各行LCR内の表の新しい名前で、 この変換では、表のみ、スキーマのみ、または両方の名前を変更できます。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。 |
|
変換の実行順序。 関連項目: 変換の順序の詳細は、『Oracle Database XStreamガイド』を参照してください。 |
|
変換をルールに追加する場合は、 変換をルールから削除する場合は、 |
使用上のノート
operation
パラメータに'REMOVE'
を指定すると、指定したルールに対する表名変更の宣言ルールベースの変換のうち、指定したパラメータ(from_table_name
、to_table_name
およびstep_number
)に一致する変換がすべて削除されます。これらのパラメータにNULLを指定すると、ワイルドカードとして動作します。次の表に、これらのパラメータの1つ以上がNULL
の場合の、RENAME_TABLE
プロシージャの動作を示します。
from_table_name | to_table_name | step_number | 結果 |
---|---|---|---|
|
|
|
指定したルールに対するすべての表名変更変換が削除されます。 |
|
|
|
指定したルールに対して指定された |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
|
|
|
指定したルールに対して指定されている |
230.4.35 SET_MESSAGE_TRACKINGプロシージャ
このプロシージャは、現在のセッションで生成された論理変更レコード(LCR)の追跡ラベルを設定します。
このプロシージャの影響があるのは、現行のセッションのみです。取得されたLCRや永続LCRなど、現在のセッションで生成されたLCRが追跡されます。
ノート:
このプロシージャで設定される追跡ラベルは、非LCRメッセージを追跡しません。
参照:
KAWGET_MESSAGE_TRACKING
構文
DBMS_XSTREAM_ADM.SET_MESSAGE_TRACKING( tracking_label IN VARCHAR2 DEFAULT 'Streams_tracking', actions IN NUMBER DEFAULT DBMS_XSTREAM_ADM.ACTION_MEMORY);
パラメータ
表230-32 SET_MESSAGE_TRACKINGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
セッションで生成されたLCRを追跡するために使用されるラベル。 現在のセッションでメッセージ追跡を停止するには、このパラメータを ラベルのサイズ制限は、4,000バイトです。 |
|
現在、 このパラメータに指定する値は、列挙定数です。列挙定数にはパッケージ名を接頭辞として付加する必要があります。 |
230.4.36 SET_PARAMETERプロシージャ
このプロシージャは、アウトバウンド・サーバー、インバウンド・サーバーまたはアウトバウンド・サーバーの取得プロセスに対してパラメータを設定します。
構文
DBMS_XSTREAM_ADM.SET_PARAMETER( streams_name IN VARCHAR2, streams_type IN VARCHAR2, parameter IN VARCHAR2, value IN VARCHAR2 DEFAULT NULL, no_wait IN BOOLEAN DEFAULT FALSE, source_database IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-33 SET_PARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
XStreamクライアントのタイプ:
|
|
取得プロセス、アウトバウンド・サーバーまたはインバウンド・サーバーの名前。所有者を指定しないでください。 |
|
設定するパラメータの名前。 取得プロセスのパラメータの詳細は、「取得プロセスのパラメータ」を参照してください。 アウトバウンド・サーバーおよびインバウンド・サーバーのパラメータの詳細は、「適用コンポーネントのパラメータ」を参照してください。 |
|
パラメータに設定する値。
|
|
同じプロセスの複数のパラメータを連続して変更する場合、このパラメータを |
|
コンテナ名の場合、パラメータは指定されたコンテナで設定されます。ルートを指定するには、ルートへの接続中に ノート: このパラメータは、CDBのみに適用されます。また、NULL以外の値を、次のパラメータにのみ指定できます。
|
230.4.37 SET_TAGプロシージャ
このプロシージャは、現行のセッションで継続して生成されるREDOエントリすべてに対してバイナリ・タグを設定します。
現行セッションのDML文またはDDL文によって生成される各REDOエントリには、このタグが含まれます。このプロシージャの影響があるのは、現行のセッションのみです。
構文
DBMS_XSTREAM_ADM.SET_TAG( tag IN RAW DEFAULT NULL);
パラメータ
表230-34 SET_TAGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
現行のセッションで継続して生成されるREDOエントリすべてに対するバイナリ・タグ。RAW値は一連のバイトで、バイトは一連のビットです。 デフォルトでは、セッションのタグは タグ値のサイズ制限は、2000バイトです。 |
使用上のノート
現行のセッションでタグを16進数値の'17'
に設定するには、次のプロシージャを実行します。
EXEC DBMS_XSTREAM_ADM.SET_TAG(tag => HEXTORAW('17'));
SET_TAG
プロシージャでは、次の点に注意してください。
-
このプロシージャはトランザクション型ではありません。つまり、
SET_TAG
の結果はロールバックできません。 -
データベースでデータ・ディクショナリの構築を実行する前に、
SET_TAG
プロシージャを実行してNULL
以外のセッション・タグを設定した場合、ディクショナリの構築前に開始したトランザクションのREDOエントリに、セッションに指定したタグ値が含まれないことがあります。そのため、データ・ディクショナリの構築は、セッションでSET_TAG
プロシージャを使用する前に実行します。データ・ディクショナリは、DBMS_CAPTURE_ADM.BUILD
プロシージャを実行すると構築されます。BUILD
プロシージャは、取得プロセスの作成時に自動的に実行できます。
参照:
230.4.38 SET_UP_QUEUEプロシージャ
このプロシージャは、キュー表およびANYDATA
キューを作成します。
構文
DBMS_XSTREAM_ADM.SET_UP_QUEUE( queue_table IN VARCHAR2 DEFAULT 'streams_queue_table', storage_clause IN VARCHAR2 DEFAULT NULL, queue_name IN VARCHAR2 DEFAULT 'streams_queue', queue_user IN VARCHAR2 DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL);
パラメータ
表230-35 SET_UP_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
キュー表の名前で、 キュー表の所有者を指定しない場合は、このプロシージャを実行するユーザーがキュー表の所有者として自動的に指定されます。 キュー表の名前の最大長は24バイトです。 |
|
キュー表に対すSTORAGE句。 記憶域パラメータは、キュー表の作成時に、 ここで表領域を指定しない場合は、キュー表およびそのすべての関連オブジェクトが、このプロシージャを実行しているユーザーのデフォルトのユーザー表領域に作成されます。ここで表領域を指定した場合は、キュー表およびそのすべての関連オブジェクトが、STORAGE句で指定された表領域に作成されます。
関連項目: STORAGE句の詳細は、『Oracle Database SQL言語リファレンス』を参照してください |
|
スキーマを指定しない場合は、キュー表の所有者が使用されます。キュー表の所有者は、キューの所有者でもある必要があります。キューの所有者には、キューに関するすべてのキュー操作を実行するための権限が自動的に付与されます。 このパラメータにスキーマが指定されず、 キューの名前の最大長は24バイトです。 |
|
キューに対する
|
|
キューに対するコメント。 |
使用上のノート
設定には、次のアクションが含まれます。
-
指定のキュー表が存在していない場合、このプロシージャは、
DBMS_AQADM
パッケージのCREATE_QUEUE_TABLE
プロシージャを実行し、指定のSTORAGE句でキュー表を作成します。このプロシージャでキュー表が作成される場合は、保護キューでありトランザクション・キューでもある、ANYDATA
のマルチ・コンシューマ・キューが作成されます。また、データベースがOracle Database 10g リリース 2以上の場合、
CREATE_QUEUE_TABLE
のsort_list
設定はcommit_time
に設定されます。データベースがOracle Database 10g リリース2より前の場合、CREATE_QUEUE_TABLE
のsort_list
値はenq_time
に設定されます。 -
指定したキュー表が存在する場合は、そのキュー表のプロパティがキューで使用されます。
-
指定したキューの名前が存在していない場合、このプロシージャは、
DBMS_AQADM
パッケージのCREATE_QUEUE
プロシージャを実行して、キューを作成します。 -
このプロシージャは、キューを開始します。
-
キュー・ユーザーが指定されている場合、このプロシージャは、このユーザーをキューの保護キュー・ユーザーとして構成し、キューに対する
ENQUEUE
権限とDEQUEUE
権限を指定のキュー・ユーザーに付与します。キュー・ユーザーを保護キュー・ユーザーとして構成するために、このプロシージャは、ユーザー名と同名のアドバンスト・キューイング・エージェントを作成します(エージェントが存在していない場合)。この名前のエージェントが存在し、キュー・ユーザーのみに関連付けられている場合は、そのエージェントが使用されます。
SET_UP_QUEUE
プロシージャは、次に、DBMS_AQADM
パッケージのENABLE_DB_ACCESS
プロシージャを実行して、エージェントとユーザーを指定します。
ノート:
SET_UP_QUEUE
で作成を試みたエージェントが存在し、そのエージェントがqueue_user
で指定されているユーザー以外のユーザーに関連付けられている場合は、エラーが発生します。この場合は、既存のエージェントを変更または削除してから、SET_UP_QUEUE
を再試行してください。
230.4.39 SPLIT_STREAMSプロシージャ
このプロシージャは、取得プロセスからの1つのストリームをその取得プロセスからの他のすべてのストリームから分割します。
このプロシージャの対象は、複数の接続先データベースに伝播された変更を取得プロセスが取得するOracle Replication環境です。伝播の接続先の1つが取得された変更の受入れを停止した場合、変更は取得プロセス・キューに残ります。キューが大きくなってLCRのハード・ディスクへの書込みが開始されると、Oracle Replication環境のパフォーマンスが低下する可能性があります。接続先はいくつかの理由で変更の受入れを停止する場合があります。たとえば、接続先データベースが停止する場合などです。
具体的には、このプロシージャは次の操作を実行します。
-
取得プロセスを実行しているデータベースで新しいキューを作成します。新しいキューは元のストリームで使用されているキューのクローンであるため、クローニングされたキューと呼ばれます。新しいキューはクローニングされた新しい取得プロセスによって使用され、クローニングされた新しい伝播のソース・キューとなります。
-
ステップ1で作成したソース・キューから既存の宛先キューにLCRを伝播する新しい伝播を作成します。新しい伝播は元のストリームで使用されている伝播のクローンであるため、クローニングされた伝播と呼ばれます。クローニングされた伝播は、元の伝播と同じルール・セットを使用します。
-
取得プロセスを停止します。
-
元の伝播の確認済SCNを問い合せます。確認済SCNとは、伝播によって送信された変更を適用する適用プロセスによって最後に確認されたSCNです。
-
新しい取得プロセスを作成します。新しい取得プロセスは元のストリームで使用されている取得プロセスのクローンであるため、クローニングされた取得プロセスと呼ばれます。プロシージャによって、クローニングされた取得プロセスの開始SCNが、問い合せた確認済SCNの値に設定されます。クローニングされた取得プロセスは、元の取得プロセスと同じルール・セットを使用します。
-
元の伝播を削除します。
-
ステップ4で問い合せた確認済SCNに設定された開始SCNで元の取得プロセスを開始します。
-
auto_merge_threshold
パラメータが正数に設定されている場合、スケジュールに従って設定された間隔でMERGE_STREAMS_JOB
プロシージャを実行するOracle Schedulerジョブを作成します。2つのストリームが指定されたマージしきい値内にある場合、MERGE_STREAMS_JOB
プロシージャはMERGE_STREAMS
を実行して、ストリームを自動的にマージします。
SPLIT_STREAMS
プロシージャの実行が終了すると、クローニングされた取得プロセスは無効化されます。接続先データベースで問題が解決され、宛先キューで変更を受け入れることができる場合は、DBMS_CAPTURE_ADM
パッケージのSTART_CAPTURE
プロシージャを使用して、クローニングされた取得プロセスを開始する必要があります。
ノート:
元の取得プロセスがダウンストリーム取得プロセスである場合は、クローニングされた取得プロセスを開始する前に、ソース・データベースからREDOログを読み取るようにクローニングされた取得プロセスを構成する必要があります。
構文
DBMS_XSTREAM_ADM.SPLIT_STREAMS( propagation_name IN VARCHAR2, cloned_propagation_name IN VARCHAR2 DEFAULT NULL, cloned_queue_name IN VARCHAR2 DEFAULT NULL, cloned_capture_name IN VARCHAR2 DEFAULT NULL, perform_actions IN BOOLEAN DEFAULT TRUE, script_name IN VARCHAR2 DEFAULT NULL, script_directory_object IN VARCHAR2 DEFAULT NULL, auto_merge_threshold IN NUMBER DEFAULT NULL, schedule_name IN OUT VARCHAR2, merge_job_name IN OUT VARCHAR2);
パラメータ
表230-36 SPLIT_STREAMSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
宛先キューにLCRを送信できない伝播の名前。指定する伝播は、他のストリームから分割されるストリームの伝播です。既存の伝播名を指定する必要があります。所有者を指定しないでください。 |
|
分割されるストリームに対して、このプロシージャで作成される新しい伝播の名前。 |
|
分割されるストリームに対して、このプロシージャで作成される新しいキューの名前。 |
|
分割されるストリームに対して、このプロシージャで作成される新しい取得プロセスの名前。 |
|
このプロシージャでスクリプトを生成し、そのスクリプトを編集して実行できるようにする場合は、
|
|
このパラメータが このパラメータが このパラメータが このパラメータが |
|
作成されるスクリプトが保存されるローカル・コンピュータ・システムのディレクトリのディレクトリ・オブジェクト。
このパラメータが ノート: ディレクトリ・オブジェクトにOracle Automatic Storage Management (ASM)ディスク・グループを指定することはできません。 |
|
正数を指定した場合、分割されたストリームは、Oracle Schedulerジョブによって、取得プロセスからの他のすべてのストリームに自動的にマージされて戻されます。このジョブによって、スケジュールに従って設定された間隔で
|
|
Oracle Schedulerスケジュール名で、
このプロシージャによってスケジュールが作成された場合、スケジュールはプロシージャが完了したときに開始されます。スケジュールを変更して、マージ・ジョブの実行頻度を制御できます。 既存のスケジュール名を指定すると、エラーが発生します。 |
|
Oracle Schedulerジョブ名で、
既存のジョブ名を指定すると、エラーが発生します。 |
参照:
Oracle Schedulerの詳細は、『Oracle Database管理者ガイド』を参照してください。
230.4.40 START_OUTBOUNDプロシージャ
このプロシージャにより、XStreamアウトバウンド・サーバーが起動します。アウトバウンド・サーバーは、LCRをXStreamクライアントのアプリケーションにストリーム・アウトします。
構文
DBMS_XSTREAM_ADM.START_OUTBOUND( server_name IN VARCHAR2);
パラメータ
表230-37 START_OUTBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
起動中のアウトバウンド・サーバーの名前。 |
230.4.41 STOP_OUTBOUNDプロシージャ
このプロシージャにより、XStreamアウトバウンド・サーバーが停止します。アウトバウンド・サーバーは、LCRをXStreamクライアントのアプリケーションにストリーム・アウトします。
構文
DBMS_XSTREAM_ADM.STOP_OUTBOUND( server_name IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE);
パラメータ
表230-38 STOP_OUTBOUNDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
停止中のアウトバウンド・サーバーの名前。 |
|
適用コンポーネントの動作は、 |