expdpおよびimpdpコマンドを使用してデータを転送する方法は?


29

私はOracleの初心者で、すべてのデータとメタデータをOracleデータベース内のあるスキーマから別のスキーマに転送することを意図しています。データポンプexpdpimpdpコマンドを使用する予定です。これに関して質問があります:

  • ユーザーなしでターゲットスキーマを作成できますか、または最初にユーザーを作成する必要がありますか(スキーマも作成されます)。
  • SYS(sysdba)アカウントを使用expdpしてimpdpコマンドを実行できますか?それは好ましい方法ですか?
  • このステートメントは、スキーマからすべてのオブジェクト(データとメタデータ)を取得し、これらを別のスキーマに移動しますか?

    expdp \"/ as sysdba\" schemas=<schemaname> directory=dumpdir dumpfile=<schemaname>.dmp logfile=expdp_<schemaname>.log  

    ターゲットスキーマは、impdpコマンド実行後のソーススキーマの正確なコピーですか?

回答:


31

impdp まだ存在しない場合はユーザーを作成するので、それが望んでいない場合を除き、心配する必要はありません。

impdbまたはexpdpとして実行しないでくださいsysdba。Oracleサポートが特定の状況で要求した場合にのみ実行してください。そのために通常のユーザーを使用dbaします。たとえば、ロールが付与されているユーザーを使用します。([IMPORT|EXPORT]_FULL_DATABASEこのタイプのこと専用の特権があります。Oracleディレクトリオブジェクトへのアクセスも許可する必要があります。)

完全なスキーマエクスポート(メタデータとコンテンツ)は、実際には次のようになります。

expdp user/pass schemas=<schemaname> directory=dumpdir \
      dumpfile=<schemaname>.dmp \
      logfile=expdp_<schemaname>.log

別のユーザー/スキーマにインポートする場合(ターゲットデータベースはソースと同じでもかまいません)、次を使用できます。

impdp user/pass schemas=schema1 directory=dumpdir \
      remap_schema=schema1:schema2 \
      dumpfile=schema1.dmp \
      logfile=impdp_schema2.log

完全なインポートが必要ない場合は、データとメタデータの両方にいくつかのフィルターを設定できます。インポート操作中のフィルタリングを参照してください。

ユーティリティガイドはすべての詳細を持って、私は強く、少なくとも概要の部分を読んでお勧めします。


2

切り捨てられたテーブルをインポートする場合、つまり、データをインポートしてテーブルに戻す場合:

impdp user/pass TABLES=dept DIRECTORY=TEST_dir dumpfile=TEST.dmp logfile=expdpTEST.log TABLE_EXISTS_ACTION=REPLACE

テーブルの上deptにインポートしたいものがあります。先に切り捨てました。あるダンプファイルからTEST.dmp、そしてlogfileこれはexpdpTEST.log、私が唯一のデータをインポートしたい(私たちは、パラメータを使用してテーブル構造は同じになりますTABLE_EXISTS_ACTION)。

あなたは、たとえば、2つのテーブルを切り捨てている場合empdept、とempテーブルがありdept_id、外部キーとして、あなたは、インポートする必要がdept最初にして、テーブルをempインポート中にエラーを回避するために、テーブル。

詳細http://satya-dba.blogspot.in/2009/05/datapump.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.