32 DBMS_CAPTURE_ADM

Oracle Streamsパッケージの1つであるDBMS_CAPTURE_ADMパッケージでは、取得プロセスの開始、停止および構成を実行するためのサブプログラムが提供されています。取得した変更のソースはREDOログで、取得した変更のリポジトリはキューです。

参照:

このパッケージおよび取得プロセスの詳細は、『Oracle Streams概要および管理』および『Oracle Streamsレプリケーション管理者ガイド』を参照してください。

この章のトピックは、次のとおりです:

32.1 DBMS_CAPTURE_ADMの概要

このパッケージは、取得プロセスまたは同期取得を開始、停止および構成するインタフェースを提供します。このパッケージには、データベース・オブジェクトをインスタンス化する準備を行うためのサブプログラムが含まれます。

取得プロセスは、マルチテナント・コンテナ・データベース(CDB)のXStream構成で使用できます。CDBは、ユーザーが作成した0以上のプラガブル・データベース(PDB)を含むOracle Databaseです。

参照:

CDBおよびPDBの詳細は、『Oracle Database概要』を参照してください。

32.2 DBMS_CAPTURE_ADMのセキュリティ・モデル

DBMS_CAPTURE_ADMセキュリティは、2つのいずれかの方法を使用して制御できます。

  • 選択したユーザーまたはロールに、このパッケージのEXECUTEを付与する方法

  • 選択したユーザーまたはロールに、EXECUTE_CATALOG_ROLEを付与する方法

パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE権限を直接付与する必要があります。ロールを通して付与することはできません。

DBMS_CAPTURE_ADMパッケージを使用してOracle Streams構成を管理する場合、ユーザーには、Oracle Streams管理者の権限を付与する必要があります。

DBMS_CAPTURE_ADMパッケージを使用してXStream構成を管理する場合、ユーザーには、XStream管理者の権限を付与する必要があります。

注意:

  • ユーザーには、このパッケージ内のサブプログラムを使用して複数の管理タスク(取得ユーザーの設定など)を実行するための追加の権限を付与する必要があります。サブプログラムのために追加の権限が必要な場合、その権限は、サブプログラムを説明する項に記載されています。

  • XStreamを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。Oracle DatabaseのXStreamガイドを参照してください。

参照:

32.3 DBMS_CAPTURE_ADMサブプログラムの要約

この表は、DBMS_CAPTURE_ADMサブプログラムを示し、簡単に説明しています。

表32-1 DBMS_CAPTURE_ADMパッケージのサブプログラム

サブプログラム 説明

ABORT_GLOBAL_INSTANTIATIONプロシージャ

PREPARE_GLOBAL_INSTANTIATIONPREPARE_SCHEMA_INSTANTIATIONおよびPREPARE_TABLE_INSTANTIATIONプロシージャの実行効果を元に戻します。

ABORT_SCHEMA_INSTANTIATIONプロシージャ

PREPARE_SCHEMA_INSTANTIATIONおよびPREPARE_TABLE_INSTANTIATIONプロシージャの実行効果を元に戻します。

ABORT_SYNC_INSTANTIATIONプロシージャ

PREPARE_SYNC_INSTANTIATIONプロシージャの実行効果を元に戻します。

ABORT_TABLE_INSTANTIATIONプロシージャ

PREPARE_TABLE_INSTANTIATIONプロシージャの実行効果を元に戻します。

ALTER_CAPTUREプロシージャ

取得プロセスを変更します。

ALTER_SYNC_CAPTUREプロシージャ

同期取得を変更します。

BUILDプロシージャ

現行のデータベースのデータ・ディクショナリをREDOログに抽出し、すべての主キー列と一意キー列についてデータベースのサプリメンタル・ロギングを自動的に指定します。

CREATE_CAPTUREプロシージャ

取得プロセスを作成します。

CREATE_SYNC_CAPTUREプロシージャ

同期取得を作成します。

DROP_CAPTUREプロシージャ

取得プロセスを削除します。

INCLUDE_EXTRA_ATTRIBUTEプロシージャ

指定した取得プロセスまたは同期取得によって取得される論理変更レコード(LCR)に追加属性を記録するかどうかを指示します。

PREPARE_GLOBAL_INSTANTIATIONプロシージャ

別のデータベースで、データベース内のすべての表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。

PREPARE_SCHEMA_INSTANTIATIONプロシージャ

別のデータベースで、スキーマ内のすべての表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。

PREPARE_SYNC_INSTANTIATIONファンクション

別のデータベースで、1つ以上の表をインスタンス化するために必要な同期化を行い、準備SCNを戻します。

PREPARE_TABLE_INSTANTIATIONプロシージャ

別のデータベースで、表をインスタンス化するために必要な同期化を行い、表内のキー列またはすべての列でサプリメンタル・ロギングを有効にできます。

SET_PARAMETERプロシージャ

取得プロセス・パラメータを指定した値に設定します。

START_CAPTUREプロシージャ

取得プロセスを開始します。取得プロセスは、REDOログを調査し、取り出したREDO情報を関連キューにエンキューします。

STOP_CAPTUREプロシージャ

取得プロセスを停止してREDOログの調査を中断します。

注意:

特に指定がないかぎり、すべてのサブプログラムがコミットされます。

32.3.1 ABORT_GLOBAL_INSTANTIATIONプロシージャ

このプロシージャは、PREPARE_GLOBAL_INSTANTIATIONPREPARE_SCHEMA_INSTANTIATIONおよびPREPARE_TABLE_INSTANTIATIONプロシージャの実行効果を元に戻します。

具体的には、このプロシージャは次の操作を実行します。

  • データベース、スキーマおよび表のインスタンス化に関連するデータ・ディクショナリ情報を削除します。

  • PREPARE_GLOBAL_INSTANTIATIONPREPARE_SCHEMA_INSTANTIATIONおよびPREPARE_TABLE_INSTANTIATIONプロシージャで有効にしたサプリメンタル・ロギングを削除します。

構文

DBMS_CAPTURE_ADM.ABORT_GLOBAL_INSTANTIATION(
   container    IN  VARCHAR2  DEFAULT 'CURRENT');

パラメータ

表32-2 ABORT_GLOBAL_INSTANTIATIONプロシージャのパラメータ

パラメータ 説明

container

CURRENTALLまたはpdb_nameのいずれか。

CURRENTを指定すると、現在のコンテナのサプリメンタル・ロギングが削除されます。

ALLを指定すると、現在のCDBのすべてのコンテナでサプリメンタル・ロギングが削除されます。

pdb_nameを指定すると、指定したPDBのサプリメンタル・ロギングが削除されます。

ALLpdb_nameは、プロシージャをルートから起動する場合にのみ有効です。

32.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');

パラメータ

表32-3 ABORT_SCHEMA_INSTANTIATIONプロシージャのパラメータ

パラメータ 説明

schema_name

準備中のインスタンス化の結果を元に戻すスキーマの名前。

container

CURRENTALLまたはpdb_nameのいずれか。

CURRENTを指定すると、現在のコンテナのサプリメンタル・ロギングが削除されます。

ALLを指定すると、現在のCDBのすべてのコンテナでサプリメンタル・ロギングが削除されます。

pdb_nameを指定すると、指定したPDBのサプリメンタル・ロギングが削除されます。

ALLpdb_nameは、プロシージャをルートから起動する場合にのみ有効です。

32.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);

パラメータ

表32-4 ABORT_SYNC_INSTANTIATIONプロシージャのパラメータ

パラメータ 説明

table_names

table_namesパラメータがVARCHAR2データ・タイプの場合は、準備中のインスタンス化の結果を元に戻す表のカンマ区切りリスト。エントリ間に空白を挿入しないでください。

table_namesパラメータがDBMS_UTILITY.UNCL_ARRAYデータ・タイプの場合は、準備中のインスタンス化の結果を元に戻す表の名前が含まれているPL/SQL連想配列を指定します。最初の表名は位置1、2番目は位置2、以降同様です。表の最後をNULLにする必要はありません。

いずれのバージョンのプロシージャも、それぞれの表の名前を[schema_name.]table_nameの形式で指定します。たとえば、hr.employeesのように指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

32.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');

パラメータ

表32-5 ABORT_TABLE_INSTANTIATIONプロシージャのパラメータ

パラメータ 説明

table_name

[schema_name.]object_nameの形式で指定した、準備中のインスタンス化の効果を元に戻す表の名前。たとえば、hr.employeesのように指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

container

CURRENTALLまたはpdb_nameのいずれか。

CURRENTを指定すると、現在のコンテナのサプリメンタル・ロギングが削除されます。

ALLを指定すると、現在のCDBのすべてのコンテナでサプリメンタル・ロギングが削除されます。

pdb_nameを指定すると、指定したPDBのサプリメンタル・ロギングが削除されます。

ALLpdb_nameは、プロシージャをルートから起動する場合にのみ有効です。

32.3.5 ALTER_CAPTUREプロシージャ

このプロシージャは、取得プロセスを変更します。

参照:

取得プロセスの変更の詳細は、『Oracle Streams概要および管理』を参照してください。

構文

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);

パラメータ

表32-6 ALTER_CAPTUREプロシージャのパラメータ

パラメータ 説明

capture_name

変更する取得プロセスの名前。既存の取得プロセス名を指定する必要があります。所有者を指定しないでください。

rule_set_name

取得プロセスに対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を取得プロセスに指示するためのルールが含まれています。

取得プロセスのポジティブ・ルール・セットを変更するには、既存のルール・セットを[schema_name.]rule_set_nameの形式で指定します。たとえば、hrスキーマに含まれるjob_capture_rulesという名前のポジティブ・ルール・セットを指定するには、hr.job_capture_rulesと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

指定したルール・セットが存在しない場合は、エラーが戻されます。ルール・セットを作成し、そのルール・セットにルールを追加するには、DBMS_STREAMS_ADMパッケージまたはDBMS_RULE_ADMパッケージを使用します。

NULLを指定し、remove_rule_setパラメータをFALSEに設定すると、既存のすべてのポジティブ・ルール・セットが保持されます。NULLを指定し、remove_rule_setパラメータをTRUEに設定すると、既存のすべてのポジティブ・ルール・セットが削除されます。

