ADD SCHEMATRANDATA

Oracleで有効です。

ADD SCHEMATRANDATAでは、表のスキーマレベルのサプリメンタル・ロギングを有効化します。ADD SCHEMATRANDATAは、指定されたスキーマの現在および将来のすべての表で動作して、Oracle GoldenGateが行識別のために必要とする使用可能なキーのスーパーセットを自動的に記録します。

ノート: Oracle GoldenGate 23.6では、JSONリレーショナル二面性ビュー(JSON DV)およびJSONコレクション表(JCT)のスキーマ・レベルでの論理レプリケーションの有効化はサポートされていません。

マルチテナント・データベースのPDBのスキーマに対してADD SCHEMATRANDATAを実行するには、PDBにログインしてコマンドを発行する必要があります。

ADD SCHEMATRANDATAはExtractで有効で、次を実行します:

デフォルトでは、ADD SCHEMATRANDATAは次の優先順位で表のキー列を記録します:

  1. 主キー

  2. 主キーが存在しない場合、表のすべての一意キー(無効、使用不可または非表示のキーを含む)。ADTメンバー列を含む一意キーも記録されます。仮想列(ファンクション索引)の一意キーのみが記録されません。

  3. 前述のものがすべて存在しない場合、表のすべてのスカラー列が記録されます。(システム生成の行OIDは常に記録されます。)

ADD SCHEMATRANDATAは、統合Replicatを使用するための条件または無条件のロギング要件もサポートします。

次の場合は、ADD SCHEMATRANDATAを使用します。

UsingADD SCHEMATRANDATAのデータベース・レベルのロギング要件

Oracle GoldenGateを使用する場合、ソース・データベースを強制ロギング・モードに移行し、データベース・レベルで最小サプリメンタル・ロギングを有効にすることを強くお薦めします。これにより、更新操作でREDOログに行連鎖情報(存在する場合)が追加されます。

UsingADD SCHEMATRANDATAのその他の考慮事項

構文

ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN  {WAIT | LOCK | NOWAIT | NONE}]

schema

補足キー情報を記録するスキーマ。ワイルドカードは使用しないでください。マルチテナント・コンテナ・データベースが複数のプラガブル・データベースにあるスキーマにADD SCHEMATRANDATAを発行するには、DBLOGINを使用して各プラガブル・データベースに個別にログインしてから、ADD SCHEMATRANDATAを発行しますルート・コンテナから、コンテナ接頭辞のADD SCHEMATRANDATA [pdb_name].schemaを使用してschematrandtaを追加できます

cdb$rootからコマンドを実行する場合は、データベース側で次のユーザー権限も設定していることを確認してください:

ALTER USER userID SET CONTAINER_DATA = ALL  CONTAINER = CURRENT;

ALLOWNONVALIDATEDKEYS

サプリメンタル・ロギングのNON VALIDATEDおよびNOT VALID主キーが含まれます。これらのキーは、Oracle GoldenGateで使用される通常のキーの選択基準をオーバーライドします。GLOBALSのパラメータALLOWNONVALIDATEDKEYSが使用されている場合、ADD SCHEMATRANDATAは、指定されているかどうかにかかわらず、ALLOWNONVALIDATEDKEYSを使用して実行されます。デフォルトでは、NON VALIDATEDおよびNOT VALID主キーは記録されません。GLOBALS ALLOWNONVALIDATEDKEYSパラメータを参照してください。

NOSCHEDULINGCOLS | ALLCOLS

これらのオプションは、Oracleターゲット・データベースのサプリメンタル・ロギングを制御します。これらのオプションは、後者のオプションを使用していても組み合せて使用できます。たとえば、ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLSコマンドでは、NOSCHEDULINGCOLSオプションが使用されます。

NOSCHEDULINGCOLS

スケジュール列のロギングを無効にします。デフォルトでは、ADD SCHEMATRANDATAによって、指定されたスキーマの現在および将来すべての表に含まれる主キーの無条件ロギング、すべての一意キーおよび外部キーの条件付きサプリメンタル・ロギングが有効になります。無条件ロギングでは、現在の操作でキーが変更されたかどうかにかかわらず、主キーの値がログに強制的に記録されます。条件付きロギングでは、現在の操作で外部キーまたは一意キーの少なくとも1つが変更された場合、それらのキーのすべての列値が記録されます。統合Replicatの主キー、一意キーおよび外部キーは、依存性を計算するためにインバウンド・サーバーですべて使用できる必要があります。

auto_captureを有効にする場合は、このオプションを使用しないでください。これにより、表がレプリケーションに対して明示的に除外/無効化されていないかぎり(TABLEEXCLUDE、DELETE TRANDATA、またはALTER TABLE DISABLE LOGICAL REPLICATION DDLなどによって)このスキーマ内の表を自動取得できます。

ALLCOLS

指定されたスキーマの現在および将来のすべての表で、サポートされるすべてのキー列および非キー列の無条件サプリメンタル・ロギングを有効にします。このオプションにより、依存性を計算するために必要なキーに加え、フィルタリング、競合解決または他の目的のために必要な列のロギングが有効になります。LOB、LONG、ADTなどの列は含まれません。

NOVALIDATE

ADD SCHEMATRANDATAでサポートされるすべてのデータベースに有効。

処理中の表に関する追加情報がADD SCHEMATRANDATAで処理されないようにします。デフォルトでは、このオプションは有効になっています。追加情報の処理によりコマンド・レスポンスに対する経過時間が発生するため、このオプションを使用してレスポンス時間を向上できます。

PARTIALJSON

Oracleで有効です。

スキーマ・レベルで部分的なJSON更新がフェッチされます。有効にすると、REDOに部分的なJSONレコードが含まれます。

TRANLOGOPTIONS FETCHPARTIALJSONパラメータも参照してください。

PREPARECSN {WAIT | LOCK | NOWAIT | NONE}

DMLとDDLの両方についてOracleで有効です。

Oracle Data Pump Exportダンプ・ファイルがインスタンス化CSNを含むように、ソースの表を自動的に準備します。Replicatは、(インポート時の) Oracle Data Pumpで設定される表単位のインスタンス化CSNを使用して、トレイル・レコードを除外します。ターゲットでは、データ・ポンプ・インポートによってDBOPTIONS ENABLE_INSTANTIATION_FILTERINGパラメータを使用してシステム表およびビューにインスタンス化SCNが移入されて、表レベルのインスタンス化フィルタリングが有効になります。

WAIT

処理中のトランザクションを待機して表のインスタンス化を準備します。

LOCK

(表のインスタンス化を準備するために)表をロックします。

NOWAIT

デフォルトの動作で、インスタンス化の準備は即座に行われます。

NONE

インスタンス化の準備は発生しません。

例


次の例は、スキーマhrに対するサプリメンタル・ロギングを有効にします。

ADD SCHEMATRANDATA hr

次の例では、hrというスキーマの現在および将来のすべての表で、サポートされているすべてのキー列および非キー列を記録します。

ADD SCHEMATRANDATA hr ALLCOLS

次の例では、追加の表情報の処理を抑制します。

ADD SCHEMATRANDATA hr NOVALIDATE