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