ORA-1578错误,出现的场景不同,解决办法也不相同,以下是各种场景下的解决办法
一、 Database in ARCHIVELOG mode(归档并有备份):
使用RMAN Block Media recovery进行恢复
Mos相关文章
Note 144911.1 RMAN : Block-Level Media Recovery -
Concept & Example
Note 342972.1 How to perform Block Media Recovery
(BMR) when backups are not taken by RMAN
二、 非归档并且没有备份
1. 确定引起的segment及block :
· Mos相关文章
NOTE 819533.1 How to identify the corrupt Object reported
by ORA-1578 / RMAN / DBVERIFY
NOTE 472231.1 How to identify all the Corrupted
Objects in the Database reported by RMAN
NOTE 836658.1 Identify the corruption extension
using RMAN/DBV/ANALYZE etc. Main sections in Note 836658.1 to identify corrupt
blocks causing ORA-1578 are:
RMAN - Identify
Datafile Block Corruptions
DBVerify - Identify Datafile Block Corruptions
2. 如果是索引就重建索引
3. 删除相关的段 从其他的备份或者数据源进行恢复(如exp备份等)
如果是表,可以DBMS_REPAIR跳过坏块恢复其他的数据
Note 556733.1 DBMS_REPAIR script
Note 68013.1 DBMS_REPAIR example
三、 ORA-1578 / ORA-26040 由于 NOLOGGING
如果伴随着ORA-26040错误说明 是由于NOLOGGING操作引起
Note 794505.1 ORA-1578 / ORA-26040 Corrupt blocks by NOLOGGING - Error explanation and solution
四、 ORA-1578 由于不正确的加密 在 encrypted database
· Mos参考文章
Note 1329437.1 ORA-1578 Corrupt Block Found in Encrypted Database
五、 第三方软件引起
· Mos参考文章
Note 1323649.1 Known Corruption issues caused by 3rd party Software Provider