三通IT学院 门户 数据库 查看内容

2014-8-20 15:07
Oracle 重建控制文件和undo损坏的处理

摘要 : 由于服务器死机,只能重启服务器,重启服务器后启动数据库无法启动报如下错误: alter database mount Errors in file /u01/app/oracle/admin/SZXDB/udump/szxdb_ora_9233.trc: ORA-00600: internal error code, ...

时光与梦2014-8-20 15:073366
原作者: Liuxuebo
由于服务器死机,只能重启服务器,重启服务器后启动数据库无法启动报如下错误:
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;



鲜花

握手

雷人

路过

鸡蛋
收藏 分享 邀请
发表评论

最新评论

引用 未来罐 2015-2-13 11:01
三通IT学院是个学习技术的好地方,加油吧各位!
引用 stit2012 2016-8-19 21:00
谢谢分享。。。
引用 bud407 2016-9-20 21:32
感谢楼主的分享。厉害。
引用 yangtuocun 2016-9-22 22:09
感谢楼主的分享。厉害。
引用 yynhhm 2016-9-27 05:08
每天来学习,跟三通一起成长!

查看全部评论(6)

返回顶部