如何正确停止expdp导出任务

有时候在进行导出任务时可能发生紧急情况(如磁盘空间不够了等)需要停止导出,这种时候直接按Ctrl + c终止到后台查看进程多半会发现expdp进程还是存在的,而且dmp文件还一直在增加,任务并没有实际停止下来。

例如:

先按Ctrl + c,expdp会跳到命令行状态,再键入exit退出。

Export> exit

会发现实际dmp文件的大小还在增加,登录数据库查询,会发现任务还在进行。

SQL> SELECT JOB_NAME,STATE FROM DBA_DATAPUMP_JOBS;

JOB_NAME                  STATE
------------------------  --------------
SYS_EXPORT_SCHEMA_01      EXECUTING

1 rows selected.
SQL>

正确停止任务的方法是使用stop_job:

[shell]$ expdp user/pass@orcl attach=SYS_EXPORT_SCHEMA_01
Export: Release 12.2.0.1.0 - Production on Fri Jul 12 21:03:37 2019

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Job: SYS_EXPORT_SCHEMA_01
.........

Export> stop_job=immediate 
Are you sure you wish to stop this job ([yes]/no): yes

再次查询任务状态

SQL> SELECT JOB_NAME,STATE FROM DBA_DATAPUMP_JOBS;

JOB_NAME                  STATE
------------------------  --------------
SYS_EXPORT_SCHEMA_01      NOT RUNNING

1 rows selected.
SQL>

发现任务已经是NOT RUNNING状态了。

再删除dmp文件即可。

上一篇
下一篇