関連項目: 取得プロセスによって取得可能な変更の詳細は、『Oracle Streams概要および管理』を参照してください。

remove_rule_set

TRUEに設定すると、指定した取得プロセスに対するポジティブ・ルール・セットが削除されます。取得プロセスのネガティブ・ルール・セットが存在しないときに、取得プロセスに対するポジティブ・ルール・セットを削除すると、取得プロセスは、データベース内のすべてのオブジェクトに対してサポートされているすべての変更を取得しますが、SYSスキーマとSYSTEMスキーマ内のデータベース・オブジェクトは除きます。

取得プロセスのネガティブ・ルール・セットが存在するときに、取得プロセスに対するポジティブ・ルール・セットを削除すると、取得プロセスは、ネガティブ・ルール・セットによって破棄されない、サポートされているすべての変更を取得します。

FALSEに設定すると、指定した取得プロセスに対するポジティブ・ルール・セットが保持されます。

rule_set_nameパラメータがNULL以外の場合、このパラメータがFALSEに設定されていることを確認してください。

start_scn

データベースの有効なSCNのうち、取得プロセスによる変更の取得の開始時に使用するSCN(開始時SCN)。SCN値は、取得プロセスの最初のSCN値以上にする必要があります。また、開始時SCNを再設定する前に、取得プロセスを停止する必要があります。

無効なSCNが指定された場合または取得プロセスが有効である場合に、エラーが戻されます。

use_database_link

TRUEに設定すると、取得プロセスに関する管理タスクを実行するために、ダウンストリーム・データベース上の取得プロセスにおいて、ソース・データベースに対するデータベース・リンクが使用されます。データベース・リンクを現在使用していない取得プロセスでデータベース・リンクの使用を開始する場合は、このパラメータをTRUEに設定してください。その場合は、ソース・データベースのグローバル名と同じ名前を持つデータベース・リンクが、ダウンストリーム・データベースに存在する必要があります。

FALSEに設定すると、取得プロセスがソース・データベース上で実行されるか、ダウンストリーム・データベース上の取得プロセスにおいて、ソース・データベースに対するデータベース・リンクが使用されません。データベース・リンクを現在使用している取得プロセスでデータベース・リンクの使用を停止する場合は、このパラメータをFALSEに設定してください。その場合は、ソース・データベースのデータベース・オブジェクトに関連する取得プロセス・ルールの追加または変更を行うときに、それらのデータベース・オブジェクトを手動でインスタンス化する準備を行う必要があります。

NULLに設定すると、現行のパラメータ値は変更されず、取得プロセスの動作も変わりません。

first_scn

取得プロセスで変更を取得できるREDOログの最小SCN。取得プロセスに対して新たに最小(最初の)SCNを指定する場合、その最小SCNは次の条件を満たす必要があります。

  • 取得プロセスの現在の先頭SCNより大きい値である必要があります。

  • 取得プロセスの現在の適用済SCN以下の値である必要があります。ただし、取得プロセスに現在適用されているSCNがゼロである場合は、この条件を満たす必要はありません。

  • 取得プロセスの必須チェックポイントSCN以下の値である必要があります。

指定した最小SCNがこれら3つの条件を満たさない場合は、エラーが戻されます。これらのすべての条件を満たすSCN値を決定する方法は、「使用上の注意」を参照してください。

最小(最初の)SCNを変更すると、以前のSCNからの取得プロセス再開に必要な情報が取得プロセスのLogMinerデータ・ディクショナリからパージされます。LogMinerデータ・ディクショナリの詳細は、「BUILDプロシージャ」を参照してください。

指定された最小SCNが取得プロセスに対する現行の開始時SCNより大きい場合は、現行の開始時SCNが自動的に新しい最小SCNに変更されます。

negative_rule_set_name

取得プロセスに対するネガティブ・ルール・セットの名前。ネガティブ・ルール・セットには、変更の破棄を取得プロセスに指示するためのルールが含まれています。

取得プロセスのネガティブ・ルール・セットを変更するには、既存のルール・セットを[schema_name.]rule_set_nameの形式で指定します。たとえば、hrスキーマに含まれるneg_capture_rulesという名前のネガティブ・ルール・セットを指定するには、hr.neg_capture_rulesと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

指定したルール・セットが存在しない場合は、エラーが戻されます。ルール・セットを作成し、そのルール・セットにルールを追加するには、DBMS_STREAMS_ADMパッケージまたはDBMS_RULE_ADMパッケージを使用します。

NULLを指定し、remove_negative_rule_setパラメータをFALSEに設定すると、既存のすべてのネガティブ・ルール・セットが保持されます。NULLを指定し、remove_negative_rule_setパラメータをTRUEに設定すると、既存のすべてのネガティブ・ルール・セットが削除されます。

1つの取得プロセスに対してポジティブ・ルール・セットとネガティブ・ルール・セットの両方を指定した場合は、常にネガティブ・ルール・セットが最初に評価されます。

remove_negative_rule_set

TRUEに設定すると、指定した取得プロセスに対するネガティブ・ルール・セットが削除されます。取得プロセスのポジティブ・ルール・セットが存在しないときに、取得プロセスに対するネガティブ・ルール・セットを削除すると、取得プロセスは、データベース内のすべてのオブジェクトに対してサポートされているすべての変更を取得しますが、SYSスキーマとSYSTEMスキーマ内のデータベース・オブジェクトは除きます。

取得プロセスのポジティブ・ルール・セットが存在するときに、取得プロセスに対するネガティブ・ルール・セットを削除すると、取得プロセスは、ポジティブ・ルール・セットによって破棄されない、サポートされているすべての変更を取得します。

FALSEに設定すると、指定した取得プロセスに対するネガティブ・ルール・セットは保持されます。

negative_rule_set_nameパラメータがNULL以外の場合、このパラメータがFALSEに設定されていることを確認してください。

capture_user

ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、取得プロセスは、取得プロセスのルール・セットを満たす変更を取得し、取得プロセス・ルールに対して構成されているカスタム・ルールベースの変換を実行します。NULLの場合、取得ユーザーは変更されません。

取得ユーザーを変更するには、ALTER_CAPTUREプロシージャをコールするユーザーにDBAロールを付与する必要があります。capture_userSYSに設定できるのは、SYSユーザーに限られています。

取得ユーザーを変更すると、取得プロセスで使用されるキューに対するエンキュー権限が新しい取得ユーザーに付与され、その取得ユーザーがキューの保護キュー・ユーザーとして構成されます。また、取得ユーザーが次の権限を持っていることを確認する必要があります。

  • 取得プロセスで使用されるルール・セットのEXECUTE権限

  • ルール・セットで使用されるすべてのルールベース変換ファンクションのEXECUTE権限

これらの権限は取得ユーザーに直接付与するか、またはロールによって付与できます。

また、取得ユーザーには、取得プロセスによって実行されるルールベース変換で起動されるすべてのパッケージ(オラクル社が提供するパッケージを含む)のEXECUTE権限が付与されている必要があります。これらの権限は、取得ユーザーに直接付与する必要があります。ロールを通して付与することはできません。

このパラメータの値を変更すると、取得プロセスは自動的に停止し、再開します。

注意: 取得プロセスの取得ユーザーがDROP USER . . . CASCADEを使用して削除されると、取得プロセスも自動的に削除されます。

checkpoint_retention_time

取得プロセスで自動的にパージが行われるまでチェックポイントが保存される日数、またはチェックポイントを自動的にパージしない場合は、DBMS_CAPTURE_ADM.INFINITEに設定します。NULLに設定すると、チェックポイントの保存期間は変更されません。

日数を指定すると、チェックポイントが取得されてから指定した日数後に、取得プロセスによってチェックポイントがパージされます。小数値を使用して時間単位で指定することもできます。たとえば、6時間は、.25のように指定します。

チェックポイントがパージされると、そのチェックポイントに対応するアーカイブREDOログ・ファイルのLogMinerデータ・ディクショナリ情報もパージされ、取得プロセスのfirst_scnは、次のアーカイブREDOログ・ファイルの最初の変更に対応するSCN値に再設定されます。

関連項目: チェックポイントの保存期間の詳細は、『Oracle Streams概要および管理』を参照してください。

start_time

取得プロセスによる変更の取得の開始時点となる有効な時間。開始時間を再設定する前に、取得プロセスを停止する必要があります。

無効な時間が指定された場合または取得プロセスが有効である場合に、エラーが戻されます。

start_scnパラメータとstart_timeパラメータは、両方同時には指定できません。

使用上の注意

取得プロセスの最初の(最小)SCNを変更する場合は、first_scnパラメータで説明した条件を満たすSCN値を指定する必要があります。

データベース内の個々の取得プロセスについて、最初のSCN、適用されているSCNおよび必要とされるチェックポイントSCNの現行の値を確認するには、次のような問合せを使用します。

SELECT CAPTURE_NAME, FIRST_SCN, APPLIED_SCN, REQUIRED_CHECKPOINT_SCN
   FROM DBA_CAPTURE;

32.3.6 ALTER_SYNC_CAPTUREプロシージャ

このプロシージャは、同期取得を変更します。

参照:

取得プロセスの変更の詳細は、『Oracle Streams概要および管理』を参照してください。

構文

DBMS_CAPTURE_ADM.ALTER_SYNC_CAPTURE(
   capture_name   IN  VARCHAR2,
   rule_set_name  IN  VARCHAR2  DEFAULT NULL,
   capture_user   IN  VARCHAR2  DEFAULT NULL);

パラメータ

表32-7 ALTER_SYNC_CAPTUREプロシージャのパラメータ

パラメータ 説明

capture_name

変更する同期取得の名前。既存の同期取得名を指定する必要があります。所有者を指定しないでください。

rule_set_name

同期取得に対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を同期取得に指示するためのルールが含まれています。

同期取得のルール・セットを変更するには、既存のルール・セットを[schema_name.]rule_set_nameの形式で指定します。たとえば、strmadminスキーマに含まれるsync_cap_rulesという名前のポジティブ・ルール・セットを指定するには、strmadmin.sync_cap_rulesと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

