在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视图中删除)