Oracle Databaseツールのデータポンプはバックグラウンドで実行されるため、[Ctrl+C]では停止できません。
巨大なデータをexpdpした時に、パラメータ間違い等で停止する際には一連の停止手順が必要となります。
今回はデータポンプの停止手順を紹介したいと思います。
データポンプexpdp実行
停止手順を試すために、まずは一般的なスキーマ指定のexpdpを実行します。
[oracle@localhost]$ expdp system SCHEMAS=scott DIRECTORY=dumpdir DUMPFILE=hoge.dmp LOGFILE=hoge.log
Export: Release 11.2.0.4.0 - Production on Thu Nov 17 18:11:45 2019
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** SCHEMAS=scott DIRECTORY=dumpdir DUMPFILE=hoge.dmp LOGFILE=hoge.log
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 515.4 MB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
(省略)
expdpのジョブ名を確認
datapumpはジョブとして起動するので、実行されているジョブ名を確認します。
赤字で記載している箇所が実行されているジョブ名となります。
[oracle@localhost]$ sqlplus system
SQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 17 18:11:56 2019
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> 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 1 3
対話モードでジョブにアタッチ
停止するために、まずはexpdpジョブにアタッチします。
[oracle@localhost]$ expdp system ATTACH=SYS_EXPORT_SCHEMA_01
Export: Release 11.2.0.4.0 - Production on Thu Nov 17 18:11:56 2019
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Job: SYS_EXPORT_SCHEMA_01
Owner: SYSTEM
Operation: EXPORT
Creator Privs: TRUE
GUID: 97D702BC09723432E053C8BE1EACF20A
Start Time: Thursday, 17 November, 2019 18:11:48
Mode: SCHEMA
Instance: hogeinst03
Max Parallelism: 1
EXPORT Job Parameters:
Parameter Name Parameter Value:
CLIENT_COMMAND system/******** SCHEMAS=scott DIRECTORY=ORA_DUMP DUMPFILE=hoge.dmp LOGFILE=hoge.log
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: /dumpdir/hoge_test.dmp
bytes written: 4,096
Worker 1 Status:
Process Name: DW00
State: EXECUTING
Object Schema: scott
Object Name: SCOTT_DATA
Object Type: SCHEMA_EXPORT/TABLE/TABLE
Completed Objects: 515
Worker Parallelism: 1
Export>
ジョブ停止コマンドを実行
ジョブにアタッチできたら、kill_jobコマンドを実行してdatapumpジョブを停止します。
Export> kill_job
Are you sure you wish to stop this job ([yes]/no): yes
[oracle@localhost]$
実行中のジョブがないことを確認
DBA_DATAPUMP_JOBSビューを確認して、実行中ジョブがいないことを確認します。
[oracle@localhost]$ sqlplus system
SQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 17 18:12:30 2019
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> select * from dba_datapump_jobs;
no rows selected
expdbのログには以下の様なエラーが出力されます
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" stopped due to fatal error at Thu Nov 17 18:12:14 2019 elapsed 0 00:00:19
以上でdatapumpジョブ停止完了です。