主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

1.69 ADD SCHEMATRANDATA

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

ADD SCHEMATRANDATAは、統合キャプチャおよびクラシック・キャプチャの両方で有効で、次を実行します。

  • CREATE TABLEで作成された新しい表にOracleサプリメンタル・ロギングを有効化する。

  • 列を追加または削除するALTER TABLEの影響を受けた表のサプリメンタル・ロギングを更新する。

  • 名前が変更された表のサプリメンタル・ロギングを更新する。

  • 一意キーまたは主キーが追加または削除された表のサプリメンタル・ロギングを更新する。

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

  1. 主キー

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

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

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

注意:

Oracle11.2.0.2より前のバージョンの場合、ソース・データベースにOracle Patch 10423000を適用します。

ADD SCHEMATRANDATAを使用するタイミング

ADD SCHEMATRANDATAは、次の場合に使用する必要があります。

  • 統合キャプチャ用に構成するExtractグループの一部であるすべての表に対して。ADD SCHEMATRANDATAは、すべてのキーを記録することにより、適切なキーが記録されていることを保証します。

  • 統合Replicatグループで処理されるすべてのソース表に対して。主キー、一意キーおよび外部キーのロギングを有効にするオプションが提供され、様々な適用サーバーを介して処理されているリレーショナル表間の依存関係の計算をサポートします。

  • DDLレプリケーションがアクティブで、DMLが新しい表を作成するかキー列を変更するDDLと同時である場合。DDLがオブジェクトで発行された直後にDMLをオブジェクトに適用できるシナリオを最適に処理します。ADD SCHEMATRANDATAにより、各DDL操作で適切なキー値がREDOログにアトミックに記録されるため、Extract処理でのラグに関係なく、ログからキャプチャされる際のDMLのメタデータの継続性が保証されます。

ADD SCHEMATRANDATAを使用するためのデータベース・レベルのロギング要件

Oracle GoldenGateを使用するときに、ソース・データベースを強制ロギング・モードにし、データベース・レベルで最小サプリメンタル・ロギングを有効にすることを強くお薦めします。これは、連鎖行の情報(存在する場合)を更新操作用のREDOログに追加します。Oracle GoldenGateをサポートするロギングの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

ADD SCHEMATRANDATAを使用する場合の追加の考慮事項

  • ADD SCHEMATRANDATAを使用する前に、DBLOGINコマンドを発行します。このコマンドを発行するユーザーは、Oracle Streams管理者権限が付与されている必要があります。

    SQL> exec dbms_streams_auth.grant_admin_privilege('user')
    
  • DDLレプリケーションが有効化されていない場合、ADD TRANDATAコマンドのかわりにADD SCHEMATRANDATAを使用できます。ただし、表に主キーがなく、複数の一意キーがある場合、ADD SCHEMATRANDATAによって、データベースはすべての一意キーを記録することに注意してください。このような場合、ADD SCHEMATRANDATAによって、データベースはADD TRANDATAの場合よりも多くのREDOデータを記録します。余分なロギングを回避するには、可能な場合、一意キーのうちの1つを主キーとして指定します。

  • 1つの主キーがあるか、1つの一意キーがあるか、キーがない表の場合、ADD SCHEMATRANDATAでは、ADD TRANDATAと比較して、追加のロギング・オーバーヘッドはありません。詳細は、ADD TRANDATAを参照してください。

  • FILTER文、およびTABLEパラメータとMAPパラメータのKEYCOLS句に必要な列など、Oracle GoldenGateで使用するために特定の表の追加の非キー列を記録する必要がある場合、これらの列に対して ADD TRANDATAコマンドを発行します。このコマンドには、列の表レベルのサプリメンタル・ロギングを発行するためのCOLSオプションがあり、ADD SCHEMATRANDATAとともに使用できます。

構文

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

キーの追加情報を記録するスキーマ。ワイルドカードは使用しないでください。マルチテナント・コンテナ・データベースの複数のプラガブル・データベースのスキーマにADD SCHEMATRANDATAを発行するには、DBLOGINを使用して各プラガブル・データベースに個別にログインしてから、ADD SCHEMATRANDATAを発行します。詳細は、「DBLOGIN」を参照してください。

ALLOWNONVALIDATEDKEYS

このオプションは、Oracle 11.2.0.4以降の11gバージョンおよびOracle 12.1.0.2以降の12cバージョンに有効です。(Oracle 11.2.0.3または12.1.0.1では有効ではありません。)サプリメンタル・ロギングのNON VALIDATEDおよびNOT VALID主キーが含まれます。これらのキーは、Oracle GoldenGateによって使用される標準キー選択基準より優先されます。GLOBALSのパラメータALLOWNONVALIDATEDKEYSが使用されている場合、ADD SCHEMATRANDATAは、指定されているかどうかにかかわらず、ALLOWNONVALIDATEDKEYSを使用して実行されます。デフォルトでは、NON VALIDATEDおよびNOT VALID主キーは記録されません。詳細は、GLOBALSALLOWNONVALIDATEDKEYSパラメータを参照してください。

NOSCHEDULINGCOLS | ALLCOLS

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

NOSCHEDULINGCOLS

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

ALLCOLS

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

PREPARECSN {WAIT | LOCK | NOWAIT | NONE}

DMLとDDLの両方に有効です。Oracle Datapump Exportのダンプ・ファイルにインスタンス化CSNが設定されるよう、ソースの表を自動的に準備します。Replicatは、(インポート時に) Oracle Datapumpによって設定された表ごとのインスタンス化CSNを使用して、証跡レコードをフィルタ処理で除外します。ターゲット上では、データ・ポンプ・インポートがDBOPTIONS ENABLE_INSTANTIATION_FILTERINGパラメータを使用して、システム表とビューにインスタンス化SCNを移入し、表レベルのインスタンス化フィルタリングを有効にします。

WAIT

インフライト・トランザクションを待機し、表のインスタンス化を準備します。

LOCK

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

NOWAIT

デフォルトの動作。インスタンス化の準備が即時実行されます。

NONE

インスタンス化の準備は行われません。

例1   

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

ADD SCHEMATRANDATA scott
例2   

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

ADD SCHEMATRANDATA scott ALLCOLS