在查询某表时,提示出现坏块。
在有做 RMAN 备份的情况下
坏块数量多的话,我们可以先把数据库关掉,起到 mount 状态,备份下损坏的数据文件, restore 损坏的数据文件,然后 recover database 或者 recover datafile 5 。
坏块数量少的话,可以用 RMAN 直接去修复坏块。
RMAN> backup validate datafile 5;
SQL> select * from v$database_block_corruption where file#=5;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
5 34 12767 0 CORRUPT
RMAN> blockrecover datafile 5 block 34 from backupset;
Starting recover at 24-AUG-21
using channel ORA_DISK_1
channel ORA_DISK_1: restoring block(s)
channel ORA_DISK_1: specifying block(s) to restore from backup set
restoring blocks of datafile 00005
channel ORA_DISK_1: reading from backup piece /oracle/rman/orcl_full07078p7m_1_1.bak
channel ORA_DISK_1: piece handle=/oracle/rman/orcl_full07078p7m_1_1.bak tag=TAG20210823T203045
channel ORA_DISK_1: restored block(s) from backup piece 1
channel ORA_DISK_1: block restore complete, elapsed time: 00:00:01
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 24-AUG-21
