由于服务器死机,只能重启服务器,重启服务器后启动数据库无法启动报如下错误: alter database mount Errors in file /u01/app/oracle/admin/SZXDB/udump/szxdb_ora_9233.trc: ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [1449], [1448], [0x000000000], [], [], [] 在数据库进行mount时出错,也就是数据库在读取控制文件时出错 Oracle对此错误的解释是: [kccpb_sanity_check_2] indicates that the seq# of the last read block is higher than the seq# of the control file header block. This is indication of the lost write of the header block during commit of the previous cf transaction. 其解释是:kccpb_sanity_check_2 表示最后读取的控制文件块其 seq# 控制序列号大于控制文件头块的 seq# ,这是不应该出现的情况。这说明在最后执行提交的控制文件事务(CF Transaction)中,对于头块的写入丢失了。 这个错误如果只是存在于控制文件上,可以通过重建控制文件来解决,毫无疑问,这是最为简单的处理方式。 如果有备份,也可以从备份中恢复完好的控制文件,但是重建通常是很快捷的方式。 因为没有备份只能重建控制文件 因为数据库无法mount 所以控制文件无法进行trace 只能手写创建控制文件的SQL CREATE CONTROLFILE REUSE DATABASE "sxzdb" NORESETLOGS DATAFILE '/oracle/oradata/system01.dbf', '/oracle/oradata/undotbs01.dbf', '/oracle/oradata/sysaux01.dbf', '/oracle/oradata/users01.dbf', '/oracle/oradata/tbsaddm.dbf' NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'oracle/oradata/szxdb/redo01.log', GROUP 2 'oracle/oradata/szxdb/redo02.log', GROUP 3 'oracle/oradata/szxdb/redo03.log' CHARACTER SET GBK; |