Oracle 8i迁移到10g出现的问题及解决
2007-01-22 12:01:11 来源:WEB开发网核心提示:近日,为了适应新的形式,Oracle 8i迁移到10g出现的问题及解决,响应ORACLE 公司号召,体验ORACLE 公司的新产品的功能,- 手动把哪个JOB 加进去(也可以用提前把此JOB 删掉的方法,请参照METALINK:336206.995)BEGINdbms_job.isubmit(job=>23,wh
近日,为了适应新的形式,响应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 的修改了
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接