web-dev-qa-db-ja.com

Oracle impdp-リモートサーバーからのファイルのインポート

何かが足りないのですか、それとも、impdpを使用してダンプ(.dmp)ファイルを、それが作成された場所以外の別のサーバー上のデータベースにインポートできないのですか?すべての調査の結果、これは実行できないと思いました。ダンプファイルは、データをインポートするサーバーにローカルに置くか、NFSマウントして、ローカルに見えるようにする必要があります。これは、古い「exp/imp」ユーティリティが備えていた機能のようですが、存在しなくなりました。 impdpとREMOTE_LINKオプションを使用してデータを移動できることはわかっていますが、これを使用するには、データをリモート側のデータベースインスタンス内のスキーマに物理的に配置してコピーする必要があります。ダンプ/エクスポートされたファイルに置くことはできません。

例えば。サーバー「A」とサーバー「B」があります。それぞれにOracleインスタンスが存在します。 「A」で、スキーマ「TESTDATA」のexpdpを使用して、「A」に格納されている「testdata.dmp」という名前のダンプファイルにエクスポートを実行します。将来のある時点で、 "TESTDATA"ダンプファイル(testdata.dmp)の内容をサーバー "B"の新しいスキーマ(TESTDATA2)に復元したいと思います。

この時点で、私の唯一の選択肢は次のとおりです。

  1. Testdata.dmpをサーバー "B"にコピーし、サーバー "B"で直接インポートを実行します
  2. サーバー「B」からサーバー「A」にtestdata.dmpを含むディレクトリをNFSマウントして、dmpファイルがサーバー「B」に対してローカルに表示されるようにし、インポートを実行します。
  3. サーバー "A"に一時スキーマ(TMPSCHEMA)を作成し、impdpのREMAP_SCHEMAオプションを使用してtest.dmpファイルを一時スキーマにインポートし、REMOTE_LINKオプションを使用してサーバー "B"でimpdpを実行し、TMPSCHEMAからデータを取得します。 「A」

ここで何か不足している、またはOracleがimpdpとimpの機能に大きなギャップを残したかのいずれかです。

1
GregH

From Oracle Data Pumpユーティリティ

Dump files are read and written directly by the server and, therefore, do not require any data movement to the client.

imp/expとは異なり、impdp/expdpはデータを移動しません。それらはDBMS_DATAPUMPパッケージのみを呼び出し、実際のデータ移動はOracleインスタンスによって行われます。したがって、データポンプは、他のすべてのOracleプロシージャと同じ方法で外部データにアクセスできます-ディレクトリオブジェクトを介してファイルをロードするか、dblinkを介してデータを選択します。

2

データベースリンクを介して別のデータベースからデータを取得することによってデータポンプインポートを実行するオプションがあります。これにより、特にソースデータベースでフラッシュバックを使用して、最近の過去。 http://docs.Oracle.com/cd/E11882_01/server.112/e22490/dp_overview.htm#CJABHJHD

それはさておき、datapumpを使用してリモートファイルを直接調達することはできませんが、DBMS_File_TransferまたはDBMS_Schedulerを使用して、それらをあるdbサーバーから別のdbサーバーに移動できます。 http://docs.Oracle.com/cd/E11882_01/ server.112/e25494/dfiles008.htm

0
David Aldridge