43 DBMS_CAPTURE_ADM
Oracle Replicationパッケージの1つであるDBMS_CAPTURE_ADM
パッケージでは、取得プロセスの開始、停止および構成を実行するためのサブプログラムを提供します。取得した変更のソースはREDOログで、取得した変更のリポジトリはキューです。
ノート:
マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。
43.1 DBMS_CAPTURE_ADMの概要
このパッケージは、取得プロセスまたは同期取得を開始、停止および構成するインタフェースを提供します。このパッケージには、データベース・オブジェクトをインスタンス化する準備を行うためのサブプログラムが含まれます。
取得プロセスは、マルチテナント・コンテナ・データベース(CDB)のXStream構成で使用できます。CDBは、ユーザーが作成した0以上のプラガブル・データベース(PDB)を含むOracle Databaseです。
参照:
CDBおよびPDBの詳細は、『Oracle Database概要』を参照してください。
43.2 DBMS_CAPTURE_ADMのセキュリティ・モデル
DBMS_CAPTURE_ADMセキュリティは、2つのいずれかの方法を使用して制御できます。
-
選択したユーザーまたはロールに、このパッケージの
EXECUTE
を付与する方法 -
選択したユーザーまたはロールに、
EXECUTE_CATALOG_ROLE
を付与する方法
パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE
権限を直接付与する必要があります。ロールを通して付与することはできません。
DBMS_CAPTURE_ADM
パッケージを使用してOracle Replication構成を管理する場合、ユーザーには、Oracle Replication管理者の権限を付与する必要があります。
DBMS_CAPTURE_ADM
パッケージを使用してXStream構成を管理する場合、ユーザーには、XStream管理者の権限を付与する必要があります。
ノート:
-
ユーザーには、このパッケージ内のサブプログラムを使用して複数の管理タスク(取得ユーザーの設定など)を実行するための追加の権限を付与する必要があります。サブプログラムのために追加の権限が必要な場合、その権限は、サブプログラムを説明する項に記載されています。
-
XStreamを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。Oracle DatabaseのXStreamガイドを参照してください。
参照:
XStream管理者の構成の詳細は、Oracle DatabaseのXStreamガイドを参照してください。
43.3 DBMS_CAPTURE_ADMサブプログラムの要約
この表は、DBMS_CAPTURE_ADM
サブプログラムを示し、簡単に説明しています。
表43-1 DBMS_CAPTURE_ADMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
|
|
|
|
|
取得プロセスを変更します。 |
|
同期取得を変更します。 |
|
現行のデータベースのデータ・ディクショナリをREDOログに抽出し、すべての主キー列と一意キー列についてデータベースのサプリメンタル・ロギングを自動的に指定します。 |
|
取得プロセスを作成します。 |
|
同期取得を作成します。 |
|
取得プロセスを削除します。 |
|
指定した取得プロセスまたは同期取得によって取得される論理変更レコード(LCR)に追加属性を記録するかどうかを指示します。 |
|
別のデータベースで、データベース内のすべての表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。 |
|
別のデータベースで、スキーマ内のすべての表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。 |
|
別のデータベースで、1つ以上の表をインスタンス化するために必要な同期化を行い、準備SCNを戻します。 |
|
別のデータベースで、表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。 |
|
取得プロセス・パラメータを指定した値に設定します。 |
|
取得プロセスを開始します。取得プロセスは、REDOログを調査し、取り出したREDO情報を関連キューにエンキューします。 |
|
取得プロセスを停止してREDOログの調査を中断します。 |
ノート:
特に指定がないかぎり、すべてのサブプログラムがコミットされます。
43.3.1 ABORT_GLOBAL_INSTANTIATIONプロシージャ
このプロシージャは、PREPARE_GLOBAL_INSTANTIATION
、PREPARE_SCHEMA_INSTANTIATION
およびPREPARE_TABLE_INSTANTIATION
プロシージャの実行効果を元に戻します。
-
データベース、スキーマおよび表のインスタンス化に関連するデータ・ディクショナリ情報を削除します。
-
PREPARE_GLOBAL_INSTANTIATION
、PREPARE_SCHEMA_INSTANTIATION
およびPREPARE_TABLE_INSTANTIATION
プロシージャで有効にしたサプリメンタル・ロギングを削除します。
構文
DBMS_CAPTURE_ADM.ABORT_GLOBAL_INSTANTIATION( container IN VARCHAR2 DEFAULT 'CURRENT');
パラメータ
表43-2 ABORT_GLOBAL_INSTANTIATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
43.3.2 ABORT_SCHEMA_INSTANTIATIONプロシージャ
このプロシージャは、PREPARE_SCHEMA_INSTANTIATION
プロシージャの実行効果を元に戻します。また、指定したスキーマ内にある表のPREPARE_TABLE_INSTANTIATION
プロシージャの実行結果も元に戻します。
具体的には、このプロシージャは次の操作を実行します。
-
スキーマのインスタンス化およびスキーマ内の表のインスタンス化に関連するデータ・ディクショナリ情報を削除します。
-
PREPARE_SCHEMA_INSTANTIATION
プロシージャで有効にしたサプリメンタル・ロギングを削除します。 -
指定したスキーマ内にある表の
PREPARE_TABLE_INSTANTIATION
プロシージャで有効にしたサプリメンタル・ロギングを削除します。
構文
DBMS_CAPTURE_ADM.ABORT_SCHEMA_INSTANTIATION( schema_name IN VARCHAR2, container IN VARCHAR2 DEFAULT 'CURRENT');
パラメータ
表43-3 ABORT_SCHEMA_INSTANTIATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
準備中のインスタンス化の結果を元に戻すスキーマの名前。 |
|
|
43.3.3 ABORT_SYNC_INSTANTIATIONプロシージャ
このプロシージャは、PREPARE_SYNC_INSTANTIATION
プロシージャの実行効果を元に戻します。具体的には、表のインスタンス化に関連するデータ・ディクショナリ情報を削除します。
このプロシージャはオーバーロードされています。table_names
パラメータは、一方のバージョンではVARCHAR2
データ・タイプであり、もう一方のバージョンではDBMS_UTILITY.UNCL_ARRAY
データ・タイプです。
構文
DBMS_CAPTURE_ADM.ABORT_SYNC_INSTANTIATION( table_names IN VARCHAR2); DBMS_CAPTURE_ADM.ABORT_SYNC_INSTANTIATION( table_names IN DBMS_UTILITY.UNCL_ARRAY);
パラメータ
表43-4 ABORT_SYNC_INSTANTIATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
いずれのバージョンのプロシージャも、それぞれの表の名前を |
43.3.4 ABORT_TABLE_INSTANTIATIONプロシージャ
このプロシージャは、PREPARE_TABLE_INSTANTIATION
プロシージャの実行効果を元に戻します。
具体的には、このプロシージャは次の操作を実行します。
-
表のインスタンス化に関連するデータ・ディクショナリ情報を削除します。
-
PREPARE_TABLE_INSTANTIATION
プロシージャで有効にしたサプリメンタル・ロギングを削除します。
構文
DBMS_CAPTURE_ADM.ABORT_TABLE_INSTANTIATION( table_name IN VARCHAR2); container IN VARCHAR2 DEFAULT 'CURRENT');
パラメータ
表43-5 ABORT_TABLE_INSTANTIATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
43.3.5 ALTER_CAPTUREプロシージャ
このプロシージャは、取得プロセスを変更します。
構文
DBMS_CAPTURE_ADM.ALTER_CAPTURE( capture_name IN VARCHAR2, rule_set_name IN VARCHAR2 DEFAULT NULL, remove_rule_set IN BOOLEAN DEFAULT FALSE, start_scn IN NUMBER DEFAULT NULL, use_database_link IN BOOLEAN DEFAULT NULL, first_scn IN NUMBER DEFAULT NULL, negative_rule_set_name IN VARCHAR2 DEFAULT NULL, remove_negative_rule_set IN BOOLEAN DEFAULT FALSE, capture_user IN VARCHAR2 DEFAULT NULL, checkpoint_retention_time IN NUMBER DEFAULT NULL, start_time IN TIMESTAMP DEFAULT NULL, oldest_scn IN NUMBER DEFAULT NULL);
パラメータ
表43-6 ALTER_CAPTUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更する取得プロセスの名前。既存の取得プロセス名を指定する必要があります。所有者を指定しないでください。 |
|
取得プロセスに対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を取得プロセスに指示するためのルールが含まれています。 取得プロセスのポジティブ・ルール・セットを変更するには、既存のルール・セットを 指定したルール・セットが存在しない場合は、エラーが戻されます。
|
|
取得プロセスのネガティブ・ルール・セットが存在するときに、取得プロセスに対するポジティブ・ルール・セットを削除すると、取得プロセスは、ネガティブ・ルール・セットによって破棄されない、サポートされているすべての変更を取得します。
|
|
データベースの有効なSCNのうち、取得プロセスによる変更の取得の開始時に使用するSCN(開始時SCN)。SCN値は、取得プロセスの最初のSCN値以上にする必要があります。また、開始時SCNを再設定する前に、取得プロセスを停止する必要があります。 無効なSCNが指定された場合または取得プロセスが有効である場合に、エラーが戻されます。 |
|
|
|
取得プロセスで変更を取得できるREDOログの最小SCN。取得プロセスに対して新たに最小(最初の)SCNを指定する場合、その最小SCNは次の条件を満たす必要があります。
指定した最小SCNがこれら3つの条件を満たさない場合は、エラーが戻されます。これらのすべての条件を満たすSCN値を決定する方法は、「使用上のノート」を参照してください。 最小(最初の)SCNを変更すると、以前のSCNからの取得プロセス再開に必要な情報が取得プロセスのLogMinerデータ・ディクショナリからパージされます。LogMinerデータ・ディクショナリの詳細は、「BUILDプロシージャ」を参照してください。 指定された最小SCNが取得プロセスに対する現行の開始時SCNより大きい場合は、現行の開始時SCNが自動的に新しい最小SCNに変更されます。 |
|
取得プロセスに対するネガティブ・ルール・セットの名前。ネガティブ・ルール・セットには、変更の破棄を取得プロセスに指示するためのルールが含まれています。 取得プロセスのネガティブ・ルール・セットを変更するには、既存のルール・セットを 指定したルール・セットが存在しない場合は、エラーが戻されます。
1つの取得プロセスに対してポジティブ・ルール・セットとネガティブ・ルール・セットの両方を指定した場合は、常にネガティブ・ルール・セットが最初に評価されます。 |
|
取得プロセスのポジティブ・ルール・セットが存在するときに、取得プロセスに対するネガティブ・ルール・セットを削除すると、取得プロセスは、ポジティブ・ルール・セットによって破棄されない、サポートされているすべての変更を取得します。
|
|
ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、取得プロセスは、取得プロセスのルール・セットを満たす変更を取得し、取得プロセス・ルールに対して構成されているカスタム・ルールベースの変換を実行します。 取得ユーザーを変更するには、 取得ユーザーを変更すると、取得プロセスで使用されるキューに対するエンキュー権限が新しい取得ユーザーに付与され、その取得ユーザーがキューの保護キュー・ユーザーとして構成されます。また、取得ユーザーが次の権限を持っていることを確認する必要があります。
これらの権限は取得ユーザーに直接付与するか、またはロールによって付与できます。 また、取得ユーザーには、取得プロセスによって実行されるルールベース変換で起動されるすべてのパッケージ(オラクル社が提供するパッケージを含む)の このパラメータの値を変更すると、取得プロセスは自動的に停止し、再開します。 ノート: 取得プロセスの取得ユーザーが |
|
取得プロセスで自動的にパージが行われるまでチェックポイントが保存される日数、またはチェックポイントを自動的にパージしない場合は、 日数を指定すると、チェックポイントが取得されてから指定した日数後に、取得プロセスによってチェックポイントがパージされます。小数値を使用して時間単位で指定することもできます。たとえば、6時間は、 チェックポイントがパージされると、そのチェックポイントに対応するアーカイブREDOログ・ファイルのLogMinerデータ・ディクショナリ情報もパージされ、取得プロセスの |
|
取得プロセスによる変更の取得の開始時点となる有効な時間。開始時間を再設定する前に、取得プロセスを停止する必要があります。 無効な時間が指定された場合または取得プロセスが有効である場合に、エラーが戻されます。
|
|
現在処理中のトランザクションの最も古いSCN。 |
使用上のノート
取得プロセスの最初の(最小)SCNを変更する場合は、first_scn
パラメータで説明した条件を満たすSCN値を指定する必要があります。
例
データベース内の個々の取得プロセスについて、最初のSCN、適用されているSCNおよび必要とされるチェックポイントSCNの現行の値を確認するには、次のような問合せを使用します。
SELECT CAPTURE_NAME, FIRST_SCN, APPLIED_SCN, REQUIRED_CHECKPOINT_SCN FROM DBA_CAPTURE;
43.3.6 ALTER_SYNC_CAPTUREプロシージャ
このプロシージャは、同期取得を変更します。
構文
DBMS_CAPTURE_ADM.ALTER_SYNC_CAPTURE( capture_name IN VARCHAR2, rule_set_name IN VARCHAR2 DEFAULT NULL, capture_user IN VARCHAR2 DEFAULT NULL);
パラメータ
表43-7 ALTER_SYNC_CAPTUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更する同期取得の名前。既存の同期取得名を指定する必要があります。所有者を指定しないでください。 |
|
同期取得に対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を同期取得に指示するためのルールが含まれています。 同期取得のルール・セットを変更するには、既存のルール・セットを 指定したルール・セットが存在しない場合は、エラーが戻されます。
|
|
ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、同期取得は、同期取得のルール・セットを満たす変更を取得し、同期取得ルールに対して構成されているカスタム・ルールベースの変換を実行します。 取得ユーザーを変更するには、 取得ユーザーを変更すると、同期取得で使用されるキューに対するエンキュー権限が新しい取得ユーザーに付与され、その取得ユーザーがキューの保護キュー・ユーザーとして構成されます。なお、取得ユーザーには次の権限が必要です。
これらの権限は取得ユーザーに直接付与するか、またはロールによって付与できます。 また、取得ユーザーには、同期取得で実行されるルールベースの変換で起動されるすべてのパッケージ(Oracle提供パッケージを含む)に対する |
使用上のノート
同期取得の取得ユーザーがDROP
USER . . .
CASCADE
を使用して削除されると、同期取得も自動的に削除されます。
43.3.7 BUILDプロシージャ
このプロシージャは、現行のデータベースのデータ・ディクショナリをREDOログに抽出し、SQL文ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
を実行して、データベースのサプリメンタル・ロギングを自動的に指定します。
ノート:
マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンではOUT
パラメータfirst_scn
を使用しますが、もう一方のバージョンでは使用しません。
構文
DBMS_CAPTURE_ADM.BUILD( first_scn OUT NUMBER); DBMS_CAPTURE_ADM.BUILD;
パラメータ
表43-8 BUILDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
REDOログに抽出されるデータ・ディクショナリに対応する最初の(最小)SCN値を指定します。この値は、取得プロセスの最初のSCNとして指定できます。 |
使用上のノート
このプロシージャには、次の使用上のノートが適用されます。
-
このプロシージャは、ソース・データベースで繰り返し実行できます。
-
ソース・データベースで発生する変更を取得プロセスによって取得する場合は、このプロシージャをソース・データベースで少なくとも1回は実行する必要があります。ローカル・ソース・データベースまたはダウンストリーム・データベースで取得プロセスを起動すると、REDOログに抽出された情報に基づいて、LogMinerデータ・ディクショナリが作成されます。
-
LogMinerデータ・ディクショナリは、取得する変更の詳細を判別するために取得プロセスで使用される個別のデータ・ディクショナリです。ソース・データベースの1次データ・ディクショナリが、取得プロセスでスキャンされているREDOデータと同期化されない場合があるため、LogMinerデータ・ディクショナリが必要となります。
-
このプロシージャを実行した後、
DICTIONARY_BEGIN
列をYES
に指定して、V$ARCHIVED_LOG
動的パフォーマンス・ビューのFIRST_CHANGE#
列を問い合せると、取得プロセスに対する最初のSCNとして指定できるデータベースの最小SCNの値がわかります。取得プロセスに対する最初のSCNは、REDOログ内にある最小のSCNであり、取得プロセスでは、この最小SCNから変更の取得を開始できます。DBMS_CAPTURE_ADM
パッケージ内のCREATE_CAPTURE
プロシージャまたはALTER_CAPTURE
プロシージャの実行時に、取得プロセスに対する最初のSCNを指定できます。 -
CDBでは、
BUILD
プロシージャはルートから実行する必要があります。
43.3.8 CREATE_CAPTUREプロシージャ
このプロシージャは、取得プロセスを作成します。
ノート:
マルチテナント・コンテナ・データベースが、Oracle Database 21c以降のリリースで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。
参照:
ルールとルール・セットの詳細は、「DBMS_RULE_ADM」を参照してください。
構文
DBMS_CAPTURE_ADM.CREATE_CAPTURE( queue_name IN VARCHAR2, capture_name IN VARCHAR2, rule_set_name IN VARCHAR2 DEFAULT NULL, start_scn IN NUMBER DEFAULT NULL, source_database IN VARCHAR2 DEFAULT NULL, use_database_link IN BOOLEAN DEFAULT FALSE, first_scn IN NUMBER DEFAULT NULL, logfile_assignment IN VARCHAR2 DEFAULT 'implicit', negative_rule_set_name IN VARCHAR2 DEFAULT NULL, capture_user IN VARCHAR2 DEFAULT NULL, checkpoint_retention_time IN NUMBER DEFAULT 60, start_time IN TIMESTAMP DEFAULT NULL, source_root_name IN VARCHAR2 DEFAULT NULL, capture_class IN VARCHAR2 DEFAULT 'Streams');
パラメータ
表43-9 CREATE_CAPTUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取得プロセスが変更をエンキューするキューの名前。既存のキューを ノート: |
|
作成する取得プロセスの名前。 ノート: |
|
取得プロセスに対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を取得プロセスに指示するためのルールが含まれています。 取得プロセスに対してポジティブ・ルール・セットを使用する場合は、既存のルール・セットを 指定したルール・セットが存在しない場合は、エラーが戻されます。
取得プロセスのネガティブ・ルール・セットが存在するときに |
|
データベースの有効なSCNのうち、取得プロセスによる変更の取得の開始時に使用するSCN(開始時SCN)。 無効なSCNが指定された場合はエラーが戻されます。
関連項目: |
|
ソース・データベースのグローバル名。ソース・データベースは、取得対象の変更が発生したデータベースです。 ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が このパラメータに |
|
取得プロセスでは、このデータベース・リンクを使用してソース・データベースでデータベース・オブジェクトをインスタンス化するための準備を行い、必要に応じてソース・データベースで ダウンストリーム取得プロセスの作成時に、
|
|
取得プロセスで変更を取得できるREDOログの最小SCN。このパラメータに ソース・データベースで 関連項目: |
|
デフォルト値である
ローカル取得プロセス用のこのパラメータに対して 関連項目: REDOログ・ファイルを手動で追加する方法は、「使用上のノート」を参照してください。 |
|
取得プロセスに対するネガティブ・ルール・セットの名前。ネガティブ・ルール・セットには、変更の破棄を取得プロセスに指示するためのルールが含まれています。 取得プロセスに対してネガティブ・ルール・セットを使用する場合は、既存のルール・セットを
取得プロセスのポジティブ・ルール・セットが存在するときに 指定したルール・セットが存在しない場合は、エラーが戻されます。 1つの取得プロセスに対してポジティブ・ルール・セットとネガティブ・ルール・セットの両方を指定した場合は、常にネガティブ・ルール・セットが最初に評価されます。 |
|
ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、取得プロセスは、取得プロセスのルール・セットを満たす変更を取得し、取得プロセス・ルールに対して構成されているカスタム・ルールベースの変換を実行します。 ノート: 取得プロセスの取得ユーザーが 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
取得プロセスで自動的にパージが行われるまでチェックポイントが保存される日数を指定します。または、チェックポイントを自動的にパージしない場合は、 日数を指定すると、チェックポイントが取得されてから指定した日数後に、取得プロセスによってチェックポイントがパージされます。小数値を使用して時間単位で指定することもできます。たとえば、6時間は、 チェックポイントがパージされると、そのチェックポイントに対応するアーカイブREDOログ・ファイルのLogMinerデータ・ディクショナリ情報もパージされ、取得プロセスの |
|
取得プロセスによる変更の取得の開始時点となる有効な時間。 無効な時間が指定された場合はエラーが戻されます。
関連項目: |
|
ソースCDBのルートのグローバル名。
ノート: ダウンストリーム取得構成では、取得データベースがCDBでソース・データベースがCDB以外の場合は、 |
|
有効な値は
ノート: 取得データベースがCDBの場合は、 |
使用上のノート
このプロシージャを実行する場合は、次の使用上のノートを考慮する必要があります。
DBAロール要件
このプロシージャを起動するユーザーがcapture_user
パラメータに指定されたユーザーと異なる場合、起動するユーザーにDBA
ロールが付与されている必要があります。このプロシージャを起動するユーザーがcapture_user
パラメータに指定されたユーザーと同じである場合、起動するユーザーにDBA
ロールは必要ありません。capture_user
をSYS
に設定できるのは、SYS
ユーザーに限られています。
取得ユーザー要件
capture_user
パラメータでは、取得プロセスのルール・セットを満たす変更を取得するユーザーを指定します。このユーザーには、変更を取得するためのいくつかの権限が必要です。このプロシージャを実行すると、取得プロセスで使用されるキューに対するエンキュー権限が取得ユーザーに付与され、その取得ユーザーがキューの保護キュー・ユーザーとして構成されます。
また、取得ユーザーが次の権限を持っていることを確認する必要があります。
-
取得プロセスで使用されるルール・セットの
EXECUTE
権限 -
ポジティブ・ルール・セットで使用されるすべてのルールベース変換ファンクションの
EXECUTE
権限
これらの権限は取得ユーザーに直接付与するか、またはロールによって付与できます。
また、取得ユーザーには、取得プロセスによって実行されるルールベース変換で起動されるすべてのパッケージ(オラクル社が提供するパッケージを含む)のEXECUTE
権限が付与されている必要があります。これらの権限は、取得ユーザーに直接付与する必要があります。ロールを通して付与することはできません。
ノート:
-
取得ユーザーは、データベース・オブジェクトに対する権限を持っていなくても、データベース・オブジェクトに対する変更を取得できます。取得プロセスでは、データベース・オブジェクトに対する変更をルールベースの変換ファンクションに渡すことができます。したがって、取得プロセスを構成するときは、セキュリティ問題に留意する必要があります。
-
データベースで最初の取得プロセスを作成するときは、作成時にデータ・ディクショナリが複製されるため、時間がかかる場合があります。
最小SCNと開始時SCNの設定
このプロシージャを使用して取得プロセスを作成する場合、取得プロセスの最小SCNおよび開始時SCNを指定できます。取得プロセスは、開始時SCNが最小SCNまたはチェックポイントSCNより大きい場合でも、最小SCNまたは既存の取得プロセスのチェックポイント以降のREDOデータをスキャンします。この場合、取得プロセスは、開始時SCNより前のREDOデータの変更を取得しません。取得プロセスの作成時に、最小SCNと開始時SCNの差をできるかぎり小さくして、取得プロセスでスキャンされるREDOの量を最小限に抑えることをお薦めします。
ノート:
start_scn
パラメータのかわりにstart_time
パラメータを指定する場合、start_time
は特定のSCNに一致します。その場合、この項の情報は、指定したstart_time
に一致するSCNにも適用されます。
取得プロセスの動作は、これらのSCNの設定値、および取得プロセスがローカルであるかダウンストリームであるかによって異なる場合があります。
次の表に、SCNの設定値に対する取得プロセスの動作を示します。
first_scn設定 | start_scn設定 | 取得プロセスのタイプ | 説明 |
---|---|---|---|
|
|
ローカルまたはダウンストリーム |
新しい取得プロセスは、
これらのSCN設定で作成したローカル取得プロセスおよびダウンストリーム取得プロセスでは、取得プロセスの動作は同じになります。ただし、ローカル取得プロセスはソース・データベースで作成され、ダウンストリーム取得プロセスはダウンストリーム・データベースで作成されます。 |
|
|
ローカルまたはダウンストリーム |
これらのSCN設定で作成したローカル取得プロセスおよびダウンストリーム取得プロセスでは、取得プロセスの動作は同じになります。ただし、ローカル取得プロセスはソース・データベースで作成され、ダウンストリーム取得プロセスはダウンストリーム・データベースで作成されます。 |
|
|
ローカル |
次のいずれかの条件に該当した場合、新しい取得プロセスによって新しいLogMinerデータ・ディクショナリが作成されます。
いずれの場合も、取得プロセスの作成時に ただし、ローカル・ソース・データベースに、チェックポイントを取得した既存のローカル取得プロセスが1つ以上存在する場合、新しい取得プロセスは、既存のLogMinerデータ・ディクショナリをこの既存の取得プロセスと共有します。この場合、指定した開始時SCN以下の最小SCNを持つ取得プロセスが、1回以上正常に実行されている必要があります。また、処理中のトランザクションが存在する場合は、それらのトランザクションがコミットされた後に取得プロセスが作成されます。 ローカル・ソース・データベースに既存の取得プロセスが存在せず(チェックポイントを取得済の既存の取得プロセスが存在しない)、指定された開始時SCNがデータベースの現行のSCNより小さい場合は、エラーが発生します。 |
|
|
ダウンストリーム |
次のいずれかの条件に該当した場合、新しい取得プロセスによって新しいLogMinerデータ・ディクショナリが作成されます。
いずれの場合も、取得プロセスの作成時に ただし、ダウンストリーム・データベースで、1つ以上の既存の取得プロセスがチェックポイントを取得済で、ソース・データベースに対する変更を取得する場合、新しい取得プロセスは、既存のLogMinerデータ・ディクショナリを1つ以上の既存の取得プロセスと共有します。この場合、指定した開始時SCN以下の最小SCNを持つこれらの既存の取得プロセスのいずれかが、1回以上正常に実行されている必要があります。また、処理中のトランザクションが存在する場合は、それらのトランザクションがコミットされた後に取得プロセスが作成されます。 ソース・データベースに対する変更を取得する既存の取得プロセスがダウンストリーム・データベースに存在せず(チェックポイントを取得済の既存の取得プロセスが存在しない)、 |
|
|
ローカルまたはダウンストリーム |
動作は、 |
参照:
BUILD
プロシージャとLogMinerデータ・ディクショナリの詳細は、「BUILDプロシージャ」を参照してください。
ログ・ファイルの明示的な割当て
logfile_assignment
パラメータにexplicit
を指定した場合は、次の文を使用して、ダウンストリーム・データベースに手動でREDOログ・ファイルを追加します。
ALTER DATABASE REGISTER LOGICAL LOGFILE file_name FOR capture_process;
ここで、file_name
は追加するREDOログ・ファイルの名前であり、capture_process
はダウンストリーム・データベースでREDOログ・ファイルを使用する取得プロセスの名前です。capture_process
には、logminer_session_name
と同じ名前を必ず指定してください。REDOログ・ファイルは、ダウンストリーム・データベースが実行されるサイトに存在する必要があります。ダウンストリーム・データベースが実行されるサイトに手動でこのファイルを転送する場合は、DBMS_FILE_TRANSFER
パッケージ、FTPまたはその他の転送手法を使用する必要があります。
参照:
ALTER
DATABASE
文の詳細は、『Oracle Database SQL言語リファレンス』、REDOログ・ファイルの登録方法の詳細は、『Oracle Data Guard概要および管理』を参照してください。
43.3.9 CREATE_SYNC_CAPTUREプロシージャ
このプロシージャは、同期取得を作成します。
構文
DBMS_CAPTURE_ADM.CREATE_SYNC_CAPTURE( queue_name IN VARCHAR2, capture_name IN VARCHAR2, rule_set_name IN VARCHAR2, capture_user IN VARCHAR2 DEFAULT NULL);
パラメータ
表43-10 CREATE_SYNC_CAPTUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
同期取得が変更をエンキューするキューの名前。既存のキューを ノート: |
|
作成する同期取得の名前。 ノート: |
|
同期取得に対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を同期取得に指示するためのルールが含まれています。 既存のルール・セットを 指定したルール・セットが存在しない場合は、エラーが戻されます。
|
|
ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、同期取得は、同期取得のルール・セットを満たす変更を取得し、同期取得ルールに対して構成されているカスタム・ルールベースの変換を実行します。 取得ユーザーを設定できるのは、 ノート: 同期取得の取得ユーザーが 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
使用上のノート
CREATE_SYNC_CAPTURE
プロシージャは、同期取得の作成時に、変更を取得する各表の排他ロックを取得する必要があります。これらの表は、同期取得に対して指定されたルール・セットのルールによって決定されます。同期取得が変更を取得する表に未処理のトランザクションが存在する場合、このプロシージャはロックを取得できるまで待機します。
capture_user
パラメータでは、同期取得のルール・セットを満たす変更を取得するユーザーを指定します。このユーザーには、変更を取得するためのいくつかの権限が必要です。
また、取得ユーザーが次の権限を持っていることを確認する必要があります。
-
queue_name
パラメータに指定したキューのENQUEUE
権限 -
同期取得で使用されるルール・セットの
EXECUTE
権限 -
ルール・セットで使用されるすべてのルールベース変換ファンクションの
EXECUTE
権限
これらの権限は取得ユーザーに直接付与するか、またはロールによって付与できます。
また、取得ユーザーには、同期取得で実行されるルールベースの変換で起動されるすべてのパッケージ(Oracle提供パッケージを含む)に対するEXECUTE
権限を付与する必要があります。これらの権限は、取得ユーザーに直接付与する必要があります。ロールを通してこれらの権限を付与することはできません。
ノート:
取得ユーザーは、データベース・オブジェクトに対する権限を持っていなくても、データベース・オブジェクトに対する変更を取得できます。同期取得では、データベース・オブジェクトに対する変更をルールベースの変換ファンクションに渡すことができます。したがって、同期取得を構成するときは、セキュリティ問題に留意する必要があります。
43.3.10 DROP_CAPTUREプロシージャ
このプロシージャは、取得プロセスを削除します。
構文
DBMS_CAPTURE_ADM.DROP_CAPTURE( capture_name IN VARCHAR2, drop_unused_rule_sets IN BOOLEAN DEFAULT FALSE);
パラメータ
表43-11 DROP_CAPTUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除する取得プロセスの名前。既存の取得プロセス名を指定します。所有者を指定しないでください。 |
|
|
使用上のノート
このプロシージャには、次の使用上のノートが適用されます。
削除する前に停止する必要のある取得プロセス
取得プロセスを削除するには、その取得プロセスを事前に停止する必要があります。
DROP_CAPTUREプロシージャおよびルールに関する情報
このプロシージャを使用して取得プロセスを削除すると、その取得プロセスのルールに関する情報は、Oracle Replicationルールのデータ・ディクショナリ・ビューから削除されます。そのようなルールが取得プロセスのどのルール・セットに含まれているかに関係なく、ルールに関する情報は削除されます。
Oracle Replicationルールのデータ・ディクショナリ・ビューは次のとおりです。
-
ALL_STREAMS_GLOBAL_RULES
-
DBA_STREAMS_GLOBAL_RULES
-
ALL_STREAMS_SCHEMA_RULES
-
DBA_STREAMS_SCHEMA_RULES
-
ALL_STREAMS_TABLE_RULES
-
DBA_STREAMS_TABLE_RULES
-
DBA_STREAMS_RULES
43.3.11 INCLUDE_EXTRA_ATTRIBUTEプロシージャ
このプロシージャは、指定した取得プロセスまたは同期取得によって取得される論理変更レコード(LCR)に追加属性を記録するかどうかを指示します。
構文
DBMS_CAPTURE_ADM.INCLUDE_EXTRA_ATTRIBUTE( capture_name IN VARCHAR2, attribute_name IN VARCHAR2, include IN BOOLEAN DEFAULT TRUE);
パラメータ
表43-12 INCLUDE_EXTRA_ATTRIBUTEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取得プロセスまたは同期取得の名前。既存の取得プロセス名または同期取得名を指定します。所有者を指定しないでください。 |
|
取得プロセスまたは同期取得によって取得される論理変更レコード(LCR)に記録する属性名、またはLCRから除外する属性名を指定します。指定できる属性名は次のとおりです。
|
|
|
使用上のノート
一部の情報は、それらの情報が取得されるようにこのプロシージャを使用して指定しないかぎり、取得プロセスまたは同期取得によって取得されません。取得プロセスまたは同期取得によって取得された情報から特定の追加属性を除外する場合は、目的の属性を指定し、include
パラメータをFALSE
に設定します。
43.3.12 PREPARE_GLOBAL_INSTANTIATIONプロシージャ
このプロシージャは、別のデータベースで、データベース内のすべての表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。
取得プロセスを使用してデータベース内の表に対する変更を取得する場合は、このプロシージャによって、データベース内の表をインスタンス化する準備を行います。
このプロシージャは、インスタンス化のためにデータベース内の各オブジェクトの最小SCNを記録します。オブジェクトに対する最小SCNに続くSCNをオブジェクトのインスタンス化に使用できます。このプロシージャを実行すると、データベース内のすべての現行オブジェクトと将来のオブジェクトのインスタンス化が準備されます。
構文
DBMS_CAPTURE_ADM.PREPARE_GLOBAL_INSTANTIATION supplemental_logging IN VARCHAR2 DEFAULT 'KEYS', container IN VARCHAR2 DEFAULT 'CURRENT');
パラメータ
表43-13 PREPARE_GLOBAL_INSTANTIATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
使用上のノート
このプロシージャは、ソース・データベースで実行します。
データベースに対するすべての変更を取得プロセスによって取得する場合は、取得プロセスを構成した後、このプロシージャを使用してデータベース内の表をインスタンス化する準備を行ってください。
43.3.13 PREPARE_SCHEMA_INSTANTIATIONプロシージャ
このプロシージャは、別のデータベースで、スキーマ内のすべての表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。
スキーマ内の表に対する変更の取得に取得プロセスを使用する場合は、このプロシージャによって、スキーマ内の表をインスタンス化する準備を行います。
このプロシージャは、インスタンス化のためにスキーマ内の各オブジェクトの最小SCNを記録します。オブジェクトに対する最小SCNに続くSCNをオブジェクトのインスタンス化に使用できます。このプロシージャを実行すると、スキーマ内のすべての現行オブジェクトと将来のオブジェクトのインスタンス化が準備されます。
構文
DBMS_CAPTURE_ADM.PREPARE_SCHEMA_INSTANTIATION( schema_name IN VARCHAR2, supplemental_logging IN VARCHAR2 DEFAULT 'KEYS', container IN VARCHAR2 DEFAULT 'CURRENT');
パラメータ
表43-14 PREPARE_SCHEMA_INSTANTIATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
スキーマの名前。たとえば、 |
|
|
|
|
使用上のノート
このプロシージャは、ソース・データベースで実行します。スキーマに対するすべての変更を取得プロセスによって取得する場合は、取得プロセスを構成した後、このプロシージャを使用してスキーマ内の表をインスタンス化する準備を行ってください。
43.3.14 PREPARE_SYNC_INSTANTIATIONファンクション
このファンクションは、別のデータベースで、1つ以上の表をインスタンス化するために必要な同期化を行います。このファンクションは、インスタンス化のために準備された表(複数も可)に対して、準備システム変更番号(SCN)を戻します。
表に対する変更の取得に同期取得を使用する場合は、このファンクションによって、1つ以上の表をインスタンス化する準備を行います。
このファンクションは、インスタンス化のために各表の最小SCNを記録します(準備SCN)。オブジェクトに対する最小SCNに続くSCNをオブジェクトのインスタンス化に使用できます。
このファンクションはオーバーロードされています。table_names
パラメータは、一方のバージョンではVARCHAR2
データ・タイプであり、もう一方のバージョンではDBMS_UTILITY.UNCL_ARRAY
データ・タイプです。
構文
DBMS_CAPTURE_ADM.PREPARE_SYNC_INSTANTIATION( table_names IN VARCHAR2) RETURN NUMBER; DBMS_CAPTURE_ADM.PREPARE_SYNC_INSTANTIATION( table_names IN DBMS_UTILITY.UNCL_ARRAY) RETURN NUMBER;
パラメータ
表43-15 PREPARE_SYNC_INSTANTIATIONファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
いずれのバージョンのファンクションも、それぞれの表の名前を |
43.3.15 PREPARE_TABLE_INSTANTIATIONプロシージャ
このプロシージャは、別のデータベースで、表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます
表に対する変更の取得に取得プロセスを使用する場合は、このプロシージャによって表をインスタンス化する準備を行います。
このプロシージャは、インスタンス化のために表の最小SCNを記録します。オブジェクトに対する最小SCNに続くSCNをオブジェクトのインスタンス化に使用できます。
構文
DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION( table_name IN VARCHAR2, supplemental_logging IN VARCHAR2 DEFAULT 'KEYS', container IN VARCHAR2 DEFAULT 'CURRENT');
パラメータ
表43-16 PREPARE_TABLE_INSTANTIATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
|
|
使用上のノート
このプロシージャは、ソース・データベースで実行します。表に対するすべての変更を取得プロセスによって取得する場合は、取得プロセスを構成した後、このプロシージャを使用して表をインスタンス化する準備を行ってください。
43.3.16 SET_PARAMETERプロシージャ
このプロシージャは、取得プロセス・パラメータを指定した値に設定します。
構文
DBMS_CAPTURE_ADM.SET_PARAMETER( capture_name IN VARCHAR2, parameter IN VARCHAR2, value IN VARCHAR2 DEFAULT NULL);
パラメータ
表43-17 SET_PARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取得プロセスの名前。所有者を指定しないでください。 |
|
設定するパラメータの名前。 |
|
パラメータに設定する値。
|
取得プロセスのパラメータ
次の表に、取得プロセスのパラメータを示します。
表43-18 取得プロセスのパラメータ
パラメータ名 | 設定可能な値 | デフォルト | 説明 |
---|---|---|---|
|
|
|
DDLテキストの最大長(バイト単位)で、この長さまでのDDLを注釈用に選択できます(DDLに適用可能な場合)。指定したサイズよりも大きいサイズのDDLテキストには注釈が付きません。 デフォルトの DDLに注釈を付けると、Oracle GoldenGate内でのDDLのフィルタリングおよび変換を簡略化できます。 ノート: このパラメータは、Oracle GoldenGateを対象としています。このパラメータは、Oracle Replication環境やXStream環境では使用しないでください。 |
|
|
|
取得プロセスは、一部のデータ・タイプに対する変更をREDOログから取得することに完全には対応していません。IDキーLCRによって、XStream構成を使用してこれらの変更を取得し、XStreamクライアント・アプリケーションで処理できます。 ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」、IDキーLCRの詳細は、Oracle DatabaseのXStreamガイドを参照してください。 |
|
|
|
適用プロセスまたはXStreamインバウンド・サーバーでは、順序LCRを使用することで、接続先データベースの順序値に適切な値が使用されることを保証できます。増加する順序の場合、接続先の順序値は、ソース・データベースの順序値以上になります。減少する順序の場合、接続先の順序値は、ソース・データベースの順序値以下になります。 ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」、 |
|
|
|
取得プロセスは、再起動されると、最後に停止した時点から変更の取得を開始します。再起動された取得プロセスは、新しいセッション識別子を取得します。取得プロセスに関連付けられているプロセスも新しいセッション識別子を取得します。ただし、取得プロセス番号( |
|
|
|
このパラメータをローカル取得プロセスに対して設定しようとすると、エラーが発生します。 |
|
Oracle Replicationタグのカンマ区切りリスト |
|
取得プロセスによって、指定したOracle Replicationタグの1つでタグ付けされたDML変更を取得するかどうかを制御します。 取得プロセスがこれらの変更を取得するかどうかは、
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
トランザクション名のカンマ区切りリスト |
|
取得プロセスによって、指定したトランザクション名におけるDMLの変更を取得するかどうかを制御します。 取得プロセスがこれらの変更を取得するかどうかは、
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
ユーザー名のカンマ区切りリスト |
|
取得プロセスによって、指定したユーザーが行ったDMLの変更を取得するかどうかを制御します。 取得プロセスがこれらの変更を取得するかどうかは、 各ユーザー名の完全パターン一致を指定します。パターン一致では大/小文字が区別されます。たとえば、
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
ユーザーID値のカンマ区切りリスト |
|
取得プロセスによって、指定したユーザーが行ったデータ操作言語(DML)の変更を取得するかどうかを制御します。 取得プロセスがこれらの変更を取得するかどうかは、 ユーザーのユーザーIDを表示するには、
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
|
|
どちらの設定でも、取得プロセスのルール・セットが満たされる場合にのみ、取得プロセスによってDMLの変更が取得されます。 ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
|
|
どちらの設定でも、取得プロセスのルール・セットが満たされる場合にのみ、取得プロセスによってDMLの変更が取得されます。 ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
有効なトランザクションIDまたは |
|
取得プロセスがソース・データベースの指定したトランザクションを無視するように設定し、即座に有効化します。 取得プロセスでは、そのトランザクションに対応するすべての後続のLCRが排除されます。指定したトランザクションがソース・データベースで正常にコミットされると、接続先データベースは、かわりに
トランザクションを無視すると、ソース・データベースと接続先データベース間でデータ相違が発生する可能性があるため、このパラメータを設定する場合は注意してください。 複数のトランザクションを無視するには、 |
|
表の完全修飾名、 |
|
指定した表またはサポートされない表に対する変更を取得プロセスが取得しようとした場合の動作を制御します。 取得プロセスは、そのルール・セットに指示がある場合、サポートされない表に対する変更を取得しようとします。サポートされない表に対する変更を取得プロセスで取得しない場合、取得プロセスのルール・セットからサポートされない表が除外されていることを確認してください。 表名を指定すると、取得プロセスでは、その指定した表に対する変更が取得されません。表名は、
|
|
カンマで区切られた表またはスキーマ名のリスト |
|
指定した表またはスキーマにおける変更を取得に含めるように指示します。
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
|
|
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
有効なSCN値または |
|
取得プロセスは、指定された値以上のSCNを持つ変更レコードの取得前に無効化されます。
|
|
正の整数 |
|
取得プロセスのために特に割り当てられたシステム・グローバル領域(SGA)メモリーの量をMB単位で制御します。取得プロセスは、この制限値までメモリーを割り当てようとします。取得プロセスは、Oracle LogMinerを使用してREDOログ内の変更をスキャンします。 このメモリーは、取得プロセスのセッション期間中に割り当てられ、取得プロセスが無効になると解放されます。 ノート: データベース上のすべてのコンポーネントに割り当てられたシステムグローバル領域(SGA)メモリーは、合計で
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
負の整数、 |
|
元の取得プロセスのメッセージ作成時間とクローニングされた取得プロセスのメッセージ作成時間の間隔(秒)。 特に、クローニングされた取得プロセスと元の取得プロセスの このパラメータが関連するのは、取得プロセスにより取得された変更が2つ以上の適用プロセスにより適用され、 負の値を指定すると、自動マージは無効になります。
|
|
正の整数または |
|
取得プロセスは、指定した数のメッセージを取得した後停止します。
|
|
|
|
取得プロセスによって取得されるメッセージが自動的に追跡される頻度。 たとえば、このパラメータがデフォルト値の 自動メッセージ追跡に使用される追跡ラベルは
|
|
正の整数 |
|
取得プロセスのREDOログを同時に調査できるプリペアラ・サーバーの数。 取得プロセスは、リーダー・サーバー1台、プリペアラ・サーバー1台以上およびビルダー・サーバー1台で構成されます。プリペアラ・サーバーは、REDOログ内で検出された変更を同時に論理変更レコード(LCR)形式にフォーマットします。各リーダー・サーバー、プリペアラ・サーバーおよびビルダー・サーバーはプロセスであり、プリペアラ・サーバーの数は
ノート: このパラメータの値を変更すると、取得プロセスは自動的に停止し、再開します。 |
|
|
|
|
|
|
|
ストリームが取得プロセスから流れる他のストリームから自動的に分割される前にストリームが中断する間隔(秒)。ストリームが分割されると、取得プロセス、キューおよび伝播がクローニングされます。 この場合、ストリームは、取得プロセスから適用に流れる論理変更レコード(LCR)のフローです。ストリームは、取得プロセスに取得されたLCRが適用プロセスに達することができないとき、中断します。たとえば、関連する伝播または適用プロセスが無効にされると中断します。 このパラメータが関連するのは、取得プロセスにより取得された変更が2つ以上の適用プロセスにより適用された場合のみです。
このパラメータは、 |
|
|
|
同じ取得プロセスの別のインスタンス化が終了するのを待機する最大秒数。同じ取得プロセスの別のインスタンス化がこの時間内に終了しない場合、取得プロセスは開始しません。このパラメータが有用になるのは、取得プロセスを手動で起動する場合に限られます。
|
|
正の整数または |
|
取得プロセスは、開始してから指定秒数が経過した後、可能なかぎり早く停止します。
|
|
|
|
Oracleサポート・サービスから指示がないかぎり、このパラメータは設定しないでください。 |
|
|
XStreamの場合は |
ノート: このパラメータは、XStreamを対象としています。XStream最適化を 関連項目: このパラメータの詳細は、「使用上のノート」を参照してください。 |
|
|
|
メッセージには、取得プロセスの停止理由が示されます。 |
|
|
|
1つの取得プロセスでアウトバウンド・サーバーと適用プロセスの両方にLCRを送信することはできません。 アウトバウンド・サーバーがその取得プロセスとは異なるデータベースで実行されるXStream構成では、このパラメータを ノート: XStreamを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。Oracle DatabaseのXStreamガイドを参照してください。 |
使用上のノート
SET_PARAMETER
プロシージャには、次の使用上のノートが適用されます。
新しいパラメータ設定の有効化が遅延する可能性
パラメータ値を変更したとき、パラメータの新しい値が有効になるまでに時間がかかる場合があります。
正の整数として解釈されるパラメータ
正の整数として解釈されるすべてのパラメータについて、設定可能な最大値は4,294,967,295
です。適用可能な場合、比較的大きい値にはINFINITE
を指定してください。
システム変更番号(SCN)設定のあるパラメータ
SCN設定が必要なパラメータについては、任意の有効なSCN値を指定できます。
XStream最適化を必要とするパラメータ
取得プロセスで次のパラメータが使用されるのは、取得プロセスがXStreamアウトバウンド・サーバーに論理変更レコード(LCR)を送信している場合、またはXStream最適化がOracle Replicationコンポーネントで有効化されている場合に限られます。
-
capture_idkey_objects
-
capture_sequence_nextval
-
excludetag
-
excludetrans
-
excludeuser
-
excludeuserid
-
getapplops
-
getreplicates
-
include_objects
-
inline_lob_optimization
-
max_sga_size
-
use_rac_services
DBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMS
プロシージャを使用して、Oracle Replicationに対するXStream最適化を有効化します。DBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMS
プロシージャによってXStream最適化が有効化されていない場合に、これらのパラメータのいずれかがデフォルト値以外の値に設定されると、取得プロセスでエラーが発生します。
XStream最適化がOracle Replicationで有効化され、capture_idkey_objects
パラメータがY
に設定されている場合、取得プロセスによってIDキーLCRを取得できます。IDキーLCRには、行の変更に関するすべての列が含まれるわけではありません。かわりに、変更された行のROWID、表の行を識別するためのキー列のグループ、および取得プロセスによってサポートされる表のスカラー列のデータが含まれます。適用プロセスは、IDキーLCRの使用可能な情報を使用してこれらの変更を適用できます。
取得プロセスによってIDキーLCRが取得されるデータベース・オブジェクトを確認するには、ソース・データベースに対して次の問合せを実行します。
SELECT OWNER, OBJECT_NAME FROM DBA_XSTREAM_OUT_SUPPORT_MODE WHERE SUPPORT_MODE='ID KEY';
ノート:
XStreamを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。Oracle DatabaseのXStreamガイドを参照してください。
参照:
IDキーLCRの詳細は、Oracle DatabaseのXStreamガイドを参照してください。
XStreamまたはOracle GoldenGate統合取得構成
XStreamまたはOracle GoldenGate統合取得構成では、次のパラメータで、取得プロセスがどの変更内容を取得するかを制御できます。
-
capture_idkey_objects
-
capture_sequence_nextval
-
excludetag
-
excludetrans
-
excludeuser
-
excludeuserid
-
getapplops
-
getreplicates
-
include_objects
-
inline_lob_optimization
-
max_sga_size
-
use_rac_services
これらのパラメータを設定すると、変更の循環を回避できます。変更の循環では、変更が発生場所であるデータベースに再送されます。通常、レプリケーション環境では、変更の循環を回避する必要があります。同じ変更がデータベースに対して複数回適用されないためです。
双方向のレプリケーションが実行されるXStreamまたはOracle GoldenGate統合取得構成では、GoldenGate Replicatプロセスが取得プロセスのソース・データベースで実行されます。そのため、GoldenGate Replicatで加えた変更は、REDOログに記録されます。
統合構成で双方向のレプリケーションを実行するときには、変更の循環を回避するために、Oracle GoldenGate Replicatプロセスで加えた変更を取得プロセスで取得しないでください。この目標を達成するには、getapplops
パラメータとgetreplicates
パラメータのデフォルトの設定を使用した後、Replicatプロセスの実行ユーザーが加えた変更を除外します。これらの変更を除外するには、このユーザーをexcludeuserid
またはexcludeuser
パラメータで指定します。通常、Oracle GoldenGate Replicatプロセスの実行ユーザーはXStream管理者です。
一部の構成では、アプリケーションまたはReplicatプロセスによって加えられた変更の取得または除外が目標の場合があります。たとえば、レプリケーション環境の中間データベースでは、アプリケーション変更やReplicatプロセス変更を含む、データベースへのすべての変更が取得された後、これらの変更を別の宛先データベースに送信することがあります。
表43-19は、少なくとも1つの除外パラメータがNULL
以外の場合の取得プロセスの動作を示しています。
表43-19 少なくとも1つの除外パラメータがNULL以外の場合の動作
getapplops設定 | getreplicates設定 | 説明 |
---|---|---|
|
|
取得プロセスによって、すべてのDML変更が取得されます。 |
|
|
取得プロセスによって、 取得プロセスによって、 取得プロセスによって、 |
|
|
取得プロセスによって、 取得プロセスによって、 取得プロセスによって、 |
|
|
取得プロセスによって、DML変更は取得されません。 |
表43-19は、すべての除外パラメータがNULL
に設定されている場合の取得プロセスの動作を示しています。
表43-20 すべての除外パラメータがNULLに設定されている場合の動作
getapplops設定 | getreplicates設定 | 説明 |
---|---|---|
|
|
取得プロセスによって、すべてのDML変更が取得されます。 |
|
|
取得プロセスによって、すべてのDML変更が取得されます。 |
|
|
取得プロセスによって、DML変更は取得されません。 |
|
|
取得プロセスによって、DML変更は取得されません。 |
詳細は、次のリンクにあるOracle GoldenGate製品のドキュメントを参照してください。
http://docs.oracle.com/cd/E15881_01/index.htm
ノート:
取得プロセスでは、そのルール・セットを使用して変更を評価する前に、前述のパラメータを使用して変更が評価されます。つまり、取得プロセスのルール・セットに照らして変更を評価する前に、その変更が取り消される可能性があります。また、これらのパラメータの設定に関係なく、取得プロセスでは、変更がルール・セットを満たしている場合にのみ取得されます。
43.3.17 START_CAPTUREプロシージャ
このプロシージャは、取得プロセスを開始します。取得プロセスは、REDOログを調査し、取り出したREDO情報を関連キューにエンキューします。
開始ステータスは永続的に記録されます。したがって、ステータスがENABLED
の場合、取得プロセスはデータベース・インスタンスの起動時に開始されます。
取得プロセスはバックグラウンドのOracleプロセスであり、接頭辞c
が付加されます。
DBMS_AQADM.START_QUEUE
およびDBMS_AQADM.STOP_QUEUE
のエンキューとデキューの状態は、取得プロセスの開始ステータスには影響を与えません。
構文
DBMS_CAPTURE_ADM.START_CAPTURE( capture_name IN VARCHAR2);
パラメータ
表43-21 START_CAPTUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取得プロセスの名前。所有者を指定しないでください。 取得プロセスは、LogMinerを使用してREDO情報内の変更を取得します。 |
使用上のノート
取得プロセスのステータスは永続的に記録されます。したがって、ステータスがENABLED
の場合、取得プロセスはデータベース・インスタンスの起動時に開始されます。取得プロセス(c
nnn
)はOracleバックグラウンド・プロセスです。
43.3.18 STOP_CAPTUREプロシージャ
このプロシージャは、取得プロセスを停止してREDOログの調査を中断します。
構文
DBMS_CAPTURE_ADM.STOP_CAPTURE( capture_name IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE);
パラメータ
表43-22 STOP_CAPTUREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取得プロセスの名前。 |
|
|
使用上のノート
このプロシージャには、次の使用上のノートが適用されます。
-
取得プロセスのステータスは永続的に記録されます。したがって、ステータスが
DISABLED
またはABORTED
の場合、取得プロセスはデータベース・インスタンスの起動時に開始されません。 -
取得プロセスは、
CP
nn
(nn
に含まれるのは文字および数字)という形式の名前を持つOracleバックグラウンド・プロセスです。 -
DBMS_AQADM.START_QUEUE
およびDBMS_AQADM.STOP_QUEUE
のエンキューとデキューの状態は、取得プロセスの停止ステータスには影響を与えません。