【Oracle】Data Pumpで複数テーブルをまとめてエクスポートする方法

【Oracle】Data Pumpで複数テーブルをまとめてエクスポートする方法 Oracle

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スキーマ内の empdeptbonus の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の柔軟な機能を活用し、効率よく必要なデータだけをエクスポートして運用に役立てましょう。