スポンサーリンク

[Oracle] IMPDPでインポートしてリストアする

IMPDPとは?

IMPDPは、EXPDPでエクスポートしたバックアップファイル(dmp)をを使って、
インポートしてリストアすることができるコマンド。

コマンドなのでコマンドプロンプトで実行する。

EXPDPについては下記参照。

基本構文

FULL=Yが、インポートする単位をデータベース全体としている。
指定を変えれば、テーブル単位などに分けることができる。

  • FULL=Y
  • TABLESPACES=[表領域]
  • SCHEMAS=[スキーマ名]
  • TABLES=[表名]
IMPDP [ユーザー]/[パスワード]@[接続文字列] DIRECTORY=[ディレクトリオブジェクト] DUMPFILE=[出力ファイル名] LOG=[ログファイル名] FULL=Y

上書き指定オプション

TABLE_EXISTS_ACTIONに下記オプションを指定すると、
上書きなどの指定ができる。

オプション 意味
SKIP テーブルが存在すればスキップする。
APPEND データが存在すればスキップする。存在しなければ追加する。
TRUNCATE 行データを削除して上書きする。
REPLACE テーブルを削除してからインポートする。

使用例

下記を実行するとインポートが始まる。
SKIPオプションで、テーブルが存在すればスキップとしているが、
スキップ=エラー解釈され、最後にそのエラー表示が出る。

REPLACEで実行すれば、削除してからインポートなのでエラーは発生しなくなる。

IMPDP testuser/pass@XEPDB1 DIRECTORY=oracle_dir DUMPFILE=XEPDB1.dmp LOG=XEPDB1_import.log FULL=Y TABLE_EXISTS_ACTION=SKIP