db_block_checksum & db_block_checking 的区别

这两个参数的含义经常让人混淆,虽然都是对block进行检查。[@more@]
db_block_checksum & db_block_checking
===========================================================
这两个参数的含义经常让人混淆,虽然都是对block进行检查。

db_block_checksum 是在将数据块写到数据文件的时候对block内数据做一个校验写在块头,当读入时候重新计算校验和写出时候的校验对比,如果不同则认为是块损坏。这通常应该是由于脱离oracle以外在os或者硬件中出现了损坏,如果设置为false则只对系统表空间有效。从8i开始设置为true的时候也同时对log block进行校验。

db_block_checking 是当block发生任何变化的时候进行逻辑上的完整性和正确性检查,这在内存中进行,当发现错误就立即回退,设置为false则只对系统表空间有效。

这意味着,如果db_block_checking = false ,非系统表空间中数据在逻辑上可能已经损坏,但是 db_block_checksum 却是无法检查出来的,原样写到磁盘原样读到内存,因为它只校验块在写出后和读入之间是否发生变化而不检查写出前是否存在 逻辑上的正确。

比如有时索引块损坏,造成通过索引无法获得数据,但是读索引块的时候并没有出1578错误,可能就是这个原因

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

转载于:http://blog.itpub.net/3907/viewspace-1011230/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值