【Oracle】Data Pumpのパラレル処理でインポート・エクスポートを高速化する方法

【Oracle】Data Pumpのパラレル処理でインポート・エクスポートを高速化する方法 Oracle

OracleのData Pump(expdp/impdp)は、データのエクスポート・インポートを高速かつ柔軟に行うためのツールです。大規模データを扱う際に処理時間を短縮するための有効な手段が、パラレル処理(並列処理)の活用です。本記事では、Data Pumpにおけるparallelオプションの使い方と注意点について詳しく解説します。

parallelオプションとは?

parallelオプションを使うことで、Data Pumpの処理を複数のワーカープロセスに分けて並行実行できます。特に大量データの処理時に効果を発揮し、処理時間を大幅に短縮することが可能です。

エクスポート時の基本構文(expdp)

expdp ユーザー名/パスワード directory=ディレクトリ名 dumpfile=ファイル名_%U.dmp logfile=ログファイル名.log parallel=N

使用例:

expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp_%U.dmp logfile=emp.log tables=emp parallel=4

このコマンドでは、empテーブルを4プロセスで並列にエクスポートし、emp_01.dmpemp_04.dmpのように複数ファイルで出力します。

インポート時の基本構文(impdp)

impdp ユーザー名/パスワード directory=ディレクトリ名 dumpfile=ファイル名_%U.dmp logfile=ログファイル名.log parallel=N

使用例:

impdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp_%U.dmp logfile=emp_import.log tables=emp parallel=4

エクスポート時と同様に、parallel=4 を指定することで、複数のスレッドでデータを並列にインポートします。

パラレル処理の効果と注意点

パフォーマンス向上の効果

  • 大容量のテーブルを高速でエクスポート/インポートできる
  • CPUやI/Oリソースを有効活用し、待機時間を減少

注意点と制約

  • dumpfileに%Uを使う必要がある(例:data_%U.dmp
  • ファイル数がparallelの値以上になるように設計する
  • 使用できるパラレル数はライセンスやCPU数に依存
  • インポート時は、エクスポート時と同じ数の.dmpファイルを用意しておく

パラメータファイル(parfile)での記述例

複数のオプションを使いたい場合は、パラメータファイルを作成してまとめることができます。

exp.par ファイル例:

directory=DATA_PUMP_DIR
dumpfile=emp_%U.dmp
logfile=emp.log
tables=emp
parallel=4

実行コマンド:

expdp scott/tiger parfile=exp.par

まとめ

parallelオプションを使えば、OracleのData Pumpでのデータ移行処理を大幅に高速化できます。特に、大規模なテーブルやスキーマを扱う場面では、並列処理の有無が処理時間に直結します。

ただし、parallelの指定には適切なファイル数やシステムリソースの確認も重要です。最適なパラレル数を見極め、効率よくData Pumpを活用していきましょう。