指定したルール・セットが存在しない場合は、エラーが戻されます。DBMS_STREAMS_ADMパッケージを使用して作成されたルール・セットを指定する必要があります。

NULLの場合、ルール・セットは変更されません。

関連項目: 同期取得によって取得可能な変更の詳細は、『Oracle Streams概要および管理』を参照してください。

capture_user

ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、同期取得は、同期取得のルール・セットを満たす変更を取得し、同期取得ルールに対して構成されているカスタム・ルールベースの変換を実行します。NULLの場合、取得ユーザーは変更されません。

取得ユーザーを変更するには、ALTER_SYNC_CAPTUREプロシージャをコールするユーザーにDBAロールを付与する必要があります。capture_userSYSに設定できるのは、SYSユーザーに限られています。

取得ユーザーを変更すると、同期取得で使用されるキューに対するエンキュー権限が新しい取得ユーザーに付与され、その取得ユーザーがキューの保護キュー・ユーザーとして構成されます。なお、取得ユーザーには次の権限が必要です。

  • 同期取得で使用されるルール・セットのEXECUTE権限

  • ルール・セットで使用されるすべてのルールベース変換ファンクションのEXECUTE権限

これらの権限は取得ユーザーに直接付与するか、またはロールによって付与できます。

また、取得ユーザーには、同期取得で実行されるルールベースの変換で起動されるすべてのパッケージ(Oracle提供パッケージを含む)に対するEXECUTE権限を付与する必要があります。これらの権限は、取得ユーザーに直接付与する必要があります。ロールを通して付与することはできません。

使用上の注意

同期取得の取得ユーザーがDROP USER . . . CASCADEを使用して削除されると、同期取得も自動的に削除されます。

32.3.7 BUILDプロシージャ

このプロシージャは、現行のデータベースのデータ・ディクショナリをREDOログに抽出し、SQL文ALTER DATABASE ADD SUPPLEMENTAL LOG DATAを実行して、データベースのサプリメンタル・ロギングを自動的に指定します。

このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンではOUTパラメータfirst_scnを使用しますが、もう一方のバージョンでは使用しません。

構文

DBMS_CAPTURE_ADM.BUILD(
   first_scn OUT NUMBER);

DBMS_CAPTURE_ADM.BUILD;

パラメータ

表32-8 BUILDプロシージャのパラメータ

パラメータ 説明

first_scn

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プロシージャはルートから実行する必要があります。

32.3.8 CREATE_CAPTUREプロシージャ

このプロシージャは、取得プロセスを作成します。

参照:

構文

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');

パラメータ

表32-9 CREATE_CAPTUREプロシージャのパラメータ

パラメータ 説明

queue_name

取得プロセスが変更をエンキューするキューの名前。既存のキューを[schema_name.]queue_nameの形式で指定する必要があります。たとえば、hrスキーマ内のstreams_queueという名前のキューを指定するには、hr.streams_queueと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

注意: queue_nameの設定は、取得プロセスの作成後には変更できません。

capture_name

作成する取得プロセスの名前。NULL指定は許可されていません。所有者を指定しないでください。

注意: capture_nameの設定は、取得プロセスの作成後には変更できません。

rule_set_name

取得プロセスに対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を取得プロセスに指示するためのルールが含まれています。

取得プロセスに対してポジティブ・ルール・セットを使用する場合は、既存のルール・セットを[schema_name.]rule_set_nameの形式で指定する必要があります。たとえば、hrスキーマに含まれるjob_capture_rulesという名前のポジティブ・ルール・セットを指定するには、hr.job_capture_rulesと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

指定したルール・セットが存在しない場合は、エラーが戻されます。ルール・セットを作成し、そのルール・セットにルールを追加するには、DBMS_STREAMS_ADMパッケージまたはDBMS_RULE_ADMパッケージを使用します。

NULLを指定すると、取得プロセスに対するネガティブ・ルール・セットが指定されない場合、データベース内のすべてのオブジェクトに対してサポートされているすべての変更を取得します。ただし、SYSスキーマとSYSTEMスキーマ内のデータベース・オブジェクトは除きます。

取得プロセスのネガティブ・ルール・セットが存在するときにNULLを指定すると、取得プロセスは、ネガティブ・ルール・セットによって破棄されない、サポートされているすべての変更を取得します。

関連項目: 取得プロセスによって取得可能な変更の詳細は、『Oracle Streams概要および管理』を参照してください。

start_scn

データベースの有効なSCNのうち、取得プロセスによる変更の取得の開始時に使用するSCN(開始時SCN)。

無効なSCNが指定された場合はエラーが戻されます。

start_scnパラメータとstart_timeパラメータは、両方同時には指定できません。

関連項目: start_scnパラメータの設定の詳細は、「使用上の注意」を参照してください。

source_database

ソース・データベースのグローバル名。ソース・データベースは、取得対象の変更が発生したデータベースです。

ドメイン名を指定しない場合は、自動的にドメイン名がデータベース名に追加されます。たとえば、ドメイン名が.EXAMPLE.COMの場合にDBS1を指定すると、自動的にDBS1.EXAMPLE.COMが指定されます。

このパラメータにNULL、または現行のデータベースのグローバル名と同じ名前を指定した場合は、ローカル取得プロセスとみなされ、use_database_linkfirst_scnにはデフォルト値のみを指定できます。

use_database_link

TRUEに設定すると、取得プロセスに関する管理タスクを実行するために、ダウンストリーム・データベース上の取得プロセスにおいて、ソース・データベースに対するデータベース・リンクが使用されます。ソース・データベースのグローバル名と同じ名前を持つデータベース・リンクが、ダウンストリーム・データベースに存在する必要があります。

取得プロセスでは、このデータベース・リンクを使用してソース・データベースでデータベース・オブジェクトをインスタンス化するための準備を行い、必要に応じてソース・データベースでDBMS_CAPTURE_ADM.BUILDプロシージャを実行します。

ダウンストリーム取得プロセスの作成時に、first_scnパラメータがNULLに設定されている場合は、use_database_linkパラメータをTRUEに設定する必要があります。そうでない場合は、エラーが戻されます。

FALSEに設定すると、取得プロセスがソース・データベース上で実行されるか、ダウンストリーム・データベース上の取得プロセスにおいて、ソース・データベースに対するデータベース・リンクが使用されません。その場合は、次の管理タスクを手動で実行する必要があります。

  • 取得プロセスの作成時に、ソース・データベースでDBMS_CAPTURE_ADM.BUILDプロシージャを実行し、ソース・データベースのデータ・ディクショナリをREDOログに抽出する。

  • 取得プロセスの作成時に最初のSCNが指定されていない場合に、ダウンストリームの取得プロセスで使用する最初のSCNを決定する。(取得プロセスの作成と保守には、最初のSCNが必要です。)

  • ソース・データベースでデータベース・オブジェクトをインスタンス化する準備を行う。

first_scn

取得プロセスで変更を取得できるREDOログの最小SCN。このパラメータにNULL以外の値を指定できるのは、ソース・データベースでDBMS_CAPTURE_ADM.BUILDプロシージャが少なくとも1回は実行された場合に限られます。

ソース・データベースでDBMS_CAPTURE_ADM.BUILDプロシージャが実行されたかどうかを調べるには、DICTIONARY_BEGIN列の値がYESであるという条件式を指定して、V$ARCHIVED_LOG動的パフォーマンス・ビューのFIRST_CHANGE#列の値を問い合せます。この問合せから返されるSCN値を含むREDOログが利用可能な状態である場合は、そのSCN値をfirst_scnパラメータの値として使用できます。

関連項目: first_scnパラメータの設定の詳細は、「使用上の注意」を参照してください。

logfile_assignment

デフォルト値であるimplicitを指定すると、REDO転送サービスによって追加されたREDOログ・ファイル、またはソース・データベースからダウンストリーム・データベースに手動で追加されたREDOログ・ファイルがダウンストリーム・データベース上の取得プロセスによって漏れなくスキャンされます。

explicitを指定すると、FOR logminer_session_name句で取得プロセスの名前を指定した場合にかぎり、ダウンストリーム・データベース上の取得プロセスによってREDOログ・ファイルがスキャンされます。explicitを指定した場合、ダウンストリーム・データベースに手動でREDOログ・ファイルを追加する必要があり、REDO転送サービスでは作成中の取得プロセスにREDOログ・ファイルを追加できません。

ローカル取得プロセス用のこのパラメータに対してexplicitを指定した場合は、ローカル取得プロセスでオンラインREDOログを使用して変更を検索できません。その場合は、アーカイブREDOログを使用する必要があります。

関連項目: REDOログ・ファイルを手動で追加する方法は、「使用上の注意」を参照してください。

negative_rule_set_name

取得プロセスに対するネガティブ・ルール・セットの名前。ネガティブ・ルール・セットには、変更の破棄を取得プロセスに指示するためのルールが含まれています。

取得プロセスに対してネガティブ・ルール・セットを使用する場合は、既存のルール・セットを[schema_name.]rule_set_nameの形式で指定する必要があります。たとえば、hrスキーマに含まれるneg_capture_rulesという名前のネガティブ・ルール・セットを指定するには、hr.neg_capture_rulesと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

NULLを指定すると、取得プロセスに対するポジティブ・ルール・セットが指定されない場合、データベース内のすべてのオブジェクトに対してサポートされているすべての変更を取得します。ただし、SYSスキーマとSYSTEMスキーマ内のデータベース・オブジェクトは除きます。

取得プロセスのポジティブ・ルール・セットが存在するときにNULLを指定すると、取得プロセスは、ポジティブ・ルール・セットによって破棄されない、サポートされているすべての変更を取得します。

指定したルール・セットが存在しない場合は、エラーが戻されます。ルール・セットを作成し、そのルール・セットにルールを追加するには、DBMS_STREAMS_ADMパッケージまたはDBMS_RULE_ADMパッケージを使用します。

1つの取得プロセスに対してポジティブ・ルール・セットとネガティブ・ルール・セットの両方を指定した場合は、常にネガティブ・ルール・セットが最初に評価されます。

