记录一下:
在从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位 http://www.linuxidc.com/Linux/2013-07/87916.htm
Oracle升级(10.2.0.1->10.2.0.3) http://www.linuxidc.com/Linux/2013-04/82820.htm
Oracle 10g rac升级到10.2.0.5 http://www.linuxidc.com/Linux/2013-03/80833.htm
Oracle 10g 升级到11g实训项目 http://www.linuxidc.com/Linux/2013-01/78233.htm
RedHat 5.5 Oracle RAC 数据库 从10.2.0.1升级到 10.2.0.5 http://www.linuxidc.com/Linux/2012-12/77099.htm
更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12