自動的な表ごとのインスタンス化の使用方法

ソース・データベースの場合

Oracle Data Pumpを使用するOracle Databaseで、表ごとのCSNフィルタリングを自動的にインスタンス化して、すべての表が同じSCNに配置されるのを防ぐことができます。

  1. ADD TRANDATAおよびADD SCHEMATRANDATAを使用します。ADD TRANDATA/SCHEMATRANDATA.PREPARECSNは、ソースで表を自動的に準備し、Oracle Data Pumpのエクスポート・ダンプ・ファイルにインスタンス化CSNが含まれるようにします。Replicatは、(インポート時に) Oracle Data Pumpによって設定された表ごとのインスタンス化CSNを使用して、証跡レコードをフィルタ処理で除外します。

    INFO TRANDATAを使用して、表のインスタンス化の準備ができていることと、それが実行されたポイントを確認します。次に、レポート・ファイルのサンプルを示します。
    2016-09-29 15:30:00 INFO OGG-10154 Schema level PREPARECSN set to mode NOWAIT on schema
          SCOTT
  2. ターゲット・データベースでReplicatを停止します。

  3. 適切なTABLE文でExtractを起動します。

EXPORT datapumpオプションFLASHBACK_SCNは、表が以前に準備されているため必要ありません。

ターゲット・データベースの場合

  1. Oracleデータ・ポンプを使用して、エクスポートされた表をインポートします。これにより、システム表とビューにインスタンス化SCNおよび指定された表データが移入されます。

  2. 次のいずれかを使用してReplicatを起動します。

    Replicatパラメータ・ファイルにDBOPTIONS ENABLE_INSTANTIATION_FILTERINGパラメータを設定して、表レベルのインスタンス化フィルタリングを有効にします。

    インスタンス化SCNを超えたすべてのトランザクションがReplicatによって処理されたら、このパラメータを削除できます。

    他のすべてのReplicatでは、Replicatパラメータ・ファイルにDBOPTIONS source_dbase_name global_nameパラメータを設定します(global_nameは、証跡の取得元のOracleソース・データベースのグローバル名です)。

    ノート:

    ソースにDOMAINがない場合は、ダウンストリーム・データベースでDOMAINを指定しないでください。

    Replicatは設定に従って新しいマッピングおよびフィルタ・レコードのインスタンス化SCNを問い合せますたとえば、次のレポート・ファイル出力を参照してください。
    2015-06-29 17:12:39 INFO OGG-10155 Oracle GoldenGate Delivery for Oracle, r1.prm:
    Instantiation CSN filtering is enabled on table SCOTT.EMP at CSN 1,851,797.
データ・ポンプを使用して表をエクスポートおよびインポートするかわりに、他の方法を使用してインスタンス化することもできます。このような方法では、create tableselectコマンドまたはRMANとして使用します。ステップは次のとおりです。
  1. 次のコマンドを使用して、create tableat SCN ofパラメータとともに使用します。

    SET_INSTANTIATION_CSN SCN for object from global_name

    たとえば:
    SET_INSTANTIATION_CSN 1 FOR u1.t1 FROM DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM
  2. 後でインスタンス化CSNの手動設定を削除する場合は、次のコマンドを使用します。
    CLEAR_INSTANTIATION_CSN for object from global_name