暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用RMAN进行坏块修复

原创 Eygle 2019-07-24
679

出现坏块,正确的途径是通过备份来恢复,使用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


最后修改时间:2019-07-24 10:34:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论