Welcome 微信登录

首页 / 数据库 / MySQL / Oracle基础教程之通过RMAN修复坏块

通过dbv和rman blockrecover对Oracle数据库坏块进行修复。(1)rman备份时alert.log报如下错误:Fri Jul  2 12:41:36 2010Hex dump of (file 12, block 2718618) in trace file /u01/app/oracle/admin/bi/udump/bi_ora_31213.trcCorrupt block relative dba: 0x03297b9a (file 12, block 2718618)Fractured block found during backing up datafileData in bad block:type: 6 format: 2 rdba: 0x03297b9alast change scn: 0x0002.482fc15b seq: 0x1 flg: 0x06spare1: 0x0 spare2: 0x0 spare3: 0x0consistency value in tail: 0x77b20601check value in block header: 0x253computed block checksum: 0xb6e9Reread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt dataReread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt dataReread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt dataReread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt dataReread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt data(2)查询数据库,可知含有坏块的对象:SQL> col SEGMENT_NAME format a20col PARTITION_NAME format a10select owner,segment_name,partition_name from dba_extents where file_id = 12 and 2718618 between block_id and block_id + blocks-1;OWNER                SEGMENT_NAME       PARTITION_-------------------- -------------------- ----------ESTAGING           LOG_RECORD_DETAIL_4  P20100630(3)但全表扫描却没有任何问题:SQL> select count(*) from ESTAGING.LOG_RECORD_DETAIL_4 partition (P20100630);COUNT(*)----------449937SQL> select count(*) from ESTAGING.LOG_RECORD_DETAIL_4;COUNT(*)----------42049608(4)使用dbv检查发现有一个坏块(耗时较长):$ dbv file=/u01/oradata/BI/estaging_user01.712.714072365 BLOCKSIZE=8192DBVERIFY: Release 10.2.0.4.0 - Production on Fri Jul 2 14:15:49 2010Copyright (c) 1982, 2007, Oracle.  All rights reserved.DBVERIFY - Verification starting : FILE = /u01/oradata/BI/estaging_user01.712.714072365Page 2718618 is influx - most likely media corruptCorrupt block relative dba: 0x03297b9a (file 12, block 2718618)Fractured block found during dbv:Data in bad block:type: 6 format: 2 rdba: 0x03297b9alast change scn: 0x0002.482fc15b seq: 0x1 flg: 0x06spare1: 0x0 spare2: 0x0 spare3: 0x0consistency value in tail: 0x77b20601check value in block header: 0x253computed block checksum: 0xb6e9DBVERIFY - Verification completeTotal Pages Examined       : 2748160Total Pages Processed (Data) : 2462446Total Pages Failing (Data) : 0Total Pages Processed (Index): 235234Total Pages Failing (Index): 0Total Pages Processed (Other): 24969Total Pages Processed (Seg)  : 0Total Pages Failing (Seg)  : 0Total Pages Empty            : 25510Total Pages Marked Corrupt : 1Total Pages Influx         : 1Highest block SCN            : 1229607770 (2.1229607770)(5)使用rman检查含有坏块的数据文件(耗时较长), 期间观察alert.log会发现同样的提示:RMAN> backup validate datafile 12;这个时候访问v$database_block_corruption可以看到详细的坏块的信息:SQL> select * from v$database_block_corruption;FILE#   BLOCK#   BLOCKS CORRUPTION_CHANGE# CORRUPTIO---------- ---------- ---------- ------------------ ---------12    2718618          1                  0 FRACTURED(6)使用rman进行块恢复:RMAN> blockrecover datafile 12 block 2718618 from backupset;(7)块恢复后,执行BLOCKRECOVER CORRUPTION LIST,会自动按照V$DATABASE_BLOCK_CORRUPTION进行修复(耗时较长):RMAN> BLOCKRECOVER CORRUPTION LIST;(8)这个时候再访问v$database_block_corruption就看不到详细的坏块信息了:SQL> select * from v$database_block_corruption;no rows selected(9)再使用dbv检查发现没有坏块了(耗时较长):$ dbv file=/u01/oradata/BI/estaging_user01.712.714072365 BLOCKSIZE=8192DBVERIFY: Release 10.2.0.4.0 - Production on Fri Jul 2 15:38:15 2010Copyright (c) 1982, 2007, Oracle.  All rights reserved.DBVERIFY - Verification starting : FILE = /u01/oradata/BI/estaging_user01.712.714072365DBVERIFY - Verification completeTotal Pages Examined       : 2749440Total Pages Processed (Data) : 2463763Total Pages Failing (Data) : 0Total Pages Processed (Index): 235250Total Pages Failing (Index): 0Total Pages Processed (Other): 24981Total Pages Processed (Seg)  : 0Total Pages Failing (Seg)  : 0Total Pages Empty            : 25446Total Pages Marked Corrupt : 0Total Pages Influx         : 0Highest block SCN            : 1230819157 (2.1230819157)--End-- 更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle基础教程:expdp时不能导出sys用户下的对象Oracle触发器给表自身的字段重新赋值出现ORA-04091异常相关资讯      RMAN  RMAN修复坏块 
  • RMAN故障一例(归档的备份,从不  (今 20:42)
  • RMAN的FORMATA格式说明  (03月10日)
  • Oracle 11g RMAN复制数据库的测试  (01月19日)
  • RMAN数据库迁移  (05月22日)
  • 使用RMAN复制恢复开发库环境  (02月17日)
  • Oracle 11g RMAN跨平台传输表空间  (01月19日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数