我们有电源故障导致数据文件损坏。 它从RMAN备份恢复,包括日志,一切正常,数据库正在工作..除了我注意到这一点:
RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE FILESPERSET=10; ...snip.. File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 2 FAILED 0 24312 139056 71820306 File Name: /u02/oradata/ORCL/datafile/o1_mf_sysaux_4kjcn4qg_.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 35222 Index 101 39306 Other 0 40216
其他的数据文件都可以。 现在的问题是,如何处理这些索引? 我会尝试(外面的工作时间)为SYSAUX中的所有索引做'改变索引…重build',但AFAIK不会帮助,删除和重新创build索引是必要的…但有没有SQL源来重新创build它们? 在Linux上是Oracle 11.1.0.6。
“是否有重新创build它们的SQL源”您可以使用DBMS_METADATA.GET_DDL来检索/重buildSQL来重build索引。 对DBA_SEGMENTS的查询会告诉你SYSAUX中存在哪些索引。
另外还有两个腐败检查是谨慎的,尤其是在RMANvalidation发现问题时:
a)dbverify
b)分析表。 validation结构级联[在线]
是的,你需要重新创build索引,重build不起作用。