Data Pump の使い方

データを書き出す・取り込む(Oracle)

書き方

CREATE DIRECTORY dp_dir AS '/opt/oracle/dpdump';
GRANT READ, WRITE ON DIRECTORY dp_dir TO ユーザー;
expdp system/パスワード@FREEPDB1 SCHEMAS=app DIRECTORY=dp_dir DUMPFILE=app.dmp LOGFILE=exp_app.log
expdp ユーザー/パスワード@FREEPDB1 TABLES=表 DIRECTORY=dp_dir DUMPFILE=表.dmp
impdp system/パスワード@FREEPDB1 DIRECTORY=dp_dir DUMPFILE=app.dmp REMAP_SCHEMA=app:app_test [TABLES=app.表] [TABLE_EXISTS_ACTION=SKIP|APPEND|TRUNCATE|REPLACE]
!cat /opt/oracle/dpdump/exp_app.log

expdp / impdp は OS のコマンドです(SQL*Plus からは HOST か ! を付けても打てます)。ファイルはディレクトリ・オブジェクト(DBA_DIRECTORIES)が指す場所に書かれ、ログに表ごとの行数が出ます。PDB の中のスキーマは @FREEPDB1 を付けて接続して書き出します。取り込み先に同じ表があると、既定(SKIP)では飛ばされて ORA-39151。APPEND は行を足し、TRUNCATE は空にしてから入れ、REPLACE は作り直します。ほかのスキーマを扱うには DATAPUMP_EXP_FULL_DATABASE / DATAPUMP_IMP_FULL_DATABASE ロール(DBA に含まれる)が要ります。

例

expdp system/oracle@FREEPDB1 SCHEMAS=app DIRECTORY=dp_dir DUMPFILE=app.dmp LOGFILE=exp_app.log
impdp system/oracle@FREEPDB1 DIRECTORY=dp_dir DUMPFILE=app.dmp REMAP_SCHEMA=app:app_test LOGFILE=imp.log

実際に打って練習する

Oracle DBA コースの Lv54「荷造り expdp」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、プラチナ以上のプランで遊べます。

Oracle Database の管理コマンド一覧(DBA)へ戻る