OracleのData Pump Export(expdp
)を使えば、1つのテーブルだけでなく、複数のテーブルをまとめて効率よくエクスポートすることが可能です。本記事では、複数テーブルを指定して一括エクスポートする方法や、実用的な構文、注意点について詳しく解説します。
基本構文:tablesパラメータに複数テーブルを指定する
expdp
では、tables
パラメータに複数のテーブル名をカンマ区切りで指定することで、まとめてエクスポートできます。
expdp ユーザー名/パスワード directory=ディレクトリ名 dumpfile=ファイル名.dmp logfile=ログファイル名.log tables=テーブル1,テーブル2,...
使用例:EMP、DEPT、BONUS テーブルを一括エクスポート
expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=scott_tables.dmp logfile=scott_tables.log tables=emp,dept,bonus
このコマンドを実行すると、scott
スキーマ内の emp
、dept
、bonus
の3つのテーブルが1つのダンプファイル(.dmp
)にまとめてエクスポートされます。
スキーマ名を明示的に指定する形式
異なるスキーマのテーブルを対象にする場合や、複数スキーマが関係する環境では、スキーマ名.テーブル名 の形式で明示するのが安全です。
tables=scott.emp,scott.dept
ただし、他スキーマのデータをエクスポートするには、適切な権限(例えばDATAPUMP_EXP_FULL_DATABASE
など)が必要になります。
長いテーブルリストをファイルで指定する(パラファイルの活用)
テーブル数が多い場合は、コマンドラインにすべて書くのではなく、パラメータファイル(parfile) を用いることで管理が容易になります。
parfileの例(export_tables.par):
directory=DATA_PUMP_DIR
dumpfile=multi_tables.dmp
logfile=multi_tables.log
tables=emp,dept,bonus,salgrade
コマンド実行:
expdp scott/tiger parfile=export_tables.par
これにより、実行時にファイルで設定内容を読み込み、スッキリとした管理が可能になります。
エクスポートを並列処理で高速化する(parallelオプション)
大量のデータを含むテーブルを複数エクスポートする場合は、parallel
オプションを使って処理を高速化できます。
expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=multi_%U.dmp logfile=multi_tables.log tables=emp,dept,bonus parallel=4
dumpfile
に %U
を使用することで、複数のダンプファイルが生成され、パラレル処理が有効になります。
まとめ
OracleのData Pump Export(expdp)では、tables
パラメータを使うことで複数のテーブルを一度にエクスポートできます。スキーマ内の複数テーブルをまとめてバックアップしたいときや、検証環境に必要なテーブル群だけを移行したいときに便利です。
- カンマ区切りで複数テーブルを指定
- スキーマ名を明示するとより安全
- テーブルが多い場合はparfileを使う
- 大規模データはparallelで高速化
Data Pumpの柔軟な機能を活用し、効率よく必要なデータだけをエクスポートして運用に役立てましょう。