使用RMAN进行坏块修复

Eygle 2019-07-24
15
0 0
摘要:使用RMAN进行坏块修复

出现坏块,正确的途径是通过备份来恢复,使用Rman可以很容易的通过备份对坏块进行恢复,以下是一个简单的测试范例,首先备份数据库:

RMAN> backup database format='d:\oradata\eygle_fullbk.bak' tag='eygle';

如果数据文件上的数据块出现损坏,访问时会给出错误提示:

SQL> select count(*)from t;
select count(*)from t
                    *
ERROR 位于第 1 行:
ORA-01578: ORACLE 数据块损坏(文件号2,块号14)
ORA-01110: 数据文件 2: 'D:\ORADATA\EYGLE\EYGLE01.DBF'

坏块的信息会记录在告警日志文件中,也可以通过DBV进行检测;但是注意RMAN也具备检测坏块的功能,在执行以下命令后RMAN会在字典视图中记录坏块信息:

RMAN> backup validate datafile 2;

查询RMAN发现的坏块信息

SQL> select * from v$database_block_corruption where file#=2;
     FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
         2         14          1                  0 FRACTURED

使用RMAN进行坏块修复可以在Mount状态进行:

RMAN> startup mount;
RMAN> blockrecover datafile 2 block 14 from backupset;
启动 blockrecover 于 12-6月 -05
正在使用目标数据库控制文件替代恢复目录
 
通道 ORA_DISK_1: 正在恢复块
通道 ORA_DISK_1: 正在指定要从备份集恢复的块
正在恢复数据文件 00002 的块
通道 ORA_DISK_1: 已从备份段 1 恢复块
段 handle=D:\ORADATA\EYGLE_FULLBK.BAK tag=EYGLE params=NULL
通道 ORA_DISK_1: 块恢复已完成
 
正在开始介质的恢复
完成介质的恢复
 
完成 blockrecover 于 12-6月 -05


「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
热门文章
近期活动
全部
相关课程
全部