capture_user

ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、取得プロセスは、取得プロセスのルール・セットを満たす変更を取得し、取得プロセス・ルールに対して構成されているカスタム・ルールベースの変換を実行します。NULLの場合は、CREATE_CAPTUREプロシージャの実行ユーザーが使用されます。

注意: 取得プロセスの取得ユーザーがDROP USER . . . CASCADEを使用して削除されると、取得プロセスも自動的に削除されます。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

checkpoint_retention_time

取得プロセスで自動的にパージが行われるまでチェックポイントが保存される日数を指定します。または、チェックポイントを自動的にパージしない場合は、DBMS_CAPTURE_ADM.INFINITEを指定します。

日数を指定すると、チェックポイントが取得されてから指定した日数後に、取得プロセスによってチェックポイントがパージされます。小数値を使用して時間単位で指定することもできます。たとえば、6時間は、.25のように指定します。

チェックポイントがパージされると、そのチェックポイントに対応するアーカイブREDOログ・ファイルのLogMinerデータ・ディクショナリ情報もパージされ、取得プロセスのfirst_scnは、次のアーカイブREDOログ・ファイルの最初の変更に対応するSCN値に再設定されます。

関連項目: チェックポイントの保存期間の詳細は、『Oracle Streams概要および管理』を参照してください。

start_time

取得プロセスによる変更の取得の開始時点となる有効な時間。

無効な時間が指定された場合はエラーが戻されます。

start_scnパラメータとstart_timeパラメータは、両方同時には指定できません。

関連項目: start_timeパラメータの設定の詳細は、「使用上の注意」を参照してください。

source_root_name

ソースCDBのルートのグローバル名。

NULLを指定する場合、または指定した名前が現在のルートのグローバル名と同じ場合、ローカルでの取得が想定されます。

NULLでない場合は、リモートでの取得が想定されます。生成されたルールには、ソースCDBのルートに基づいてLCRをフィルタリングする条件が追加されます。

注意: ダウンストリーム取得構成では、取得データベースがCDBでソース・データベースがCDB以外の場合は、source_root_namesource_databaseに同じ値を指定します。ローカルでの取得では、CDB、CDB以外を問わず、source_root_nameパラメータを指定する必要はありません。

capture_class

有効な値は'Streams''XStream'または'GoldenGate'です。

NULLを指定すると、'Streams'であるとみなされます。

注意: 取得データベースがCDBの場合は、capture_classパラメータを'Streams'またはNULLに設定できません。

使用上の注意

このプロシージャを実行する場合は、次の使用上の注意を考慮する必要があります。

DBAロール要件

このプロシージャを起動するユーザーがcapture_userパラメータに指定されたユーザーと異なる場合、起動するユーザーにDBAロールが付与されている必要があります。このプロシージャを起動するユーザーがcapture_userパラメータに指定されたユーザーと同じである場合、起動するユーザーにDBAロールは必要ありません。capture_userSYSに設定できるのは、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設定 取得プロセスのタイプ 説明

NULL以外

NULL

ローカルまたはダウンストリーム

新しい取得プロセスは、first_scnパラメータに指定した値から開始される新しいLogMinerセッションとともにローカル・データベースに作成されます。開始SCNは、指定した先頭SCNに自動的に設定されます。新しい取得プロセスでは、このSCNより以前に行われた変更は取得されません。

DBMS_CAPTURE_ADMパッケージのBUILDプロシージャは、自動的には実行されません。このプロシージャが事前にソース・データベースで1回以上実行されており、指定した先頭SCNが、REDOログで使用可能な以前のビルドのSCN値に対応している必要があります。新しい取得プロセスが初めて起動されると、REDOログのデータ・ディクショナリ情報を使用して、新しいLogMinerデータ・ディクショナリが作成されます。ソース・データベースでBUILDプロシージャが1回も実行されていない場合は、取得プロセスを開始するとエラーが発生します。

これらのSCN設定で作成したローカル取得プロセスおよびダウンストリーム取得プロセスでは、取得プロセスの動作は同じになります。ただし、ローカル取得プロセスはソース・データベースで作成され、ダウンストリーム取得プロセスはダウンストリーム・データベースで作成されます。

NULL以外

NULL以外

ローカルまたはダウンストリーム

start_scnパラメータに指定した値がfirst_scnパラメータに指定した値以上である場合、指定した最小SCNから開始される新しいLogMinerセッションとともに、新しい取得プロセスがローカル・データベースで作成されます。この場合、新しい取得プロセスでは、指定した開始時SCNより前に行われた変更は取得されません。start_scnパラメータに指定した値がfirst_scnパラメータに指定した値より小さい場合、エラーが発生します。

DBMS_CAPTURE_ADMパッケージのBUILDプロシージャは、自動的には実行されません。このプロシージャが事前にソース・データベースで1回以上実行されており、指定したfirst_SCNが、現在でもREDOログで使用可能な以前のビルドのSCN値に対応している必要があります。新しい取得プロセスが初めて起動されると、REDOログのデータ・ディクショナリ情報を使用して、新しいLogMinerデータ・ディクショナリが作成されます。ソース・データベースでBUILDプロシージャが1回も実行されていない場合は、エラーが発生します。

これらのSCN設定で作成したローカル取得プロセスおよびダウンストリーム取得プロセスでは、取得プロセスの動作は同じになります。ただし、ローカル取得プロセスはソース・データベースで作成され、ダウンストリーム取得プロセスはダウンストリーム・データベースで作成されます。

NULL

NULL以外

ローカル

次のいずれかの条件に該当した場合、新しい取得プロセスによって新しいLogMinerデータ・ディクショナリが作成されます。

  • ローカル・ソース・データベースに既存の取得プロセスが存在せず、start_scnパラメータに指定した値がデータベースの現行のSCN以上である場合。

  • 既存の取得プロセスが存在するが、いずれの取得プロセスもチェックポイントを取得しておらず、start_scnパラメータに指定した値がデータベースの現行のSCN以上である場合。

いずれの場合も、取得プロセスの作成時にDBMS_CAPTURE_ADMパッケージのBUILDプロシージャが実行されます。新しい取得プロセスを初めて起動すると、REDOログのソース・データ・ディクショナリの生成済ビルドを使用して、LogMinerデータ・ディクショナリが作成されます。この場合、先頭SCNは、データ・ディクショナリ・ビルドのSCNに対応しています。BUILDプロシージャは、処理中のトランザクションが存在する場合、それらのトランザクションが完了のためにコミットされるまで待機します。処理中のトランザクションとは、取得プロセスの作成時またはデータ・ディクショナリのビルド時にアクティブなトランザクションです。

ただし、ローカル・ソース・データベースに、チェックポイントを取得した既存のローカル取得プロセスが1つ以上存在する場合、新しい取得プロセスは、既存のLogMinerデータ・ディクショナリをこの既存の取得プロセスと共有します。この場合、指定した開始時SCN以下の最小SCNを持つ取得プロセスが、1回以上正常に実行されている必要があります。また、処理中のトランザクションが存在する場合は、それらのトランザクションがコミットされた後に取得プロセスが作成されます。

ローカル・ソース・データベースに既存の取得プロセスが存在せず(チェックポイントを取得済の既存の取得プロセスが存在しない)、指定された開始時SCNがデータベースの現行のSCNより小さい場合は、エラーが発生します。

NULL

NULL以外

ダウンストリーム

CREATE_CAPTUREプロシージャによるダウンストリーム取得プロセスの作成時に、first_scnパラメータがNULLに設定されている場合は、use_database_linkパラメータをTRUEに設定する必要があります。そうでない場合は、エラーが発生します。データベース・リンクを使用して、ソース・データベースの現行のSCNを取得します。

次のいずれかの条件に該当した場合、新しい取得プロセスによって新しいLogMinerデータ・ディクショナリが作成されます。

  • ソース・データベースに対する変更を取得する既存の取得プロセスがダウンストリーム・データベースに存在せず、start_scnパラメータに指定した値がソース・データベースの現行のSCN以上である場合。

  • ソース・データベースに対する変更を取得する既存の取得プロセスがダウンストリーム・データベースに存在するが、いずれの取得プロセスもチェックポイントを取得しておらず、start_scnパラメータに指定した値がソース・データベースの現行のSCN以上である場合。

いずれの場合も、取得プロセスの作成時にDBMS_CAPTURE_ADMパッケージのBUILDプロシージャが実行されます。新しい取得プロセスでは、この取得プロセスの最初の実行時に、ダウンストリーム・データベースにコピーされたREDOログ・ファイルに作成されたソース・データ・ディクショナリを使用して、LogMinerデータ・ディクショナリが作成されます。この場合、新しい取得プロセスの最小SCNは、作成されたデータ・ディクショナリのSCNに対応しています。BUILDプロシージャは、処理中のトランザクションが存在する場合、それらのトランザクションが完了のためにコミットされるまで待機します。

ただし、ダウンストリーム・データベースで、1つ以上の既存の取得プロセスがチェックポイントを取得済で、ソース・データベースに対する変更を取得する場合、新しい取得プロセスは、既存のLogMinerデータ・ディクショナリを1つ以上の既存の取得プロセスと共有します。この場合、指定した開始時SCN以下の最小SCNを持つこれらの既存の取得プロセスのいずれかが、1回以上正常に実行されている必要があります。また、処理中のトランザクションが存在する場合は、それらのトランザクションがコミットされた後に取得プロセスが作成されます。

ソース・データベースに対する変更を取得する既存の取得プロセスがダウンストリーム・データベースに存在せず(チェックポイントを取得済の既存の取得プロセスが存在しない)、start_scnパラメータに指定した値がソース・データベースの現行のSCNより小さい場合は、エラーが発生します。

NULL

NULL

ローカルまたはダウンストリーム

動作は、first_scnパラメータをNULLに設定し、start_scnパラメータをソース・データベースの現行のSCNに設定した場合と同じになります。

注意:

DBMS_STREAMS_ADMパッケージを使用して取得プロセスを作成する場合は、取得プロセスの作成時に最小SCNと開始時SCNをNULLに設定する必要があります。

参照:

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概要および管理』を参照してください。

