在服務器上通過計划任務部署了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’));