您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

Oracle RMAN修复逻辑坏块

2024/5/5 16:52:54发布7次查看
试用rman可以实现数据块级的数据恢复,在传统恢复手段中即某个数据文件的一个数据块被损坏,就造成整个数据文件无法试用,此时必
rman 实现数据块恢复
试用rman可以实现数据块级的数据恢复,在传统恢复手段中即某个数据文件的一个数据块被损坏,就造成整个数据文件无法试用,此时必须通过备份恢复整个数据文件。显然这样的方法会会时间较长,而rman实现块级恢复,如果某个数据文件的数据损坏,通过数据文件的完整备份就可以恢复数据块。
案例:
数据库是一个单实例oracle数据库,该库的总大小有700g。
存储设备使用华为存储,备份设备使用希捷3t的移动硬盘。该数据库无dg无ogg。备份策略为每周六0点全库备份,周三0点1级差异备份其余时间为每天0点做2级差异备份。全库备份大小为500g左右。
2.2 故障情况
本次故障原因是inspuroa用户在查询edoc_base_workflow表出现报错。提示故障坏块为datafile 5。报错信息取至alter日志如下:
reading datafile '/oradata/datafiles/oadb/oa01.dbf' for corruption at rdba: 0x016d4dd5 (file 5, block 2969045)
reread (file 5, block 2969045) found same corrupt data (no logical check)
tue aug 18 10:53:51 2015
corrupt block found
        tsn = 6, tsname = oa
        rfn = 5, blk = 2969045, rdba = 23940565
        objn = 95690, objd = 95690, object = edoc_base_workflow, subobject =
        segment owner = inspuroa, segment type = table segment
tue aug 18 10:55:03 2015
hex dump of (file 5, block 2969045) in trace file /u01/app/oracle/diag/rdbms/oadb/oadb/trace/oadb_ora_4565.trc
corrupt block relative dba: 0x016d4dd5 (file 5, block 2969045)
bad header found during buffer read
data in bad block:
 type: 117 format: 0 rdba: 0x20206b73
 last change scn: 0x2020.20202020 seq: 0x20 flg: 0x20
 spare1: 0x64 spare2: 0x69 spare3: 0x0
 consistency value in tail: 0x4d240601
 check value in block header: 0x5f49
 block checksum disabled
reading datafile '/oradata/datafiles/oadb/oa01.dbf' for corruption at rdba: 0x016d4dd5 (file 5, block 2969045)
reread (file 5, block 2969045) found same corrupt data (no logical check)
tue aug 18 10:55:03 2015
corrupt block found
        tsn = 6, tsname = oa
        rfn = 5, blk = 2969045, rdba = 23940565
        objn = 95690, objd = 95690, object = edoc_base_workflow, subobject =
        segment owner = inspuroa, segment type = table segment
tue aug 18 10:57:29 2015
hex dump of (file 5, block 2969045) in trace file /u01/app/oracle/diag/rdbms/oadb/oadb/trace/oadb_ora_21708.trc
corrupt block relative dba: 0x016d4dd5 (file 5, block 2969045)
bad header found during buffer read
data in bad block:
 type: 117 format: 0 rdba: 0x20206b73
 last change scn: 0x2020.20202020 seq: 0x20 flg: 0x20
 spare1: 0x64 spare2: 0x69 spare3: 0x0
 consistency value in tail: 0x4d240601
 check value in block header: 0x5f49
 block checksum disabled
分析原因
观察存储,无报错警告,初步怀疑逻辑坏块
执行修复
  根据报错信息
reading datafile '/oradata/datafiles/oadb/oa01.dbf' for corruption at rdba: 0x016d4dd5 (file 5, block 2969045)
reread (file 5, block 2969045) found same corrupt data (no logical check)
corrupt block found
        tsn = 6, tsname = oa
        rfn = 5, blk = 2969045, rdba = 23940565
        objn = 95690, objd = 95690, object = edoc_base_workflow, subobject =
        segment owner = inspuroa, segment type = table segment
确定数据文件 datafile 5,oa01.dbf出现坏块现象
查看坏块信息:
sql> select * from v$database_block_corruption;
file#    block#    blocks corruption_change# corruptio
---------- ---------- ---------- ------------------ ---------
        5    2969045          1                  0 corrupt
确定坏块为2969045号
检查备份日志(增量,全量)是否完整备份
检查备份datafile 5 是否完整
rman> backup validate datafile 5;
starting backup at 18-aug-15
using target database control file instead of recovery catalog
allocated channel: ora_disk_1
channel ora_disk_1: sid=982 device type=disk
channel ora_disk_1: starting full datafile backup set
channel ora_disk_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/oradata/datafiles/oadb/oa01.dbf
channel ora_disk_1: backup set complete, elapsed time: 00:05:35
list of datafiles
=================
file status marked corrupt empty blocks blocks examined high scn
---- ------ -------------- ------------ --------------- ----------
5    failed 0              1840        4190720        9484751217293
  file name: /oradata/datafiles/oadb/oa01.dbf
  block type blocks failing blocks processed
  ---------- -------------- ----------------
  data      0              2842014       
  index      0              182983         
  other      1              1163883       
validate found one or more corrupt blocks
see trace file /u01/app/oracle/diag/rdbms/oadb/oadb/trace/oadb_ora_13513.trc for details
finished backup at 18-aug-15
执行修复
使用rman工具
rman> blockrecover datafile 5 block 2969045;
starting recover at 18-aug-15
using channel ora_disk_1
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录