32.3.9 CREATE_SYNC_CAPTUREプロシージャ

このプロシージャは、同期取得を作成します。

参照:

同期取得の作成の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。

構文

DBMS_CAPTURE_ADM.CREATE_SYNC_CAPTURE(
   queue_name     IN  VARCHAR2,
   capture_name   IN  VARCHAR2,
   rule_set_name  IN  VARCHAR2,
   capture_user   IN  VARCHAR2  DEFAULT NUL);

パラメータ

表32-10 CREATE_SYNC_CAPTUREプロシージャのパラメータ

パラメータ 説明

queue_name

同期取得が変更をエンキューするキューの名前。既存のキューを[schema_name.]queue_nameの形式で指定する必要があります。たとえば、strmadminスキーマ内のstreams_queueという名前のキューを指定するには、strmadmin.streams_queueと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

注意: queue_nameの設定は、同期取得の作成後には変更できません。

capture_name

作成する同期取得の名前。NULL指定は許可されていません。所有者を指定しないでください。

注意: capture_nameの設定は、同期取得の作成後には変更できません。

rule_set_name

同期取得に対するポジティブ・ルール・セットの名前。ポジティブ・ルール・セットには、変更の取得を同期取得に指示するためのルールが含まれています。

既存のルール・セットを[schema_name.]rule_set_nameの形式で指定します。たとえば、strmadminスキーマに含まれるsync_cap_rulesという名前のポジティブ・ルール・セットを指定するには、strmadmin.sync_cap_rulesと入力します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

指定したルール・セットが存在しない場合は、エラーが戻されます。DBMS_STREAMS_ADMパッケージを使用して作成されたルール・セットを指定する必要があります。

NULLに設定すると、エラーが戻されます。

注意: 同期取得ルールは、DBMS_STREAMS_ADMパッケージのADD_TABLE_RULESプロシージャまたはADD_SUBSET_RULESプロシージャを使用して、同期取得ルール・セットに追加する必要があります。同期取得は、その他のプロシージャでルール・セットに追加されたルールを無視します。

関連項目: 同期取得によって取得可能な変更の詳細は、『Oracle Streams概要および管理』を参照してください。

capture_user

ユーザーを指定しますが、このユーザーのセキュリティ・ドメイン内で、同期取得は、同期取得のルール・セットを満たす変更を取得し、同期取得ルールに対して構成されているカスタム・ルールベースの変換を実行します。NULLの場合は、CREATE_SYNC_CAPTUREプロシージャの実行ユーザーが使用されます。

取得ユーザーを設定できるのは、DBAロールを付与されたユーザーに限られています。capture_userSYSに設定できるのは、SYSユーザーに限られています。

注意: 同期取得の取得ユーザーがDROP USER . . . CASCADEを使用して削除されると、同期取得も自動的に削除されます。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

使用上の注意

CREATE_SYNC_CAPTUREプロシージャは、同期取得の作成時に、変更を取得する各表の排他ロックを取得する必要があります。これらの表は、同期取得に対して指定されたルール・セットのルールによって決定されます。同期取得が変更を取得する表に未処理のトランザクションが存在する場合、このプロシージャはロックを取得できるまで待機します。

capture_userパラメータでは、同期取得のルール・セットを満たす変更を取得するユーザーを指定します。このユーザーには、変更を取得するためのいくつかの権限が必要です。

また、取得ユーザーが次の権限を持っていることを確認する必要があります。

  • queue_nameパラメータに指定したキューのENQUEUE権限

  • 同期取得で使用されるルール・セットのEXECUTE権限

  • ルール・セットで使用されるすべてのルールベース変換ファンクションのEXECUTE権限

これらの権限は取得ユーザーに直接付与するか、またはロールによって付与できます。

また、取得ユーザーには、同期取得で実行されるルールベースの変換で起動されるすべてのパッケージ(Oracle提供パッケージを含む)に対するEXECUTE権限を付与する必要があります。これらの権限は、取得ユーザーに直接付与する必要があります。ロールを通してこれらの権限を付与することはできません。

注意:

取得ユーザーは、データベース・オブジェクトに対する権限を持っていなくても、データベース・オブジェクトに対する変更を取得できます。同期取得では、データベース・オブジェクトに対する変更をルールベースの変換ファンクションに渡すことができます。したがって、同期取得を構成するときは、セキュリティ問題に留意する必要があります。

32.3.10 DROP_CAPTUREプロシージャ

このプロシージャは、取得プロセスを削除します。

構文

DBMS_CAPTURE_ADM.DROP_CAPTURE(
   capture_name           IN  VARCHAR2,
   drop_unused_rule_sets  IN  BOOLEAN  DEFAULT FALSE);

パラメータ

表32-11 DROP_CAPTUREプロシージャのパラメータ

パラメータ 説明

capture_name

削除する取得プロセスの名前。既存の取得プロセス名を指定します。所有者を指定しないでください。

drop_unused_rule_sets

TRUEに設定すると、指定した取得プロセスで使用されるポジティブ・ルール・セットおよびネガティブ・ルール・セットが、他のOracle Streamsクライアントによって使用されない場合に削除されます。Oracle Streamsクライアントには、取得プロセス、伝播、適用プロセス、メッセージ・クライアントがあります。このプロシージャによってルール・セットが削除される場合は、そのルール・セット内のルールのうち、別のルール・セット内に存在しないルールも同時に削除されます。

FALSEに設定すると、指定した取得プロセスで使用されるルール・セットは削除されず、ルール・セットにルールが保持されます。

使用上の注意

このプロシージャには、次の使用上の注意が適用されます。

削除する前に停止する必要のある取得プロセス

取得プロセスを削除するには、その取得プロセスを事前に停止する必要があります。

DROP_CAPTUREプロシージャおよびルールに関する情報

このプロシージャを使用して取得プロセスを削除すると、その取得プロセスに対してDBMS_STREAMS_ADMパッケージで作成したルールに関する情報は、Oracle Streamsルールのデータ・ディクショナリ・ビューから削除されます。そのようなルールが取得プロセスのどのルール・セットに含まれているかに関係なく、ルールに関する情報は削除されます。

Oracle Streamsルールのデータ・ディクショナリ・ビューは次のとおりです。

  • ALL_STREAMS_GLOBAL_RULES

  • DBA_STREAMS_GLOBAL_RULES

  • ALL_STREAMS_MESSAGE_RULES

  • DBA_STREAMS_MESSAGE_RULES

  • ALL_STREAMS_SCHEMA_RULES

  • DBA_STREAMS_SCHEMA_RULES

  • ALL_STREAMS_TABLE_RULES

  • DBA_STREAMS_TABLE_RULES

  • ALL_STREAMS_RULES

  • DBA_STREAMS_RULES

参照:

Oracle Streamsデータ・ディクショナリ・ビューの詳細は、『Oracle Streams概要および管理』を参照してください。

32.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);

パラメータ

表32-12 INCLUDE_EXTRA_ATTRIBUTEプロシージャのパラメータ

パラメータ 説明

capture_name

取得プロセスまたは同期取得の名前。既存の取得プロセス名または同期取得名を指定します。所有者を指定しないでください。

attribute_name

取得プロセスまたは同期取得によって取得される論理変更レコード(LCR)に記録する属性名、またはLCRから除外する属性名を指定します。指定できる属性名は次のとおりです。

  • row_id

    行のLCRで変更された行のROWID。この属性は、DDL LCRにも索引構成表の行LCRにも記録されません。データ・タイプはVARCHAR2です。

  • serial#

    LCRに取得された変更を実行したセッションのシリアル番号。データ・タイプはNUMBERです。

  • session#

    LCRに取得された変更を実行したセッションの識別子。データ・タイプはNUMBERです。

  • thread#

    LCRに取得された変更が実行されたインスタンスのスレッド番号。通常、スレッド番号はOracle Real Application Clusters(Oracle RAC)環境のみで使用されます。データ・タイプはNUMBERです。

  • tx_name

    LCRの属するトランザクションの名前。データ・タイプはVARCHAR2です。

  • username

    LCRに取得された変更を実行したユーザーの名前。データ・タイプはVARCHAR2です。

include

TRUEに設定すると、取得プロセスまたは同期取得によって取得される論理変更レコード(LCR)に、指定した属性が記録されます。

FALSEに設定すると、取得プロセスまたは同期取得によって取得される論理変更レコード(LCR)から、指定した属性が除外されます。

使用上の注意

一部の情報は、それらの情報が取得されるようにこのプロシージャを使用して指定しないかぎり、取得プロセスまたは同期取得によって取得されません。取得プロセスまたは同期取得によって取得された情報から特定の追加属性を除外する場合は、目的の属性を指定し、includeパラメータをFALSEに設定します。

32.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');

パラメータ

表32-13 PREPARE_GLOBAL_INSTANTIATIONプロシージャのパラメータ

パラメータ 説明

supplemental_logging

NONEKEYSまたはALL

NONEを指定すると、データベース内の表の列でサプリメンタル・ロギングは有効になりません。このプロシージャは、これらの表の既存のサプリメンタル・ロギング指定は削除しません。

KEYSを指定すると、データベース内の表の主キー、一意キー、ビットマップ索引および外部キーの列でサプリメンタル・ロギングが有効になり、将来データベースに表が追加された場合も、サプリメンタル・ロギングは有効になります。主キー列は、無条件でログに記録されます。一意キー列、ビットマップ索引列および外部キー列は、条件付きでログに記録されます。KEYSを指定しても、ビットマップ結合索引の列でサプリメンタル・ロギングは有効になりません。

ALLを指定すると、データベース内のすべての列でサプリメンタル・ロギングが有効になり、将来データベースに表が追加された場合も、サプリメンタル・ロギングは有効になります。すべての列は、無条件でログに記録されます。LOBタイプ、LONGタイプ、LONG RAWタイプ、ユーザー定義タイプおよびオラクル社が提供するタイプの列では、サプリメンタル・ロギングは有効になりません。

container

CURRENTALLまたはpdb_nameのいずれか。

CURRENTを指定すると、現在のコンテナのサプリメンタル・ロギングが追加されます。

