在Oracle11g中对数据讹误处理增强,一般来说随机I/O错误以及被写入磁盘的内存讹误都是导致数据块讹误的原因.

        Oracle11g版本以前对于讹误数据块错误使用blockrecover命令进去恢复,新版本中使用recover....block代替blockrecover.

        新recover....block命令在处理讹误数据块时可以先搜索闪回日志查找好的数据块,对于搜索相同的数据块比搜索数据库备份快很多.不过,你必须开启闪回数据库特性并且启用闪回日志.

        对于数据库中产生的讹误数据块会记录在v$database_block_corruption视图,下面命令将把信息记录到这张视图

analyze table、index

list failure

validate

backup......validate

       使用recover......block命令

恢复特点一个或者一组数据块

recover datafile 6 block 30 datafile 4 block 10;

也可以指定某个备份集来恢复讹误块(from backupset、from tag)

recover datafile 6 block 30 datafile 4 block 10 from tag=bak20110927

恢复所有讹误块

validate database;(此命令查找v$database_block_corruption显示出DB中存在的所有讹误块)

recover corruption list;(修复所有讹误块,并把信息从v$database_block_corruption视图中删除)