合 如何使用 RMAN 识别数据库中损坏的对象 (文档 ID 1623348.1)
Tags: Oracle
适用于:
Oracle Database - Enterprise Edition - 版本 8.1.7.0 到 11.2.0.4 [发行版 8.1.7 到 11.2]
本文档所含信息适用于所有平台
目标
如何使用 RMAN 识别数据库中损坏的段。
解决方案
步骤1:识别坏块
执行下面的 RMAN 命令,使所有的坏块信息被记录在 v$database_block_corruption 视图中:
RMAN> backup validate check logical database;
注意:
这个命令只是检查数据库的坏块,而不会真正进行备份。从 11g 开始可以省略 backup 子句,而直接使用命令"validate check logical database"。
如果由于缺失文件导致命令失败,可以增加 'SKIP INACCESSIBLE' 子句来避免这个问题。
为了加快检查速度,可以设置 PARALLELISM 指定多个通道:
RMAN> configure device type disk parallelism 4;
RMAN> backup validate check logical database;
OR
RMAN> run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
backup validate check logical database;
}
输出
坏块信息会被记录在视图 V$DATABASE_BLOCK_CORRUPTION 中。11g RMAN 会生成一个 trace 文件,详细描述坏块信息:
RMAN VALIDATE 屏幕输出:
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
6 FAILED 0 501 640 1950088
File Name: /oracle/dbs/users.dbf
Block Type Blocks Failing Blocks Processed
Data 9 9
Index 0 0
Other 0 130
validate found one or more corrupt blocks
See trace file /oracle/log/diag/rdbms/orcl/orcl/trace/orcl_ora_28424.trc for details
Finished validate at
Trace 文件输出坏块信息,这个例子描述了 2 个坏块,一个物理坏块(file 6 block 9)和一个逻辑坏块(file 6 block 10):