ALLを指定すると、現在のCDBのすべてのコンテナでサプリメンタル・ロギングが追加されます。

pdb_nameを指定すると、指定したPDBのサプリメンタル・ロギングが追加されます。

ALLpdb_nameは、プロシージャをルートから起動する場合にのみ有効です。

使用上の注意

このプロシージャは、ソース・データベースで実行します。

データベースに対するすべての変更を取得プロセスによって取得する場合は、取得プロセスを構成した後、このプロシージャを使用してデータベース内の表をインスタンス化する準備を行ってください。

32.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');

パラメータ

表32-14 PREPARE_SCHEMA_INSTANTIATIONプロシージャのパラメータ

パラメータ 説明

schema_name

スキーマの名前。たとえば、hrのように指定します。

supplemental_logging

NONEKEYSまたはALL

NONEを指定すると、スキーマ内の表の列でサプリメンタル・ロギングは有効になりません。このプロシージャは、これらの表の既存のサプリメンタル・ロギング指定は削除しません。

KEYSを指定すると、スキーマ内の表の主キー、一意キー、ビットマップ索引および外部キーの列でサプリメンタル・ロギングが有効になり、将来このスキーマに表が追加された場合も、サプリメンタル・ロギングは有効になります。主キー列は、無条件でログに記録されます。一意キー列、ビットマップ索引列および外部キー列は、条件付きでログに記録されます。KEYSを指定しても、ビットマップ結合索引の列でサプリメンタル・ロギングは有効になりません。

ALLを指定すると、スキーマ内のすべての列でサプリメンタル・ロギングが有効になり、将来このスキーマに表が追加された場合も、サプリメンタル・ロギングは有効になります。すべての列は、無条件でログに記録されます。LOBタイプ、LONGタイプ、LONG RAWタイプ、ユーザー定義タイプおよびオラクル社が提供するタイプの列では、サプリメンタル・ロギングは有効になりません。

container

CURRENTALLまたはpdb_nameのいずれか。

CURRENTを指定すると、現在のコンテナのサプリメンタル・ロギングが追加されます。

ALLを指定すると、現在のCDBのすべてのコンテナでサプリメンタル・ロギングが追加されます。

pdb_nameを指定すると、指定したPDBのサプリメンタル・ロギングが追加されます

ALLpdb_nameは、プロシージャをルートから起動する場合にのみ有効です。

使用上の注意

このプロシージャは、ソース・データベースで実行します。スキーマに対するすべての変更を取得プロセスによって取得する場合は、取得プロセスを構成した後、このプロシージャを使用してスキーマ内の表をインスタンス化する準備を行ってください。

32.3.14 PREPARE_SYNC_INSTANTIATIONファンクション

このファンクションは、別のデータベースで、1つ以上の表をインスタンス化するために必要な同期化を行います。このファンクションは、インスタンス化のために準備された表(複数も可)に対して、準備システム変更番号(SCN)を戻します。

表に対する変更の取得に同期取得を使用する場合は、このファンクションによって、1つ以上の表をインスタンス化する準備を行います。

このファンクションは、インスタンス化のために各表の最小SCNを記録します(準備SCN)。オブジェクトに対する最小SCNに続くSCNをオブジェクトのインスタンス化に使用できます。

このファンクションはオーバーロードされています。table_namesパラメータは、一方のバージョンではVARCHAR2データ・タイプであり、もう一方のバージョンではDBMS_UTILITY.UNCL_ARRAYデータ・タイプです。

参照:

インスタンス化の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照

構文

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;

パラメータ

表32-15 PREPARE_SYNC_INSTANTIATIONファンクションのパラメータ

パラメータ 説明

table_names

table_namesパラメータがVARCHAR2データ・タイプの場合は、インスタンス化のために準備する表のカンマ区切りリスト。エントリ間に空白を挿入しないでください。

table_namesパラメータがDBMS_UTILITY.UNCL_ARRAYデータ・タイプの場合は、インスタンス化のために準備する表の名前が含まれているPL/SQL連想配列を指定します。最初の表名は位置1、2番目は位置2、以降同様です。表の最後をNULLにする必要はありません。

いずれのバージョンのファンクションも、それぞれの表の名前を[schema_name.]table_nameの形式で指定します。たとえば、hr.employeesのように指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

32.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');

パラメータ

表32-16 PREPARE_TABLE_INSTANTIATIONプロシージャのパラメータ

パラメータ 説明

table_name

[schema_name.]object_nameの形式で指定した表の名前。たとえば、hr.employeesのように指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

supplemental_logging

NONEKEYSまたはALL

NONEを指定すると、表内の列でサプリメンタル・ロギングは有効になりません。このプロシージャは、表の既存のサプリメンタル・ロギング指定は削除しません。

KEYSを指定すると、表の主キー、一意キー、ビットマップ索引および外部キーの列でサプリメンタル・ロギングが有効になります。このプロシージャによって、主キー列は無条件のログ・グループ、一意キー列とビットマップ索引列は条件付きログ・グループ、外部キー列は条件付きのログ・グループというように、表のキー列が3つの個別のログ・グループに配置されます。KEYSを指定しても、ビットマップ結合索引の列でサプリメンタル・ロギングは有効になりません。

ALLを指定すると、表のすべての列でサプリメンタル・ロギングが有効になります。このプロシージャは、表内のすべての列を無条件のログ・グループに配置します。LOBタイプ、LONGタイプ、LONG RAWタイプ、ユーザー定義タイプおよびオラクル社が提供するタイプの列では、サプリメンタル・ロギングは有効になりません。

container

CURRENTALLまたはpdb_nameのいずれか。

CURRENTを指定すると、現在のコンテナのサプリメンタル・ロギングが追加されます。

ALLを指定すると、現在のCDBのすべてのコンテナでサプリメンタル・ロギングが追加されます。

pdb_nameを指定すると、指定したPDBのサプリメンタル・ロギングが追加されます。

ALLpdb_nameは、プロシージャをルートから起動する場合にのみ有効です。

使用上の注意

このプロシージャは、ソース・データベースで実行します。表に対するすべての変更を取得プロセスによって取得する場合は、取得プロセスを構成した後、このプロシージャを使用して表をインスタンス化する準備を行ってください。

32.3.16 SET_PARAMETERプロシージャ

このプロシージャは、取得プロセス・パラメータを指定した値に設定します。

構文

DBMS_CAPTURE_ADM.SET_PARAMETER(
   capture_name  IN  VARCHAR2,
   parameter     IN  VARCHAR2,
   value         IN  VARCHAR2  DEFAULT NULL);

パラメータ

表32-17 SET_PARAMETERプロシージャのパラメータ

パラメータ 説明

capture_name

取得プロセスの名前。所有者を指定しないでください。

parameter

設定するパラメータの名前。

value

パラメータに設定する値。

NULLの場合、パラメータはデフォルト値に設定されます。

取得プロセスのパラメータ

次の表に、取得プロセスのパラメータを示します。

表32-18 取得プロセスのパラメータ

パラメータ名 設定可能な値 デフォルト 説明

annotateddlsize

0または4294967296 (4 GB)までの正の整数

0

DDLテキストの最大長(バイト単位)で、この長さまでのDDLを注釈用に選択できます(DDLに適用可能な場合)。指定したサイズよりも大きいサイズのDDLテキストには注釈が付きません。

デフォルトの0は、この取得プロセスで処理されるどのDDLテキストにも注釈が付かないことを示します。

DDLに注釈を付けると、Oracle GoldenGate内でのDDLのフィルタリングおよび変換を簡略化できます。

注意: このパラメータは、Oracle GoldenGateを対象としています。このパラメータはOracle Streamsレプリケーション環境やXStream環境では使用しないでください。

capture_idkey_objects

YまたはN

N

Yの場合、取得プロセスはIDキーの論理変更レコード(LCR)を取得します。

Nの場合、取得プロセスはIDキーLCRを取得しません。

取得プロセスは、一部のデータ・タイプに対する変更をREDOログから取得することに完全には対応していません。IDキーLCRによって、XStream構成を使用してこれらの変更を取得し、XStreamクライアント・アプリケーションで処理できます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」、IDキーLCRの詳細は、Oracle DatabaseのXStreamガイドを参照してください。

capture_sequence_nextval

YまたはN

N

Yの場合、取得プロセスは、データベースのすべての順序に対応する順序LCRを取得しますが、オラクル社が提供するSYSSYSTEMなどの管理スキーマの順序は除きます。取得プロセスのルール・セットによって、行LCRやDDL LCRをフィルタ処理する場合と同じように順序LCRをフィルタ処理できます。

Nの場合、取得プロセスは順序LCRを取得しません。

適用プロセスまたはXStreamインバウンド・サーバーでは、順序LCRを使用することで、接続先データベースの順序値に適切な値が使用されることを保証できます。増加する順序の場合、接続先の順序値は、ソース・データベースの順序値以上になります。減少する順序の場合、接続先の順序値は、ソース・データベースの順序値以下になります。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」apply_sequence_nextval適用プロセス・パラメータの詳細は、「SET_PARAMETERプロシージャ」を参照してください。

disable_on_limit

YまたはN

N

Yの場合は、time_limitパラメータまたはmessage_limitパラメータによって指定された値に達すると、取得プロセスは無効化されます。

Nの場合、取得プロセスは、制限に達したために停止した後すぐに再開されます。

取得プロセスは、再起動されると、最後に停止した時点から変更の取得を開始します。再起動された取得プロセスは、新しいセッション識別子を取得します。取得プロセスに関連付けられているプロセスも新しいセッション識別子を取得します。ただし、取得プロセス番号(CPnn)は変更されません。

downstream_real_time_mine

YまたはN

Y(ローカル取得プロセスの場合)

N(ダウンストリーム取得プロセスの場合)

Yの場合、取得プロセスはリアルタイムのダウンストリーム取得プロセスになります。このパラメータをYに設定した後、SQL文ALTER SYSTEM ARCHIVE LOG CURRENTを使用してソース・データベースのREDOログ・ファイルを切り替え、リアルタイムのダウンストリーム取得プロセスを開始します。このパラメータをYに設定した場合は、ソース・データベースのREDOデータをダウンストリーム・データベースのスタンバイREDOログに送信する必要があります。リアルタイムのダウンストリーム取得プロセスの作成の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。

