一.概述
Block Corruption Diagnostics Recovery
概述:
  Block corruption就是当Oracle从磁盘读/写入磁盘一个block,一致性检查就会出现,包括:
★.Blcok Version(版本号)
★Cache中的DBA与Block Buffer(block header?)中的DBA进行比较
★块校验检查,当db_block_checksum=true的时候
  ○What Check(检查点)
  -SCNBase And Sequence in the Header(Block)
  -SCNBase And Sequence in the Footter(Block)
  -The Block Type(Block type tore in the first word of the data block块类型存放在block第一节)
=======================
二.Block Corruption Types:
★Media corrupt
  –Oracle 8:SCN=0
★Soft corrupt   (RDBMS发现异常就会将该block标记为异常)
  –Oracle8: SCN=XXX(XXX代表比重组当前block的SCN搞的更改可以应用到该block)
          Seq=UB1MAXVAL
          
=====================
三.Corrupt标志Symptoms:ORA-1578
★.ORA-1578一般是由于硬件原因导致的:
—当改错误经常出现的时候,最有可能就是物理block 异常
    —当改错误时断时续时,有可能是硬件异常,可以尝试检查memory和page space,以及io资源等
★.当确定好file#,block#后,可以尝试用dd命令读取该block,假如遇见错误,可以尝试多试几次读取该block来确认是否都是返回该块.也可以见车io和出错的控制器

 

===================
四.Handle Corruption(处理块异常)
 
1. shutdown/start查看错误
2. 查看是否有 更多的异常块出现,DBV
3. —-.od-x OS 级别的block
—-Dump redo确认能发现的异常block
4  —Media recover(恢复)
 
5  –DBV
   
Eg:dbv file=’system01.dbf’ blocksize=4096
6 –Analyze
  —逻辑的block见车
  —不会将block标记为软异常,只返回异常结果
  —验证tables/indexes
  —Syntax:

validate strucure
Full table scan   

7 –Events Diagnostics
  ○.10231:Skip corrupted block while a full scan(忽略全表扫描的坏块)
  ○.10233:Skip corrupted data/index block while index range scan(索引范围扫描忽略坏表/索引块)
  ○.10232:Dump corrupted blocks in a tracefile
  ○.10210:Force logic block check(强制逻辑table块检查)
 ○.10211: :Force logic block check(Index)
 ○.10212.:Force logic block check(cluster)
   10210,10211,10212 events check fowllowing:
     
8 —Parametr:db_block_checking
 Db_block_checking   (default false)
9 —Export Utility
 ○.Full export can used to check logic consistency of a database(全export检查数据库的一致性)
○.Export 通过全表扫描的方式返回获取数据
○.Export 不能检测所有的数据库块异常:
  —不能检测hwk高水位线上上的磁盘异常
  —不能检测index,free/temporary extents的block异常
 ○.Export Only reads:
   —HWK下的用户数据
   —和export相关的数据字典部分
10 —Media recovery