带有DB_BLOCK_CHECKSUM=TRUE的 块损坏日志中的DBA信息

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638    QQ号:47079569    邮箱:service@parnassusdata.com

 

问题描述
——————-

你正在运行一个并行查询操作或者执行一个直接路径导出,发现跟踪文件包含类似的下列信息:

Corrupt block dba: 0x50402354 file=84. blocknum=9044. found during
user buffer read on disk type:6. ver:1. dba: 0x50402354 inc:0x0000000e
seq:0x00000087 incseq:0x00 0e0087
on disk checksum=0x40c8, calculated checksum=0xec42
Reread of block=50402354 file=84. blocknum=9044. found valid data

Corrupt block dba: 0x5040253f file=84. blocknum=9535. found during user buffer
read on disk type:6. ver:1. dba: 0x5040253f inc:0x0000000e seq:0x00000086
incseq:0x00 0e0086 on disk checksum=0x52b0, calculated checksum=0xf78b
Reread of block=5040253f file=84. blocknum=9535. found valid data

从上面可以注意到磁盘总和和计算的总和不匹配,对涉及上述文件和块的对象的一系列描述没有产生错误。

方法描述
——————–

你可以设置 DB_BLOCK_CHECKSUM = FALSE 或者应用7.3.4.5补丁集纠正这个问题,你也可以在执行直接输出前首先执行从table_name的 select count(*),问题不会再次出现,应用补丁集是推荐的一个方法 。
说明
———–

上述行为是因为 bug 786916, 645861的复制引起的,这个问题因为直接输出引起,其它的读取操作,例如CREATE TABLE/CREATE INDEX 和并行查询从属使用直接的 I/O 从磁盘读取数据。
块在同一个块读取和再读取之间清除时,出现错误, 错误的总和在对块再读取期间进行重新计算,与存储的总和不匹配该错误在版本7.3.4.5中修复,不会出现在V8中。
参考文献
———-
Bug:786916Bug:645861

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号