Nの場合、取得プロセスはアーカイブ・ログのダウンストリーム取得プロセスになります。

このパラメータをローカル取得プロセスに対して設定しようとすると、エラーが発生します。

excludetag

Oracle Streamsタグのカンマ区切りリスト

NULL

取得プロセスによって、指定したOracle Streamsタグの1つでタグ付けされたDML変更を取得するかどうかを制御します。

取得プロセスがこれらの変更を取得するかどうかは、getapplopsパラメータとgetreplicatesパラメータの設定に応じて変化します。

NULLの場合、取得プロセスではこのパラメータは無視されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

excludetrans

トランザクション名のカンマ区切りリスト

NULL

取得プロセスによって、指定したトランザクション名におけるDMLの変更を取得するかどうかを制御します。

取得プロセスがこれらの変更を取得するかどうかは、getapplopsパラメータとgetreplicatesパラメータの設定に応じて変化します。

NULLの場合、取得プロセスではこのパラメータは無視されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

excludeuser

ユーザー名のカンマ区切りリスト

NULL

取得プロセスによって、指定したユーザーが行ったDMLの変更を取得するかどうかを制御します。

取得プロセスがこれらの変更を取得するかどうかは、getapplopsパラメータとgetreplicatesパラメータの設定に応じて変化します。

各ユーザー名の完全パターン一致を指定します。パターン一致では大/小文字が区別されます。たとえば、hrユーザーの場合はHRを指定します。

NULLの場合、取得プロセスではこのパラメータは無視されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

excludeuserid

ユーザーID値のカンマ区切りリスト

NULL

取得プロセスによって、指定したユーザーが行ったデータ操作言語(DML)の変更を取得するかどうかを制御します。

取得プロセスがこれらの変更を取得するかどうかは、getapplopsパラメータとgetreplicatesパラメータの設定に応じて変化します。

ユーザーのユーザーIDを表示するには、ALL_USERSデータ・ディクショナリ・ビューのUSER_ID列を問い合せます。

NULLの場合、取得プロセスではこのパラメータは無視されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

getapplops

YまたはN

Y

Yの場合、元のユーザーがexcludeuseridパラメータまたはexcludeuserパラメータに指定されておらず、トランザクション名がexcludetransパラメータに指定されていなければ、取得プロセスによってDMLの変更が取得されます。

Nの場合、元のユーザーがexcludeuseridパラメータまたはexcludeuserパラメータに指定されておらず、トランザクション名がexcludetransパラメータに指定されていなければ、取得プロセスによってDMLの変更は無視されます。

どちらの設定でも、取得プロセスのルール・セットが満たされる場合にのみ、取得プロセスによってDMLの変更が取得されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

getreplicates

YまたはN

N

Yの場合、元のユーザーがexcludeuseridパラメータまたはexcludeuserパラメータに指定され、トランザクション名がexcludetransパラメータに指定されていれば、取得プロセスによってDMLの変更が取得されます。

Nの場合、元のユーザーがexcludeuseridパラメータまたはexcludeuserパラメータに指定され、トランザクション名がexcludetransパラメータに指定されていれば、取得プロセスによってDMLの変更は無視されます。

どちらの設定でも、取得プロセスのルール・セットが満たされる場合にのみ、取得プロセスによってDMLの変更が取得されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

ignore_transaction

有効なトランザクションIDまたはNULL

NULL

取得プロセスがソース・データベースの指定したトランザクションを無視するように設定し、即座に有効化します。

取得プロセスでは、そのトランザクションに対応するすべての後続のLCRが排除されます。指定したトランザクションがソース・データベースで正常にコミットされると、接続先データベースは、かわりにROLLBACK文を受信し、トランザクション無視の要求より前にエンキューされていたトランザクションからのLCRは、接続先データベースですべてロールバックされます。

NULLの場合、取得プロセスではこのパラメータは無視されます。

トランザクションを無視すると、ソース・データベースと接続先データベース間でデータ相違が発生する可能性があるため、このパラメータを設定する場合は注意してください。

複数のトランザクションを無視するには、SET_PARAMETERプロシージャへの別々のコールで各トランザクションを指定します。DBA_CAPTURE_PARAMETERSビューに、無視されるすべてのトランザクションのカンマ区切りリストが表示されます。無視されるトランザクションのリストを消去するには、SET_PARAMETERプロシージャを実行し、ignore_transactionパラメータにNULLを指定します。

ignore_unsupported_table

表の完全修飾名、*または-

*

指定した表またはサポートされない表に対する変更を取得プロセスが取得しようとした場合の動作を制御します。

取得プロセスは、そのルール・セットに指示がある場合、サポートされない表に対する変更を取得しようとします。サポートされない表に対する変更を取得プロセスで取得しない場合、取得プロセスのルール・セットからサポートされない表が除外されていることを確認してください。

表名を指定すると、取得プロセスでは、その指定した表に対する変更が取得されません。表名は、table_owner. table_nameという形式で入力する必要があります。たとえば、hr.employeesのように指定します。複数の表を指定するには、SET_PARAMETERプロシージャへの別々のコールで各表を指定します。

*を指定した場合、取得プロセスは、サポートされない表に対する変更を取得しようとした時点でその変更を無視して実行を継続します。サポートされない表に対する変更は取得されず、取得プロセスでは、サポートされない表がアラート・ログに記録されます。

-を指定した場合、取得プロセスは、サポートされない表に対する変更を取得しようとした時点で中断します。

include_objects

カンマで区切られた表またはスキーマ名のリスト

none

指定した表またはスキーマにおける変更を取得に含めるように指示します。

include_objectsによって選択されたLCRは、それ以降にどのフィルタを指定したかにかかわらず、アウトバウンド・サーバーに渡されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用または設定しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

inline_lob_optimization

YまたはN

N

Yの場合、インラインで処理できるLOB(サイズの小さなLOBなど)は、LOBチャンクのLCRとして送信されるかわりにLCR内に直接格納されます。

Nの場合、それぞれのLOB列がNULLとして送信されてから、LOB列を更新するLOBチャンクのLCRが送信されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用または設定しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

maximum_scn

有効なSCN値またはINFINITE

INFINITE

取得プロセスは、指定された値以上のSCNを持つ変更レコードの取得前に無効化されます。

INFINITEの場合は、SCNの値に関係なく取得プロセスが実行されます。

max_sga_size

正の整数

INFINITE

取得プロセスのために特に割り当てられたシステム・グローバル領域(SGA)メモリーの量をMB単位で制御します。取得プロセスは、この制限値までメモリーを割り当てようとします。取得プロセスは、Oracle LogMinerを使用してREDOログ内の変更をスキャンします。

このメモリーは、取得プロセスのセッション期間中に割り当てられ、取得プロセスが無効になると解放されます。

注意: データベース上のすべてのコンポーネントに割り当てられたシステムグローバル領域(SGA)メモリーは、合計でSTREAMS_POOL_SIZE初期化パラメータに設定されている値未満である必要があります。

NULLの場合、取得コンポーネントでは元のデフォルト値が使用されます。NULL値には、パラメータをデフォルト値に再設定した場合と同じ効果があります。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用または設定しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

merge_threshold

負の整数、0、正の整数またはINFINITE

60

元の取得プロセスのメッセージ作成時間とクローニングされた取得プロセスのメッセージ作成時間の間隔(秒)。

特に、クローニングされた取得プロセスと元の取得プロセスのCAPTURE_MESSAGE_CREATE_TIMEの差(秒数)がこのパラメータに指定された値以下の場合、MERGE_STREAMSプロシージャを実行することで自動マージが始まります。差がこのパラメータで指定された値よりも大きい場合、自動マージは始まらず、DBA_STREAMS_SPLIT_MERGEビューのLAG列に値が記録されます。CAPTURE_MESSAGE_CREATE_TIMEV$STREAMS_CAPTUREビューに記録されます。

このパラメータが関連するのは、取得プロセスにより取得された変更が2つ以上の適用プロセスにより適用され、split_thresholdパラメータがINFINITE以外の値に設定された場合のみです。

負の値を指定すると、自動マージは無効になります。

0(ゼロ)を指定した場合、元の取得プロセスとクローニングされた取得プロセスがマージを始める時間に遅延はありません。

INFINITEを指定すると、自動マージはただちに始まります。

関連項目: 『Oracle Streamsレプリケーション管理者ガイド』

message_limit

正の整数またはINFINITE

INFINITE

取得プロセスは、指定した数のメッセージを取得した後停止します。

INFINITEの場合は、取得したメッセージの数に関係なく実行し続けます。

message_tracking_frequency

0または正の整数

2000000

取得プロセスによって取得されるメッセージが自動的に追跡される頻度。

たとえば、このパラメータがデフォルト値の2000000に設定されている場合は、200万番目ごとにメッセージが自動的に追跡されます。

自動メッセージ追跡に使用される追跡ラベルはcapture_process_name:AUTOTRACKで、capture_process_nameは取得プロセスの名前です。取得プロセス名の最初の20バイトのみが使用され、20バイトを超える場合、残りは切り捨てられます。

0(ゼロ)の場合、メッセージは自動的に追跡されません。

メッセージの追跡の詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。

parallelism

正の整数

1

取得プロセスのREDOログを同時に調査できるプリペアラ・サーバーの数。

取得プロセスは、リーダー・サーバー1台、プリペアラ・サーバー1台以上およびビルダー・サーバー1台で構成されます。プリペアラ・サーバーは、REDOログ内で検出された変更を同時に論理変更レコード(LCR)形式にフォーマットします。各リーダー・サーバー、プリペアラ・サーバーおよびビルダー・サーバーはプロセスであり、プリペアラ・サーバーの数はparallelism取得プロセス・パラメータに指定した数と同じになります。そのため、parallelismを5に設定すると、取得プロセスでは合計7つのプロセス(リーダー・サーバー1台、プリペアラ・サーバー5台、ビルダー・サーバー1台)が使用されます。

