DATAFILE 2 BLOCK 79
DATAFILE 6 BLOCK 183;
RECOVER CORRUPTION LIST; Recover all blocks logged in V$DATABASE_BLOCK_CORRUPTION
恢复单个块:
在进行块恢复之前,必须确定损坏的块。一般情况下,会在以下位置中报告块损坏:
--LIST FAILURE、VALIDATE 或 BACKUP ...VALIDATE 命令的结果
--V$DATABASE_BLOCK_CORRUPTION 视图
--标准输出中的错误消息
--预警日志文件和用户跟踪文件(在 V$DIAG_INFO 视图中标识)
--SQL ANALYZE TABLE 和 ANALYZE INDEX 命令的结果
--DBVERIFY 实用程序的结果
例如,可能会在用户跟踪文件中发现以下消息:
ORA-01578: ORACLE data block corrupted (file # 7, block # 3)
ORA-01110: data file 7: '/oracle/oradata/orcl/tools01.dbf'
ORA-01578: ORACLE data block corrupted (file # 2, block # 235)
ORA-01110: data file 2: '/oracle/oradata/orcl/undotbs01.dbf'
--确定了块以后,在 RMAN 提示符下运行 RECOVER ...BLOCK 命令,指定损坏块的文件号和块编号。
RECOVER
DATAFILE 7 BLOCK 3
DATAFILE 2 BLOCK 235;
8.使用10231事件进行处理:
(块损坏但没有备份,没办法回复的情况下)
在sqlplus中执行如下命令:
ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';
然后导出该表:
exp test/test file=t.dmp tables=t;
在数据库中删除该表
drop table t;
然后导入
imp test/test file=t.dmp tables=t;
最后关闭10231事件:
ALTER SYSTEM SET EVENTS='10231 trace name context off';