我有一个包含多个损坏数据块的表,我使用驻留在“ DBMS_REPAIR
”中的存储过程将数据块标记为损坏数据块,以便我可以继续查询该表。执行存储过程后,一切正常,我使用rman
命令检查损坏:
validate datafile number
并且输出仍然报告损坏,没有任何变化v$database_block_corruption
,所以怎么v$database_block_corruption
刷新,我是否必须通过这样的语句重建表:
create table TABLE_BAK as select * from TABLE_CORRUPTED;
drop table TABLE_CORRUPTED;
RENAME table TABLE_BAK to TABLE_CORRUPTED;
顺便说一句:我没有任何备份来恢复数据块。
这不是必需的。如果您已将受影响的块正确标记为已损坏,则可以保留损坏。但是您必须接受,每次您对这些块执行操作时,诸如 RMAN 之类的工具都会提醒您有关这些块的信息。例如,每当您备份此数据文件时。