Oracle8i迁移到10g出现的问题及解决

文章作者 100test 发表时间 2007:03:14 14:03:21
来源 100Test.Com百考试题网


近日,为了适应新的形式,响应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 

0select 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这样呢,还是其他版本也这样呢?)

0select 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错误:ORA-00904[1]
Oracle归档模式的命令及参数说明
oracle中实现自动增长列
针对Oracle10gEM乱码之快速解决方法
Oracle8i迁移到10g出现的问题及解决
终极恢复孰弱孰强-DULvsAUL
Oracle数据库数据操作和控制语言详解
案例学习Oracle错误:ORA-00904[2]
Oracle使用新List分割方法提高灵活性
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