DATA PUMP の実行を中断したい場合
Oracle のインポート・エクスポートツールである DATA PUMP を実行中に何かしらの理由で中断したい場合、うっかりしてしまうと JOB が残ってしまいます。まぁ、実際のところ「Ctrl + C」で止めれると思い「Ctrl + C」を2回ほど押してしまい、再度エクスポートしたがいっこうに帰ってこなくて焦ったため、ここに記憶を残します。
DATA PUMP を正しく止める
DATA PUMP を正しく止めるには、「Ctrl + C」を1回押します。すると、次のプロンプトが返ってきます。
Import>
上記プロンプトの状態で kill_job と入力することで DATA PUMP を停止することができます。
うっかり「Ctrl + C」を2回押してしまった場合
うっかり「Ctrl + C」を2回押してしまった場合、インポートやエクスポートの作業は実行中のステータスのままコンソールに復帰します。 この時、インポートやエクスポート作業を停止させるには対象となるJOBの名前が必要となるため、次のSQL文にてJOBの名前を確認します。
SELECT * FROM DBA_DATAPUMP_JOBS;
OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS
---------- -------------------- ---------- ---------- ---------- ------ ----------------- -----------------
SYSTEM SYS_EXPORT_SCHEMA_01 EXPORT SCHEMA EXECUTING 1 0 2
JOBの名前が確認できたら、次のコマンドを実行します。
-- 上記例の場合、JOB_NAMEがSYS_EXPORT_SCHEMA_01のためattach = SYS_EXPORT_SCHEMA_01
expdp ユーザ/パスワード attach = SYS_EXPORT_SCHEMA_01
インポートの場合も同様に次のコマンドで実行します。
-- エクスポートの場合
expdp ユーザ/パスワード attach = JOBの名前
-- インポートの場合
impdp ユーザ/パスワード attach = JOBの名前
コマンドを実行するとDATA PUMPでのプロンプトが表示されるので kill_job を実行します。(次の例は、インポートの場合)
Import> kill_job
JOB を一時的に中断し、再開する場合
DATA PUMP を中断したい場合、次のコマンドを実行します。
Import> stop_job
中断した場合は、STATE が「STOP PENDING」となります。
SELECT * FROM DBA_DATAPUMP_JOBS;
OWNER_NAME JOB_NAME OPERATION JOB_MODE STATE DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS
---------- -------------------- ---------- ---------- ---------- ------ ----------------- -----------------
SYSTEM SYS_EXPORT_SCHEMA_01 EXPORT SCHEMA STOP PENDING 1 0 2
中断した作業を再開するには、次のコマンドを実行します。
Import> start_job