TOP →
Oracle → This Page
インポート(impdp)(Data Pump Import)
概要
impdp(Data Pump Import)はOracleが標準で提供するユーティリティ。
expdp(Data Pump Export)ユーティリティで出力したエクスポート・ダンプ・ファイルからオブジェクトや行データなどを取り込むことが可能。
Oracle 9iまではメインだったexp,impより若干面倒な部分はあるものの、
色々とパワーアップしててOracle 10g からは exp,imp ではなく expdp,impdp(Data Pump Export/Import)の使用が推奨されています。
コマンド
IMPORTは impdp コマンドで実行可能
実行方法は以下の3つがある。
impdp
順に問い合わせされるパラメータを入力していく対話方式。
impdp パラメータ名=パラメータ値 [,パラメータ名=パラメータ値,...]
コマンドの後ろに各種パラメータを付加して実行する。
impdp parfile=パラメータファイル
前もってパラメータを記述したファイルを指定して実行する。
モード
モードには以下の4つがある。
・全体モード
データベース全体のインポート
・表領域モード
指定表領域のインポート
・スキーマ・モード
指定ユーザのスキーマにある全てのオブジェクトをインポート
・表モード
指定表およびパーティションのインポート
準備
従来のexp,impと最も異なる点。
それが DIRECTORY 指定。
クライアント側のディレクトリではなく、Oracleサーバ側が見るディレクトリを設定する必要がある。
そのディレクトリにダンプ・ファイル(dmpファイル)を配置、ログもそこに出力される。
(例)
CREATE DIRECTORY DATA_PUMP_DIR AS '/opt/oracle/data/datapump';
dxpdp,impdpで指定するディレクトリは上記例でいうとDATA_PUMP_DIRになる。
実際のパスである /opt/oracle/data/datapump ではないので注意。
権限
実行には CREATE SESSION 権限、指定 DIRECTORY への READ, WRITE 権限が必要。
実行モードを全体モードで実行する場合は IMP_FULL_DATABASE ロールも必要。
(例)DIRECTORY への READ, WRITE 権限付与
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO TEST_USER;
パラメータ一覧
準備中
実行例
全体モードでインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log full=y
表領域モードでインポート
表領域TS_1のオブジェクトをインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tablespaces=TS_1
表領域モードでインポート(複数表領域)
表領域TS_1,TS_2のオブジェクトをインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tablespaces=TS_1,TS_2
表領域モードでインポート
表領域TS_OLDのオブジェクトを表領域TS_NEWへインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tablespaces=TS_OLD remap_tablespace=TS_OLD:TS_NEW
表領域モードでインポート(複数表領域)
表領域TS_OLD_1,TS_OLD_2のオブジェクトを表領域TS_NEW_1,TS_NEW_2へインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tablespaces=TS_OLD_1,TS_OLD_2 remap_tablespace=(TS_OLD_1:TS_NEW_1,TS_OLD_2:TS_NEW_2)
※環境によっては以下のように括弧記号の前に円マーク必要になります。
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tablespaces=TS_OLD_1,TS_OLD_2 remap_tablespace=\(TS_OLD_1:TS_NEW_1,TS_OLD_2:TS_NEW_2\)
スキーマ・モードでインポート
usr1のオブジェクトをインポート
impdp usr1/pass1@db2 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log schemas=usr1
スキーマ・モードでインポート(複数スキーマ)
usr1,usr2のオブジェクトをインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log schemas=usr1,usr2
スキーマ・モードでインポート
usr1のオブジェクトをusr2にインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log schemas=usr1 remap_schema=usr1:usr2
スキーマ・モードでインポート(複数スキーマ)
usr1,usr2のオブジェクトをusr3,usr4にインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log schemas=usr1,usr2 remap_schema=(usr1:usr3,usr2:usr4)
※環境によっては以下のように括弧記号の前に円マーク必要になります。
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log schemas=usr1,usr2 remap_schema=\(usr1:usr3,usr2:usr4\)
表モードでインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tables=tbl1
表モードでインポート(複数表)
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tables=tbl1,tbl2
表モードでレコードだけをインポート(表は既に存在する)
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tables=tbl1 content=data_only
表モードでインポート
usr1でimpdp実行するがusr2のスキーマの表をインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tables=usr2.tbl1
※tablesに指定する表名の前にスキーマ名とドットを付けるだけ
表モードでインポート(応用)
スキーマUSER_OLDの表TBL_1,TBL_2をスキーマUSER_NEWかつ表領域TS_OLD_1,TS_OLD_2から表領域TS_NEW_1,TS_NEW_2へインポート
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tables=USER_OLD.TBL_1,USER_OLD.TBL_2 remap_schema=USER_OLD:USER_NEW remap_tablespace=(TS_OLD_1:TS_NEW_1,TS_OLD_2:TS_NEW_2)
※環境によっては以下のように括弧記号の前に円マーク必要になります。
impdp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log tables=USER_OLD.TBL_1,USER_OLD.TBL_2 remap_schema=USER_OLD:USER_NEW remap_tablespace=\(TS_OLD_1:TS_NEW_1,TS_OLD_2:TS_NEW_2\)
バッファを使って高速化(10MBごとにコミット)
imp usr1/pass1@db1 directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log buffer=10485760
注意点
上位バージョンのエクスポートで生成したエクスポート・ダンプ・ファイルを、下位バージョンのインポートで使用するには制限があります。
※逆は大丈夫。
・expdp時にVERSIONパラメータを付けてエクスポートする必要がある
・expdpとimpdpのバージョン差は最大2まで
・古いバージョンに存在しない新しいデータ型や機能はインポート不可
更新履歴
2026/02/28 新規作成
TOP →
Oracle → This Page