客户端程序无法连接数据库(数据库版本为10205),连接服务器发现数据库已宕机报以下错误信息
ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [7362],
[7361], [0x000000000], [], [], [], []
根据http://dreamsanqin.blog.51cto.com/845412/1213861链接所示处理方法,启动数据库至挂载状态。发现根本无法挂载数据库。
SQL> conn /as sysdba Connected to an idle instance. SQL> startup mount ORACLE instance started. Total System Global Area 1207959552 bytes Fixed Size 2095864 bytes Variable Size 369100040 bytes Database Buffers 822083584 bytes Redo Buffers 14680064 bytes ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [7362], [7361], [0x000000000], [], [], [], [] SQL>
凌晨的rman备份没有备份成功,归档日志全部已删除。于是根据1天前控制文件的备份,恢复数据库控制文件并挂载数据库。然后重建控制文件打开数据库,如下:
RMAN> restore controlfile from '/home/oracle/o1_mf_s_819428437_8wycpofo_.bkp'; Starting restore at 03-JUL-13 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=321 devtype=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output filename=/home/oracle/orabase/oradata/ORACLE/control01.ctl output filename=/home/oracle/orabase/oradata/ORACLE/control02.ctl output filename=/home/oracle/orabase/oradata/ORACLE/control03.ctl Finished restore at 03-JUL-13 RMAN> SQL> conn /as sysdba Connected. SQL> alter database mount; Database altered. SQL> alter database backup controlfile to trace as '/home/oracle/controlfile.txt'; Database altered. SQL> shutdown immediate ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup nomount; ORACLE instance started. Total System Global Area 1207959552 bytes Fixed Size 2095864 bytes Variable Size 369100040 bytes Database Buffers 822083584 bytes Redo Buffers 14680064 bytes SQL> @/home/oracle/control.sql; Control file created. SQL> alter database open; Database altered. SQL>
打开数据库不到2分钟数据库自动关闭,查看警告日志信息发现如下报错信息:
ORA-00600: internal error code, arguments: [4194], [5], [4], [], [], [], [], []
ORA-600 [4194]错误的官方解释是:"Undo Record Number Mismatch While Adding Undo Record",当数据库通过REDO恢复来增加UNDO记录时,发现UNDO记录的号码不匹配,也就是出现了不一致。利用将回滚表空间设置改为manual,设置隐含参数_corrupted_rollback_segments尝试打开数据库。
通过语句创建pfile文件
SQL> conn /as sysdba Connected to an idle instance. SQL> create pfile from spfile; File created. SQL>
重命名spfile文件名,修改pfile文件加入
*._corrupted_rollback_segments= _SYSSMU1$, _SYSSMU2$, _SYSSMU3$, _SYSSMU4$, _SYSSMU5$, _SYSSMU6$, _SYSSMU7$, _SYSSMU8$, _SYSSMU9$, _SYSSMU10$ *.undo_management=MANUAL
使用initORACLE.ora启动数据库。数据库暂时可以打开,尽快导出业务数据重建数据库导入业务数据。
SQL> conn /as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 1207959552 bytes Fixed Size 2095864 bytes Variable Size 369100040 bytes Database Buffers 822083584 bytes Redo Buffers 14680064 bytes Database mounted. Database opened. SQL>
参考地址:http://yangtingkun.itpub.net/post/468/497211