幸运还是不幸,又遭遇ORA-00600 [kfgFinalize_2],导致业务宕机20分钟

上一篇 / 下一篇  2007-11-25 00:00:00 / 个人分类:管理

为生产系统扩容,准备把两台rac的机器的内存全部从8G升级到16G,凌晨3点开始实施,方案如下:首先应用全部切换到节点1,然后停节点2,加内存,然后节点2起来,不幸发生,节点2的ASM实例启不来,本来实例是自动启动的,手工去启动也启不来,磁盘不能被MOUNT,报错如下:
Errors in file /u01/app/oracle/admin/+ASM/udump/+asm2_ora_11560.trc:
ORA-00600: internal error code, arguments: [kfgFinalize_2], [], [], [], [], [], [], []

打开trace文件,错误如下:
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kfgFinalize_2], [], [], [], [], [], [], []
Current SQL statement for this session:
ALTER DISKGROUP ALL MOUNT
后面就是一堆天书的二进制码,看来是磁盘组mount的时候出现问题。难道是加内存出现了问题,内存拔掉,问题依旧。网上搜索了半天,发现是oracle的一个bug。
解决的办法有三个:
1、升级到10.2.0.3
2、打一个patch上去
3、把活着的那个节点的PMON进行kill掉,然后重新启动活着的节点的实例,使得强制对数据库进行恢复

评估一下,方案1动作太大,而且这个版本没有测试使用过。方案2的readme文件里明确写着这个patch可能会造成数据丢失,要在oracle support的支持下做,俺们没有support,看来方案三比较可行,可问题是现在至少有一个节点活着,如果强行kill pmon进程后,节点1也起不来了,那就全玩完了,只有准备好切dataguard的方案先了。后来在oracle的论坛上看见说不用kill pmon的,只要把两个节点都宕下来,然后启动就ok。这个方案最安全,到现在无论哪种方案都是要停业务的,估计最少要影响20分钟业务,向上级汇报,得到批准。
把节点1也宕下来,干脆把内存也插上去。很多资料说这个bug下至少有一个节点能正常mount上来的,既然节点2不能mount上来,那干脆先起节点2,能成功mount了再起节点1。节点2启动后,mount正常,启动节点1,看见SUCCESS: diskgroup DATA was mounted提示出来了,放心了。

数据库全部起来后,业务恢复正常,内存也成功的从8G升级到了16G


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-07-26  
  12345
6789101112
13141516171819
20212223242526
2728293031  

我的存档

数据统计

  • 访问量: 1052
  • 日志数: 250
  • 建立时间: 2008-01-01
  • 更新时间: 2008-01-01

RSS订阅

Open Toolbar