ORA-31634: 作业已存在
服务器上数据泵定时备份任务失败,查看日志报错如下:
[oracle@hs02 log]$ more expdp_bi_2019-11-02.log
Export: Release 11.2.0.4.0 - Production on 星期六 11月 2 00:00:03 2019
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31634: 作业已存在
ORA-31664: 如果采用默认值, 将无法构造唯一的作业名
tar: bi-2019-11-02*:无法 stat: 没有那个文件或目录
tar: 由于前次错误,将以上次的错误状态退出
-rw-r--r-- 1 oracle oinstall 557 10月 21 00:00 ./expdp_bi_2019-10-21.log
查找资料,解决方法如下:
第1步:查询生成清理DBA_DATAPUMP_JOBS的SQL语句
SQL> SELECT 'DROP TABLE ' || OWNER_NAME ||'.'|| JOB_NAME ||';' FROM DBA_DATAPUMP_JOBS WHERE STATE='NOT RUNNING'; 'DROPTABLE'||OWNER_NAME||'.'||JOB_NAME||';' ------------------------------------------------------------------------- DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_01; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_02; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_19; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_03; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_04; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_05; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_06; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_07; DROP TABLE SYSTEM.SYS_EXPORT_SCHEMA_08; 已选择8行。
执行SQL
第2步: 清理后再次查询确认DBA_DATAPUMP_JOBS是否清理完毕
SQL> SELECT OWNER_NAME, JOB_NAME, OPERATION, JOB_MODE,STATE, ATTACHED_SESSIONS FROM DBA_DATAPUMP_JOBS ORDER BY 1,2; 未选定行
PS:如果清理失败,则执行如下语句进行处理
EXEC DBMS_DATAPUMP.STOP_JOB(DBMS_DATAPUMP_ATTACH(‘SYS_EXPORT_SCHEMA_02’,’OAK’));