web-dev-qa-db-ja.com

高度なレプリケーションを実行するOracleData Pump Import

私たちのシステムでは、2つのデータベース(11gリリース2)間で高度なレプリケーションを実行しており、pumpimportを使用して1つのサイトにバックアップをインポートしたいと考えています。ただし、インポートされたデータは他のサイトに複製されません。以下のすべての変更は、通常どおり複製されます。

校正のために編集:レプリケーションがアクティブであり、両方のサイトに同じデータがあります。次に、プライマリサイトに何かをインポートします。これらのインポートされた変更は複製されません。 2番目のサイトにはまだ「インポート前」のデータがあります。インポート後にプライマリサイトの何かが変更されても、これらの変更は引き続き複製されます。したがって、レプリケーション自体はまだアクティブです。ポンプのインポートは、インポートされたデータの複製をトリガーしないようです。

Oracleのドキュメントではこれについて何も見つかりませんでした。それもサポートされていますか、それともインポートコマンドとエクスポートコマンドに何か欠けているものがありますか?

expdp <connection data> dumpfile='xyz.dmp' SCHEMAS=XYZ EXCLUDE=USER NOLOGFILE=Y REUSE_DUMPFILES=Y

impdp <connection data> DUMPFILE='xyz.dmp' NOLOGFILE=y IGNORE=y INCLUDE=table_data TABLE_EXISTS_ACTION=skip
3
MatF

基本的に、Advanced Replicationは、マテリアライズド・ビュー、マテリアライズド・ビューのログ、およびトリガーで機能します。ある側から別の側にデータを複製するには、INSERT、UPDATE、またはDELETEステートメントを使用して、複製メカニズムに新しいデータまたは変更されたデータがあることを認識させる必要があります。ダイレクトパス方式でデータをインポートする場合、これらすべてをスキップします。これは、データをインポートするために従来のパス方法が必要であることを意味します。

DataPumpは、一連の条件に基づいてメソッドを単独で選択します。これらの条件は次の場所にあります: http://docs.Oracle.com/cd/E11882_01/server.112/e22490/dp_overview.htm#SUTIL804

あなたのケースでどちらの方法が使用されているかは100%わかりませんが、それが従来の方法ではないかと思います。

Oracleは、従来のパス方式を強制する方法を教えていませんが、古いimpユーティリティを使用してデータをインポートしてみることができます。エクスポートがDIRECT = Nで実行される場合、impは従来の方法で実行する必要があります。

たぶん、他の誰かがAdvancedReplicationとDataPumpの経験を持っています。オラクルが将来のレプリケーションテクノロジーとしてGoldenGateを推進しているため、私の経験は限られています。

1
ora-600