Killing a Data Pump Job
Standard Method
Determine the active Data Pump job name.
SQL> SELECT j.owner_name, j.job_name,
j.job_mode, j.state, s.session_type, s.saddr
FROM dba_datapump_jobs j,dba_datapump_sessions s
WHERE UPPER(j.job_name) = UPPER(s.job_name);
Owner JOB_NAME JOB_MODE STATE SESSION_TYPE SADDR
--------- --------------- ------------ ------------ --------------- --------
SYSTEM xSCHEMA SCHEMA EXECUTING WORKER AD09C2D8
SYSTEM xSCHEMA SCHEMA EXECUTING MASTER AD09E8A8
SYSTEM xSCHEMA SCHEMA EXECUTING DBMS_DATAPUMP AD0BFA08
Issue the command to kill job.
OS> expdp system/password attach=xSCHEMA Export> kill_job Export> Are you sure you wish to stop this job ([yes]/no): yes
If this is an import then use impdp correspondingly.
Via SQL
DECLARE
h1 NUMBER;
BEGIN
h1:=DBMS_DATAPUMP.ATTACH('JOBNAME','SYSTEM');
DBMS_DATAPUMP.STOP_JOB (h1, 1, 0);
END;
/
- Set JOBNAME to your Data Pump jobname.
- Change SYSTEM user, to the user performing Data Pump operation.
Advanced Method
If the standard method does not work and the job is no longer active.
- Log into SQLPlus as SYS.
- Confirm JOB_NAME and OWNER.
- Drop the corresponding job table.
DROP TABLE <schema user who started job>.<JobTableName>;
sqlplus sys/password as sysdba
COL owner_name FORMAT a15 COL job_name FORMAT a30 COL operation FORMAT a15 SELECT owner_name, job_name, operation,state FROM dba_datapump_jobs;
OWNER_NAME JOB_NAME OPERATION STATE --------------- --------------- -------------- -------------- SYSTEM XSCHEMA EXPORT NOT RUNNING
DROP TABLE SYSTEM.XSCHEMA;