はじめに
Oracle Data Pump実行中に、途中でエラーが出てしまったり、条件を変更してやり直したいという場合に備え、本記事ではエクスポート時のジョブの中断、再開、強制終了の方法について解説します。
特にOracle Data Pumpのエクスポートやインポートは数時間、データ量によっては数10時間かかる場合がありますので、知っておくべき操作になります。
また、本記事の内容は、
第8回 Oracle DBaseCamp
【Oracle Data Pumpによるエクスポートとインポート】
に登壇した際の内容になります。
詳細についてご覧になりたい方は、以下の録画や資料を参考にしてみてください。
- 録画
*資料
ジョブの中断
Oracle Data Pumpでエクスポートおよびインポートの実行を中断したい場合は、「Ctrl + C」を1回押します。
その後、stop_jobコマンドを実行し、続いての確認に対して「yes」と入力することで、エクスポートが中断され、コンソールに復帰します
stop_job
「Ctrl + C」を2回押してしまうと実行中のままコンソールに復帰してしまうので注意
ジョブの再開
ジョブを中断した後、ジョブを再開させるには、先ほど実行していたジョブ名をコマンドに入力する必要があります。
ジョブ名の確認方法の1つとしては、エクスポート実行時のログを確認する方法があります。
Starting “demo"."SYS_EXPORT_FULL_02": demo/********@pdb1 parfile=expdp.par
----Data Pumpの実行ログ----
上記の例だと、SYS_EXPORT_FULL_02と書いているのがジョブ名になります。
もう1つの確認方法としては、ジョブを中断する前に実行中のユーザーでSQL*Plusへ接続して、実行しているジョブを確認する方法があります。
SELECT * FROM USER_DATAPUMP_JOBS;
上記のSQLを実行することで、実行中のジョブの場合、STATE列に「EXECUTING」と表示されます。
JOB_NAME OPERATION JOB_MODE STATE DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS
-------------------- ---------- ---------- --------------- ---------- ----------------- -----------------
SYS_EXPORT_FULL_01 EXPORT FULL NOT RUNNING 0 0 0
SYS_EXPORT_FULL_02 EXPORT FULL EXECUTING 0 0 0
このジョブ名を用いて、ジョブを再開させるには、以下のコマンドを実行します。
expdp <ユーザー名>/ <パスワード> attach=<ジョブ名>
その後、「start_job」と入力するとジョブを再開させることができます。
start_job
ジョブの強制終了
Oracle Data Pumpでエクスポートおよびインポートの実行を強制終了したい場合は、「Ctrl + C」を1回押します。
その後、kill_jobコマンドを実行し、続いての確認に対して「yes」と入力することで、実行が強制終了され、コンソールに復帰します
kill_job
強制終了したジョブは再開できず、制御表およびダンプ・ファイルが削除されます。
ログ・ファイルは、削除されません。
おわりに
今回は、Oracle Data Pump実行時のジョブの中断、再開、強制終了の方法について解説しました。
Oracle Data Pumpについて、更に詳しく知りたい方は以下の記事もご参考にしてみてください。