近日,為了適應新的形式,響應ORACLE 公司號召,體驗Oracle 公司的新產品的功能,決定對其中一個數據庫由8i 遷移到10g ,但作業過程中,出現了一些問題,現在給大家共享一下
遷移對象:
SUN SOLARIS8 Oracle8.1.7.4 NLS_CHARACTERSET ZHS16GBK
接受對象:
IBM AIX 5.2 Oracle10.1.0.5 NLS_CHARACTERSET ZHS16GBK
操作方法:
采用按USER EXPORT /IMPORT 的方法。
問題:
- import 的時候,XXX USER IMPORT 出現如下錯誤。 IMP-00017: following statement failed with ORACLE error 1: "BEGIN dbms_job.isubmit(job=>1,what=>'esupport.P_TM_close2;',next_date=>to" "_date('4000-01-01:00:00:00','YYYY-MM-DD:HH24:MI:SS'),interval=>'sysdate +(1" "/24)',no_parse=>true); END;" IMP-00003: Oracle error 1 encountered ORA-00001: unique constraint (SYS.I_JOB_JOB) violated ORA-06512: at "SYS.DBMS_JOB", line 97 ORA-06512: at line 1 About to enable constraints... Import terminated successfully with warnings.
解決方法:
- 檢查源DB(8i)的JOB ,發現XXX用戶占JOB ID 位置為1 select job,log_user,what from dba_jobs; JOB LOG_USER WHAT 1 XXXX esupport.P_TM_close2; - 檢查接受DB(10G)的JOB ,發現SYSMAN占用了JOB ID為1 (這個還沒弄清楚,只有10G這樣呢,還是其他版本也這樣呢?) select job,log_user,what from dba_jobs; JOB LOG_USER WHAT 1 SYSMAN EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS();
發現JOB ID 1 已經沒系統自己占用。所以報如上的錯誤。
- 手動把哪個JOB 加進去(也可以用提前把此JOB 刪掉的方法,請參照METALINK:336206.995)
BEGIN dbms_job.isubmit(job=>23, what=>'esupport.P_TM_close2;', next_date=>to_date('4000-01-01:00:00:00','YYYY-MM-DD:HH24:MI:SS'), interval=>'sysdate +(1/24)',no_parse=>true); END; begin dbms_job.remove(23); end;
到此問題得到解決,下面就是做一些檢查了,DB LINK/TNSNAME 修改/JOB 以及MQ 的修改了