parallelismパラメータを、使用可能なパラレル実行サーバー数より大きい値に設定すると、取得プロセスが無効化される場合があります。parallelism取得プロセス・パラメータを設定するときは、PROCESSES初期化パラメータが適切に設定されていることを確認してください。

注意: このパラメータの値を変更すると、取得プロセスは自動的に停止し、再開します。

関連項目: 取得プロセスのコンポーネントの詳細は、『Oracle Streams概要および管理』を参照してください。

skip_autofiltered_table_ddl

YまたはN

Y

Yの場合は、取得プロセスにより自動的にフィルタ処理される表に対するデータ定義言語(DDL)の変更が、取得プロセスで取得されません。

Nの場合にDDL変更が取得プロセスのルール・セットに適合していると、取得プロセスにより自動的にフィルタ処理される表に対するDDL変更が、取得プロセスで取得されます。

取得プロセスによって自動的にフィルタ処理される表は、DBA_STREAMS_UNSUPPORTEDデータ・ディクショナリ・ビューのAUTO_FILTERED列に示されます。

split_threshold

0、正の整数またはINFINITE

1800

ストリームが取得プロセスから流れる他のストリームから自動的に分割される前にストリームが中断する間隔(秒)。ストリームが分割されると、取得プロセス、キューおよび伝播がクローニングされます。

この場合、ストリームは、取得プロセスから適用に流れる論理変更レコード(LCR)のフローです。ストリームは、取得プロセスに取得されたLCRが適用プロセスに達することができないとき、中断します。たとえば、関連する伝播または適用プロセスが無効にされると中断します。

このパラメータが関連するのは、取得プロセスにより取得された変更が2つ以上の適用プロセスにより適用された場合のみです。

0(ゼロ)を指定した場合、自動分割はただちに始まります。

INFINITEを指定した場合、自動分割は無効にされます。ストリームは、中断される時間にかかわらず分割されません。

このパラメータは、merge_thresholdパラメータと一緒に使用することになっています。自動分割およびマージ操作は、DBA_STREAMS_SPLIT_MERGEビューに問い合せることによって監視できます。

関連項目: 『Oracle Streamsレプリケーション管理者ガイド』

startup_seconds

0、正の整数またはINFINITE

0

同じ取得プロセスの別のインスタンス化が終了するのを待機する最大秒数。同じ取得プロセスの別のインスタンス化がこの時間内に終了しない場合、取得プロセスは開始しません。このパラメータが有用になるのは、取得プロセスを手動で起動する場合に限られます。

INFINITEの場合、取得プロセスは、同じ取得プロセスの別のインスタンス化が終了した後で開始します。

time_limit

正の整数またはINFINITE

INFINITE

取得プロセスは、開始してから指定秒数が経過した後、可能なかぎり早く停止します。

INFINITEの場合、取得プロセスは明示的に停止されるまで実行し続けます。

trace_level

0または正の整数

0

Oracleサポート・サービスから指示がないかぎり、このパラメータは設定しないでください。

use_rac_service

YまたはN

Streamsの場合はY

XStreamの場合はN

Yの場合、取得プロセスは、そのキューの所有するインスタンスで実行されます。

Nの場合、クライアントによって、取得プロセスを実行するかどうかが指定されます。

注意: このパラメータは、XStreamを対象としています。XStream最適化をDBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによって有効にする場合を除き、Oracle Streamsレプリケーション環境でこのパラメータを使用または設定しないでください。XStream最適化の有効化については、「ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャ」を参照してください。

関連項目: このパラメータの詳細は、「使用上の注意」を参照してください。

write_alert_log

YまたはN

Y

Yの場合、取得プロセスは、終了時にアラート・ログにメッセージを書き込みます。

Nの場合は、終了時にアラート・ログにメッセージを書き込みません。

メッセージには、取得プロセスの停止理由が示されます。

xout_client_exists

YまたはN

Y(取得プロセスでXStreamアウトバウンド・サーバーにLCRを送信する場合)

N(取得プロセスでOracle Streams適用プロセスにLCRを送信する場合)

Yは、取得プロセスで1つ以上のXStreamアウトバウンド・サーバーにLCRを送信することを示します。

Nは、取得プロセスで1つ以上のOracle Streams適用プロセスにLCRを送信することを示します。

1つの取得プロセスでアウトバウンド・サーバーと適用プロセスの両方にLCRを送信することはできません。

アウトバウンド・サーバーがその取得プロセスとは異なるデータベースで実行されるXStream構成では、このパラメータをYに設定して取得プロセスがアウトバウンド・サーバーにLCRを送信できるようにします。

注意: XStreamを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。Oracle DatabaseのXStreamガイドを参照してください。

使用上の注意

SET_PARAMETERプロシージャには、次の使用上の注意が適用されます。

新しいパラメータ設定の有効化が遅延する可能性

パラメータ値を変更したとき、パラメータの新しい値が有効になるまでに時間がかかる場合があります。

正の整数として解釈されるパラメータ

正の整数として解釈されるすべてのパラメータについて、設定可能な最大値は4,294,967,295です。適用可能な場合、比較的大きい値にはINFINITEを指定してください。

システム変更番号(SCN)設定のあるパラメータ

SCN設定が必要なパラメータについては、任意の有効なSCN値を指定できます。

XStream最適化を必要とするパラメータ

取得プロセスで次のパラメータが使用されるのは、取得プロセスがXStreamアウトバウンド・サーバーに論理変更レコード(LCR)を送信している場合、またはXStream最適化がOracle Streamsコンポーネントで有効化されている場合にかぎられます。

  • 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 StreamsでXStream最適化を有効化します。DBMS_XSTREAM_ADM.ENABLE_GG_XSTREAM_FOR_STREAMSプロシージャによってXStream最適化が有効化されていない場合に、これらのパラメータのいずれかがデフォルト値以外の値に設定されると、取得プロセスでエラーが発生します。

XStream最適化がOracle Streamsで有効化され、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ガイドを参照してください。

参照:

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プロセス変更を含む、データベースへのすべての変更が取得された後、これらの変更を別の宛先データベースに送信することがあります。

表32-19は、少なくとも1つの除外パラメータがNULL以外の場合の取得プロセスの動作を示しています。

表32-19 少なくとも1つの除外パラメータがNULL以外の場合の動作

getapplops設定 getreplicates設定 説明

Y

Y

取得プロセスによって、すべてのDML変更が取得されます。

Y

N

取得プロセスによって、excludeuseridまたはexcludeuserパラメータの対象外のユーザーが加えたDML変更が取得されます。

取得プロセスによって、excludetransパラメータの対象外のトランザクションのDML変更が取得されます。

取得プロセスによって、excludetagsパラメータの対象タグを持たないDML変更のみが取得されます。

N

Y

取得プロセスによって、excludeuseridまたはexcludeuserパラメータの対象ユーザーが加えたDML変更のみが取得されます。

取得プロセスによって、excludetransパラメータの対象トランザクションのDML変更のみが取得されます。

取得プロセスによって、excludetagsパラメータの対象タグを持つDML変更のみが取得されます。

N

N

取得プロセスによって、DML変更は取得されません。

表32-19は、すべての除外パラメータがNULLに設定されている場合の取得プロセスの動作を示しています。

表32-20 すべての除外パラメータがNULLに設定されている場合の動作

getapplops設定 getreplicates設定 説明

Y

Y

取得プロセスによって、すべてのDML変更が取得されます。

Y

N

取得プロセスによって、すべてのDML変更が取得されます。

N

Y

取得プロセスによって、DML変更は取得されません。

N

N

取得プロセスによって、DML変更は取得されません。

詳細は、次のリンクにあるOracle GoldenGate製品のドキュメントを参照してください。

http://docs.oracle.com/cd/E15881_01/index.htm

注意:

取得プロセスでは、そのルール・セットを使用して変更を評価する前に、前述のパラメータを使用して変更が評価されます。つまり、取得プロセスのルール・セットに照らして変更を評価する前に、その変更が取り消される可能性があります。また、これらのパラメータの設定に関係なく、取得プロセスでは、変更がルール・セットを満たしている場合にのみ取得されます。

32.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);

パラメータ

表32-21 START_CAPTUREプロシージャのパラメータ

パラメータ 説明

capture_name

取得プロセスの名前。所有者を指定しないでください。

取得プロセスは、LogMinerを使用してREDO情報内の変更を取得します。NULLを設定することはできません。

使用上の注意

取得プロセスのステータスは永続的に記録されます。したがって、ステータスがENABLEDの場合、取得プロセスはデータベース・インスタンスの起動時に開始されます。取得プロセス(cnnn)はOracleバックグラウンド・プロセスです。

32.3.18 STOP_CAPTUREプロシージャ

このプロシージャは、取得プロセスを停止してREDOログの調査を中断します。

構文

DBMS_CAPTURE_ADM.STOP_CAPTURE(
   capture_name  IN  VARCHAR2,
   force         IN  BOOLEAN  DEFAULT FALSE);

パラメータ

表32-22 STOP_CAPTUREプロシージャのパラメータ

パラメータ 説明

capture_name

取得プロセスの名前。NULLを設定することはできません。所有者を指定しないでください。

force

TRUEに設定すると、取得プロセスは可能なかぎり早く停止されます。取得プロセスを正常に停止できない場合は、中断されます。

FALSEに設定すると、取得プロセスは可能なかぎり早く停止されます。取得プロセスを正常に停止できない場合は、ORA-26672エラーが戻され、取得プロセスが引き続き実行されることがあります。

使用上の注意

このプロシージャには、次の使用上の注意が適用されます。

  • 取得プロセスのステータスは永続的に記録されます。したがって、ステータスがDISABLEDまたはABORTEDの場合、取得プロセスはデータベース・インスタンスの起動時に開始されません。

  • 取得プロセスは、CPnn(nnに含まれるのは文字および数字)という形式の名前を持つOracleバックグラウンド・プロセスです。

  • DBMS_AQADM.START_QUEUEおよびDBMS_AQADM.STOP_QUEUEのエンキューとデキューの状態は、取得プロセスの停止ステータスには影響を与えません。