datapump impdpコマンド(インポート)のまとめ

Oracle データベースの datapump でインポートを行う際は、
対象範囲によって、以下のようにパラメータを使い分ける。


インポート( impdp )

データベース全体

impdp system/manager directory=DPディレクトリ dumpfile=expdat.dmp full=y

表領域単位

impdp system/manager directory=DPディレクトリ dumpfile=expdat.dmp tablespaces=system

スキーマ単位

impdp system/manager directory=DPディレクトリ dumpfile=expdat.dmp schemas=scott

テーブル単位

impdp system/manager directory=DPディレクトリ dumpfile=expdat.dmp tables=scott.emp

異なるスキーマへ変更

impdp system/manager directory=DPディレクトリ dumpfile=exp.dmp remap_schema=system:scott

※ remap_schema=エクスポート時のスキーマ:インポート時のスキーマ

異なる表領域へ変更

impdp system/manager directory=DPディレクトリ dumpfile=exp.dmp remap_tablespace=system:hoge

※ remap_tablespace=エクスポート時の表領域:インポート時の表領域

主なオプション

logfile オプション

ログファイルを出力する場合は、logfile = scott_impdp.log のようにオプションを追加する。
ログを明示的に指定しない場合、import.log がディレクトリオブジェクトのパスに出力される。

table_exists_action オプション

【指定する値】
・TRUNCATE:既存データ行を内部的に TRUNCATE してからデータをインポートする。
・REPLACE:テーブルそのものを内部的に DROP してから再作成して、データをインポートする。
・APPEND:既存データ行を内部的に TRUNCATE してからデータをインポートする。

※ 旧 imp コマンドの ignore 相当のパラメータ→「 table_exists_action = replace 」

※ APPEND パラメータの注意点としては、制約に引っかかった際に、
  重複していないデータも含め全件がスキップされてしまうこと。

content オプション

【指定する値】
・METADATA_ONLY:テーブル自体が存在しない状態で、定義だけをインポートする。
・ALL:定義とデータ両方をインポートする。(オプションそのものを指定しなくても同様の動作)
・DATA_ONLY:定義が作成済みのテーブルにデータだけをインポートする。


関連記事

人気ブログランキングへ

このページの先頭へ