故障: 数据库服务器存储损坏,无法修复,系统无法启动;

备份: 只有一份数据库冷备;

包括数据文件,日志文件,控制文件( 没有参数文件)

恢复方案: 新服务器搭建相同版本的数据库,通过冷备启动数据库;

OS :Windows Server 2008

DB :Oracle 10.2.0.4.0

一:启动数据库时报错如下:

怀疑客户新安装的数据库和原数据库版本不一致

** 警告日志错误如下:
**

二: upgrade 方式启动数据库,执行 catupgrd.sql 报错 ORA-06544: PL/SQL: internal error, arguments: [56319]

查看 MOS 发现有很多相似的问题

按照 ID 1436552.1 可以解决这个问题

需要先执行 utlip.sql ,执行完成后在执行 catupgrd.sql 就没有报错了,并且可以正常 open 数据库;

ORA-06553: PLS-801: internal error [56319], ORA-06544: PL/SQL: internal error, arguments: [56319], [], [], [], [], [], [], [], ORA-00604 when using different bit datafiles than Oracle executable ( 文档 ID 1436552.1)

In this Document


APPLIES TO:

Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Information in this document applies to any platform.
Checked for relevance on 06-Aug-2016
SYMPTOMS

You relocated a database to another server and receive the following errors in the alert log:

Errors in file d:\oracle\product\10.2.0\admin\maxnips1\bdump\maxnips1_cjq0_5812.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-06544: PL/SQL: internal error, arguments: [56319], [], [], [], [], [], [], []
ORA-06553: PLS-801: internal error [56319]
CAUSE

The database on the new location was built using datafiles from a different word-size database. For example, you used the datafiles from a 64-bit database for your new 32-bit database OR you used the datafiles from a 32-bit database for your new 64-bit database. Either of these scenarios results in PL/SQL objects that are inconsistent with the Oracle executable.
SOLUTION

  1. Shutdown the database and restart in STARTUP UPGRADE mode.
  2. Under the <ORACLE_HOME>\RDBMS\Admin folder, run utlip.sql to invalidate all PL/SQL objects.
  3. Shutdown the database and restart in normal mode.
  4. Under the <ORACLE_HOME>\RDBMS\Admin folder, run utlrp.sql to recompile all invalid PL/SQL objects.
  5. Retest and the errors should be resolved.

作者:chenoracle

最后修改:2022 年 02 月 20 日
如果觉得我的文章对你有用,请随意赞赏