oracle手动执行导出报ora-31634、ora-31664

前端之家收集整理的这篇文章主要介绍了oracle手动执行导出报ora-31634、ora-31664前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在服务器上通过计划任务部署了oracle的备份任务,最近发现有个表空间没有备份成功,手动执行后,发现报一下错误百度搜索结果如下

ORA-31634: job already exists(JOB已经存在)

ORA-31664: unable to construct unique job name when defaulted(采用默认方式,不能创建唯一JOB名)

 

解决方法:

第一步:查询生成清理DBA_DATAPUMP_JOBS的sql语句

1 select drop table  || owner_name || . || job_name || ; 
2 from dba_datapump_jobs 
3 where state = NOT RUNNING 

 

复制生成的处理sql语句,进行对表DBA_DATAPUMP_JOBS进行清理,例句如下:

...............
drop table neands3.SYS_EXPORT_SCHEMA_06;
drop table neands3.SYS_EXPORT_SCHEMA_40;
...............

第二步:清理后再次查询确认DBA_DATAPUMP_JOBS是否清理完毕

1 SELECT owner_name,job_name,operation,job_mode,2 state,attached_sessions 
3 FROM dba_datapump_jobs 
4 ORDER BY 1,2;

 

第一步执行完已经可以备份了,所以没有执行第三步。第三步:如果清理失败,则执行如下语句进行处理    EXEC DBMS_DATAPUMP.STOP_JOB(DBMS_DATAPUMP_ATTACH(‘SYS_EXPORT_SCHEMA_02’,’OAK’));

猜你在找的Oracle相关文章