11 2010 档案
摘要:
曾经遇到过ORA-8103,01578的坏块错误记录下方法,以及一些方法的聚合。这里特别记录一下”神器BBED或者DD+UltraEdit“的使用方法:
大概说一下如果数据块的损坏应该是offset@18也就是seq_kcbh被标记成0xff。这时检查alert.log如果看到 computed block checksum那么使用BBED其实很容易,进入然后打开损坏的数据块,offset到16,sum apply后oracle会算出正确的checksum值并且写回去。具体算法就是 computed block checksum后边会有一个数值那么转换成二进制和现有的offset 16 17做异或运算就可以算出正确的值。我也是最近才弄明白这种算法,正好复习。
阅读全文
![](http://www.akadia.com/img/ora10g-logo.gif)
摘要:
我们都知道data block的offset位置是16-17是Checksum Value,它属于data block的Cache Layer,作用是oracle在通过DBWn常规写或者User Process直接路径加载时通过checksum value用来得知由底层磁盘是否损坏,那么这个Checksum Value可以为0吗?, 这个value如果为0,岂不是oracle会把它认为是个坏块儿?(跟checksum值是否为0没有任何关系),主要为了是防止IO硬件和IO子系统的错误。
阅读全文
![](http://www.akadia.com/img/ora10g-logo.gif)