Chinaunix首页 | 论坛 | 博客
  • 博客访问: 455135
  • 博文数量: 97
  • 博客积分: 3396
  • 博客等级: 中校
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-25 13:14
文章分类

全部博文(97)

文章存档

2014年(1)

2013年(2)

2012年(7)

2011年(13)

2010年(18)

2009年(7)

2007年(10)

2006年(39)

分类: Oracle

2011-02-24 11:08:33

 

在pfile中加入如下参数
_allow_resetlogs_corruption=TRUE

重新启动数据库,利用until cancel恢复
SQL>recover database until cancel;
Cancel
如果出错,不再理会,发出
SQL>alter database open resetlogs;

ora-600  2256 6 1073741824 2811 2669208191 [] [] []

该错误数据库需要的scn和current scn处于不一致状态。

利用ora-00600 [2262]类似的算法:

引用
ORA-600 [2662] [a] [b] [c] [d] [e]
Arg [a] Current SCN WRAP
Arg [b] Current SCN BASE
Arg [c] dependent SCN WRAP
(注:为了存储更大的SCN值,当SCN BASE到足够大并开始重置的时候,SCN WRAP将加1)
Arg [d] dependent SCN BASE
Arg [e] Where present this is the DBA where the dependent SCN came from
也就是Arg[d]的值是从哪个block中找到的,通常是一个data block address。
通过这几个参数根据一定的规则可以计算出我们需要的level。计算规则如下:
Arg [c]*4得出一个数值,假设为V_Wrap
如果Arg [d]=0,则V_Wrap值为需要的level
Arg [d] < 1073741824,V_Wrap+1为需要的level
Arg [d] < 2147483648,V_Wrap+2为需要的level
Arg [d] < 3221225472,V_Wrap+3为需要的level

将level设置为11247=2811*4+3,使用如下事件进行scn递增,(注意数据库处于mount状态)
alter session set events '10015 trace name adjust_scn level 11247’,再次尝试进行open,alert日志继续报ora-600 4193 42665 42729 【】 【】 【】 【】 【】,其后台跟踪文件显示
引用
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [4193], [42665], [42729], [], [], [],
 
4194并不需要设置_CORRUPTED_ROLLBACK_SEGMENTS参数,尝试将undo_management设置为manual,再次尝试将数据open
阅读(797) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-06 09:13:52

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com