【Oracle】Data Pumpでジョブを一時停止・再開する方法|attachオプションの使い方

【Oracle】Data Pumpでジョブを一時停止・再開する方法|attachオプションの使い方 Oracle

OracleのData Pump(expdp / impdp)は、高速で柔軟なデータ移行を実現するユーティリティですが、実行中のジョブを一時停止し、あとから再開する機能も備えています。

本記事では、その中でも特に便利な attachオプション を使ったジョブの一時停止・再開方法について、具体的な手順と注意点を紹介します。

Data Pumpのジョブを途中で一時停止するには

Data Pumpでエクスポートやインポートを実行すると、Oracleは自動的にジョブ名を割り当て、バックグラウンドで処理を進めます。

たとえば以下のようなコマンドでエクスポートを実行したとします:

expdp user/password@orcl \
  directory=DATA_PUMP_DIR \
  dumpfile=exp_data.dmp \
  logfile=exp_data.log \
  schemas=HR

この時点でData Pumpは「SYS_EXPORT_SCHEMA_01」のようなジョブ名を付与します。

一時停止の手順

実行中のData Pumpセッションで Ctrl + C を押すことで、インタラクティブモードに入ることができます。

プロンプトが次のように変化します:

Export> 

ここで以下のコマンドを実行して一時停止します:

Export> STOP_JOB=IMMEDIATE

この操作により、ジョブはキャンセルされるのではなく停止状態で保持されます。

ジョブを再開する方法(attach)

あとからジョブを再開したい場合は、attachオプションを使って対象のジョブに再接続します。

expdp user/password@orcl attach=SYS_EXPORT_SCHEMA_01

ジョブ名がわからない場合は、以下のSQLで確認できます:

SELECT job_name FROM dba_datapump_jobs WHERE state='DEFINING';

attach後の操作例:

Export> CONTINUE_CLIENT

このコマンドを入力することで、Data Pumpジョブが再開され、進行状況が再び表示されます。

補足:ジョブのキャンセルと削除

不要なジョブを完全に削除したい場合は、attachしたあとに以下を実行します:

Export> KILL_JOB

これにより、停止中のジョブが削除され、不要なリソースも開放されます。

まとめ

Data Pumpは、長時間実行される処理にも柔軟に対応できるよう、ジョブの停止と再開が可能です。ポイントは以下の通りです:

  • Ctrl + C でインタラクティブモードに移行
  • STOP_JOB=IMMEDIATE で一時停止
  • attach オプションで再接続して CONTINUE_CLIENT で再開
  • KILL_JOB で不要なジョブを削除

大規模データの移行や運用保守作業の中断・再開に非常に便利な機能なので、ぜひ使いこなしてみてください。