记录一下:
在从Oracle11g升级到版本11.2.0.3执行@?/rdbms/admin/catupgrd.sql的过程中,会碰到下面的报错信息:
ORA-00604: error occurred at recursive SQL level 1
ORA-01704: string literal too long
ORA-00932: inconsistent datatypes: expected XDB.XDB$SCHEMA_T got
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 173
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 231
ORA-06512: at line 288
ORA-00604: error occurred at recursive SQL level 1
ORA-00932: inconsistent datatypes: expected XDB.XDB$SCHEMA_T got
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 173
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 231
ORA-06512: at line 31
上面的错误信息跟升级Oracle Multimedia组件相关。根据Oracle的说法,在脚本后面有替换SQL重新执行,因此,在升级后如果Oracle Multimedia组件是VALID的,则该报错可以安全忽略。
升级后,查询Oracle Multimedia组件的状态:
SQL> conn / as sysdba
SQL> set serveroutput on
SQL> execute validate_ordim;
PL/SQL procedure successfully completed.
SQL> select comp_name,version,status from dba_registry where comp_id='ORDIM';
COMP_NAME VERSION STATUS
-------------------- ---------- ----------------------
Oracle Multimedia 11.2.0.3.0 VALID
该组件状态是VALID的,因此报错可忽略。
启示录:
生产环境尽量选择手工建库,安装最少和必需的组件。
--减少出Bug的几率和缩减升级脚本执行的时间。
推荐阅读:
Oracle 10g 10.2.0.1 32位迁移升级到10g 10.2.0.5 64位
Oracle升级(10.2.0.1->10.2.0.3)
Oracle 10g rac升级到10.2.0.5
Oracle 10g 升级到11g实训项目
RedHat 5.5 Oracle RAC 数据库 从10.2.0.1升级到 10.2.0.5