ITPUB??ì3
ITPUB论坛 » Oracle数据库管理 » 前在线日志文件损坏与ora-600 [4000]处理

标题: [精华] 前在线日志文件损坏与ora-600 [4000]处理
离线 logzgh
缥缈游侠


精华贴数 4
个人空间 0
技术积分 3672 (445)
社区积分 50 (5569)
注册日期 2004-8-5
论坛徽章:0
      
      

发表于 2006-8-14 17:23 
前在线日志文件损坏与ora-600 [4000]处理

这次又是一台机器上面有两个实例A和B。又是由于非当前的在线日志文件的状态是处于closed状态的(裸设备),于是dba将A节点的非当前在线日志文件填加到了B节点上面去了,于是在A节点日志发生切换时,导致了当前在线日志文件损坏。

一般情况下当前在线日志文件损坏也是还好处理的,但是这次却是较为复杂。。。。

系统环境:aix p550,oracle 9206




首先检查v$datafile_header,发现checkpoint_change#都是一致的。

于是按着一般的当前在线日志文件损坏步骤处理:

增加下列参数至Oracle启动文件:

_allow_resetlogs_corruption=TRUE

_corrupted_rollback_segments=(list of all your rollback segments)
注释掉启动文件中的rollback_segments参数或undo_tablespaces参数
startup mount
recover database until cancel
alter database open resetlogs;

一般情况下,open resetlogs后最容易出现的600号错误为ora-600 [2662]和ora-600 [2256]。这两个错误也相对来说好处理一些,只需要采用10015事件adjust scn号即可。

但是这次我却是碰到了ora-600 [4000]号错误。

Errors in file /home/oracle/app/oracle/admin/test/udump/test_ora_2838638.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [4000], [46], [], [], [], [], [], []
Mon Aug 14 15:05:31 2006
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 2838638

metalink上对该错误的解释是:

DESCRIPTION:

This has the potential to be a very serious error.

It means that Oracle has tried to find an undo segment number in the
dictionary cache and failed.

ARGUMENTS:
Arg [a] Undo segment number

FUNCTIONALITY:
KERNEL TRANSACTION UNDO

IMPACT:
INSTANCE FAILURE - Instance will not restart
STATEMENT FAILURE

由于一开始_corrupted_rollback_segments里面只是列到_syssmu20$,于是将它列到_syssmu60$。重试后还是报这个错。

增加10513事件,禁止smon进程回滚,结果还是一样。

在600号的Trace文件中有:

ORA-00600: internal error code, arguments: [4000], [46], [], [], [], [], [], []
Current SQL statement for this session:
select ctime, mtime, stime from obj$ where obj# = :1

于是我怀疑会不会是undo$基表中没有46号回滚段的信息?

采用bbed检查undo$表格,发现里面是有这个回滚段的信息。

于是我想这个错误是出现在访问obj$基表上面,也就是说该表格的scn号与系统当前的scn号是不一致的。于是我想偿试修改该块的scn号。依然采用bbed,偿试修改该块的scn号。修改后,结果还是一样的。

于是我想应该是obj$基表上还有一个未提交的事务。于是继续查看trace文件,发现如下信息:

Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x002e.025.00005b2c 0x00800f78.080c.01 --U- 1 fsc 0x0000.c5b527cf

data_block_dump,data header at 0x700000001f6e044
===============
tsiz: 0x1fb8
hsiz: 0xea
pbl: 0x700000001f6e044
bdba: 0x0040007a
76543210
flag=--------

很明显,是有一个未提交的事务,于是我就偿试用bbed修改该事务的状态,将该事务改成提交状态。

首先找到itl信息:find /x 00005b2c,找到flag状态,现在其状态是20,也就是未提交,将之修改为80(提交状态),并修改checkval。

之后去掉所有隐含参数,正常启动数据库,发现后台报出了ora-600[2662]错误。哈哈,事情至此就好办了,采用10015 adjust scn号,正常启动数据库:

Mon Aug 14 15:47:23 2006
Completed: ALTER DATABASE OPEN
Mon Aug 14 15:47:23 2006
Fatal internal error happened while SMON was doing active transaction recovery.
Mon Aug 14 15:47:23 2006
Errors in file /home/oracle/app/oracle/admin/test/bdump/test_smon_2293872.trc:
ORA-00600: internal error code, arguments: [ktpridestroy2], [], [], [], [], [], [], []
SMON: terminating instance due to error 600
Instance terminated by SMON, pid = 2293872

从这块日志可以看出数据库正常启动后,马上因为smon回滚又导致了实例宕下来。

增加10513事件,启动数据库,一切正常。

想drop tablespce undotbs1,但是报出59号回滚段还有active事务无法删除。

于是增加_corrupted_rollback_segments参数,将数据库启来,新建一个回滚表空间,将原来的回滚表空间重建后,一切正常。


__________________
我们就是数据库的医生诊断数据库问题就像看病一样,望闻问切=======MSN:logzgh@hotmail.com=======欢迎访问我的Bloghttp://blog.itpub.net/logzgh=======
只看该作者    顶部
在线/呼叫 leetaedong
老会员


精华贴数 0
个人空间 0
技术积分 3434 (479)
社区积分 3197 (502)
注册日期 2005-5-10
论坛徽章:54
      
      

发表于 2006-8-14 17:41 
Re: 前在线日志文件损坏与ora-600 [4000]处理



