用隐含参数_corrupted_rollback_segments打开数据库后遇到的离奇问题

某用户反映了一个奇怪现象:
Select sum(cost),name from test_table where name='A' group by name;
Select sum(cost),name from test_table group by name;显示结果中name='A'的值和上面sql统计结果不同。
数据库'疯了'吗?[@more@]

用户回忆说之前服务器遭遇断电,数据库undo表空间受损。之后使用_corrupted_rollback_segments参数强制打开数据库,并重建了undo表空间,数据库继续使用。于是在运行业务报表时发现某些统计出错(类似上面sql的情况)。

因此我们怀疑查询的异常和数据库的这一故障恢复有关。重建数据库后,这一问题就不再出现了。

类似的参数有:_corrupted_rollback_segments,或_offline_rollback_segments,还有_allow_resetlogs_corruption= TRUE。Oracle建议遇到undo/online redo损坏应使用备份进行恢复,只有当没有备份的情况下,才考虑用这些隐含参数。且数据库打开后,应尽快进行备份,重建数据库,否则会遇到难以遇见的问题。
通过这次故障的分析,也说明了解决问题时,了解事情来龙去脉的重要性。

当online redo log文件损坏,使用_allow_resetlogs_corruption= TRUE
若回滚段损坏导致db无法打开,使用
_corrupted_rollback_segments=(rbs_01, rbs_02, rbs_03)
或_offline_rollback_segments
强制打开db后,数据库存在严重隐患,应通过exp进行备份,然后重建数据库。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18474/viewspace-1060795/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/18474/viewspace-1060795/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值