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」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、プラチナ以上のプランで遊べます。