处理器由32位变成了64位,重装oracle软件之后,权衡各种因素,db我选择了把冷备直接挂接的办法迁移,迁移之后遇到了问题...




顺利挂载db之后,通过应用程序或者第三方工具(如plsql developer)连接时出现ORA-06553: PLS-801: internal error [56319] 等错误。解决方法如下:


SQL> shutdown immediate


SQL> startup upgrade


SQL> set echo on


SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql


SQL> select status from dba_objects


2 where object_name='DBMS_STANDARD'


3 and object_type='PACKAGE'


4 and owner='SYS';


如果invalid,则需要重新编译,执行以下语句


SQL> alter package dbms_standard compile;


如果是valid,则不需要执行上面一条语句


SQL> select object_name from dba_objects where status='INVALID';


如果返回值不为空,则需要执行以下语句


SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql


如果语句执行失败,则依次执行下列语句


$ cd /u01/app/oracle/product/102/db_1/olap/admin/


SQL> @?/olap/admin/catnoamd.sql


SQL> @?/olap/admin/catnoaps.sql


SQL> @?/olap/admin/catnoxoq.sql


SQL> @?/olap/admin/olapidrp.plb


SQL>@?/olap/admin/olap.sql SYSAUX TEMP;


然后再次执行


SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql


再次查询


SQL> select object_name from dba_objects where status='INVALID';


此时应为空


SQL> set echo off


SQL> shutdown immediate;


SQL> startup


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html