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.dmp
〜emp_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を活用していきましょう。