QUOTE:
最初由 logzgh 发布
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x002e.025.00005b2c 0x00800f78.080c.01 --U- 1 fsc 0x0000.c5b527cf

data_block_dump,data header at 0x700000001f6e044
===============
tsiz: 0x1fb8
hsiz: 0xea
pbl: 0x700000001f6e044
bdba: 0x0040007a
76543210
flag=--------

很明显,是有一个未提交的事务


赞一个 ,有个问题要问一下:
lz,你是从哪里得出有一个未提交的事务的?
itl 的flag、lock吗?还是要到transaction table slot中看。

因为fast commit cleanout的时候,产生的flag,lock标志和这 是一样的。


只看该作者    顶部
离线 d.c.b.a
人生积极一点好


精华贴数 6
个人空间 0
技术积分 14675 (86)
社区积分 1362 (906)
注册日期 2004-2-19
论坛徽章:24
现任管理团队成员Heart of PUBITPUB北京九华山庄2008年会纪念徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章会员2007贡献徽章
2009新春纪念徽章生肖徽章2007版:牛生肖徽章2007版:猴ITPUB新首页上线纪念徽章  

发表于 2006-8-14 19:46 
牛, 这也能搞出来. 实在太......了


__________________

非常规Oracle数据库恢复服务! DataReport产品!

个人主页: AnySQL | dbatools
联系方法: MSN: anysql©live.com, Skype: anysql, QQ: 37223884
只看该作者    顶部
离线 Fenng
版主


精华贴数 32
个人空间 0
技术积分 53402 (12)
社区积分 6622 (266)
注册日期 2001-12-18
论坛徽章:32
现任管理团队成员2007年度最佳版主ITPUB北京2009年会纪念徽章生肖徽章2007版:鼠生肖徽章2007版:虎生肖徽章2007版:虎
生肖徽章2007版:蛇     

发表于 2006-8-14 20:00 
晕, 原来是你啊,


__________________
我的Blog: www.dbanotes.net   


点击即可用 Google Reader 订阅   

支付宝官方Blog

4nyth1n9 th4t can 90 wr0n9 wi11 9o wr0ng  
不想做厨师的裁缝不是好司机


只看该作者    顶部
离线 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111991 (4)
社区积分 11930 (151)
注册日期 2001-12-12
论坛徽章:52
现任管理团队成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京2009年会纪念徽章ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2006-8-14 20:01 
这种错误也能出…… 该dba也太不谨慎了!


__________________
twitter: http://twitter.com/fengchunpei
只看该作者    顶部
离线 Fenng
版主


精华贴数 32
个人空间 0
技术积分 53402 (12)
社区积分 6622 (266)
注册日期 2001-12-18
论坛徽章:32
现任管理团队成员2007年度最佳版主ITPUB北京2009年会纪念徽章生肖徽章2007版:鼠生肖徽章2007版:虎生肖徽章2007版:虎
生肖徽章2007版:蛇     

发表于 2006-8-14 20:06 
很快就同事了


__________________
我的Blog: www.dbanotes.net   


点击即可用 Google Reader 订阅   

支付宝官方Blog

4nyth1n9 th4t can 90 wr0n9 wi11 9o wr0ng  
不想做厨师的裁缝不是好司机


只看该作者    顶部
离线 empo007
高级会员



精华贴数 0
个人空间 0
技术积分 4619 (339)
社区积分 82 (4354)
注册日期 2004-6-24
论坛徽章:4
会员2007贡献徽章授权会员生肖徽章2007版:鼠ITPUB新首页上线纪念徽章  
      

发表于 2006-8-14 20:11 
学习


__________________
http://empo007.itpub.net
只看该作者    顶部
离线 oracledba
高级会员


精华贴数 2
个人空间 0
技术积分 12322 (108)
社区积分 206 (2649)
注册日期 2001-9-26
论坛徽章:12
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:兔2008北京奥运纪念徽章:蹦床
2008北京奥运纪念徽章:跳水ITPUB新首页上线纪念徽章数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星数据库板块每日发贴之星

发表于 2006-8-14 20:16 
为什么说10513是禁止smon做事务恢复的??


__________________
MSN: rogerhuang75@hotmail.com
只看该作者    顶部
离线 wzsh-Sun
资深会员



精华贴数 1
个人空间 0
技术积分 1259 (1577)
社区积分 93 (4104)
注册日期 2004-5-24
论坛徽章:1
授权会员     
      

发表于 2006-8-14 20:58 
前面看的还比较顺,但下面有点看不懂了,总觉得有点怪怪的,楼主有没有看一下那个对应的事务到底是做了什么东西?


只看该作者    顶部
离线 NinGoo
何乡是吾乡


来自 杭州
精华贴数 4
个人空间 235
技术积分 12969 (99)
社区积分 4335 (390)
注册日期 2004-12-7
论坛徽章:95
现任管理团队成员ITPUB元老八级虎吧徽章生肖徽章2007版:狗2008北京奥运纪念徽章:篮球2008北京奥运纪念徽章:射箭
2008北京奥运纪念徽章:水球2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:网球2008北京奥运纪念徽章:篮球2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:拳击

发表于 2006-8-14 21:06 
这个,也太强了吧,直接改file。。。

10513事件不熟,找时间看看


__________________
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰网域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:060528号 联系我们 法律顾问