当前位置:  数据库>oracle

Oracle基础教程之通过RMAN修复坏块

    来源: 互联网  发布时间:2017-05-24

    本文导语: 通过dbv和rman blockrecover对Oracle数据库坏块进行修复。 (1)rman备份时alert.log报如下错误: Fri Jul  2 12:41:36 2010 Hex dump of (file 12, block 2718618) in trace file /u01/app/oracle/admin/bi/udump/bi_ora_31213.trc Corrupt block relative dba: 0x03297b9a (file 12, blo...

通过dbv和rman blockrecover对Oracle数据库坏块进行修复。

(1)rman备份时alert.log报如下错误:

Fri Jul  2 12:41:36 2010

Hex dump of (file 12, block 2718618) in trace file /u01/app/oracle/admin/bi/udump/bi_ora_31213.trc

Corrupt block relative dba: 0x03297b9a (file 12, block 2718618)

Fractured block found during backing up datafile

Data in bad block:

type: 6 format: 2 rdba: 0x03297b9a

last change scn: 0x0002.482fc15b seq: 0x1 flg: 0x06

spare1: 0x0 spare2: 0x0 spare3: 0x0

consistency value in tail: 0x77b20601

check value in block header: 0x253

computed block checksum: 0xb6e9

Reread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt data

Reread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt data

Reread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt data

Reread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt data

Reread of blocknum=2718618, file=/u01/oradata/BI/estaging_user01.712.714072365. found same corrupt data

(2)查询数据库,可知含有坏块的对象:

SQL> col SEGMENT_NAME format a20

col PARTITION_NAME format a10

select 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(*)

----------

449937

SQL> select count(*) from ESTAGING.LOG_RECORD_DETAIL_4;

COUNT(*)

----------

42049608

(4)使用dbv检查发现有一个坏块(耗时较长):

$ dbv file=/u01/oradata/BI/estaging_user01.712.714072365 BLOCKSIZE=8192

DBVERIFY: Release 10.2.0.4.0 - Production on Fri Jul 2 14:15:49 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

DBVERIFY - Verification starting : FILE = /u01/oradata/BI/estaging_user01.712.714072365

Page 2718618 is influx - most likely media corrupt

Corrupt block relative dba: 0x03297b9a (file 12, block 2718618)

Fractured block found during dbv:

Data in bad block:

type: 6 format: 2 rdba: 0x03297b9a

last change scn: 0x0002.482fc15b seq: 0x1 flg: 0x06

spare1: 0x0 spare2: 0x0 spare3: 0x0

consistency value in tail: 0x77b20601

check value in block header: 0x253

computed block checksum: 0xb6e9

DBVERIFY - Verification complete

Total Pages Examined        : 2748160

Total Pages Processed (Data) : 2462446

Total Pages Failing  (Data) : 0

Total Pages Processed (Index): 235234

Total Pages Failing  (Index): 0

Total Pages Processed (Other): 24969

Total Pages Processed (Seg)  : 0

Total Pages Failing  (Seg)  : 0

Total Pages Empty            : 25510

Total Pages Marked Corrupt  : 1

Total Pages Influx          : 1

Highest 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=8192

DBVERIFY: Release 10.2.0.4.0 - Production on Fri Jul 2 15:38:15 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

DBVERIFY - Verification starting : FILE = /u01/oradata/BI/estaging_user01.712.714072365

DBVERIFY - Verification complete

Total Pages Examined        : 2749440

Total Pages Processed (Data) : 2463763

Total Pages Failing  (Data) : 0

Total Pages Processed (Index): 235250

Total Pages Failing  (Index): 0

Total Pages Processed (Other): 24981

Total Pages Processed (Seg)  : 0

Total Pages Failing  (Seg)  : 0

Total Pages Empty            : 25446

Total Pages Marked Corrupt  : 0

Total Pages Influx          : 0

Highest block SCN            : 1230819157 (2.1230819157)

--End--

 


    
 
 

您可能感兴趣的文章:

  • Oracle 2010年4月更新修复Oracle协作套件安全漏洞
  • Oracle 2010年7月更新修复Oracle Fusion中间件安全漏洞
  • Oracle 2010年7月更新修复多个Oracle Database安全漏洞
  • Oracle中修复数据块的损坏
  • Oracle 2010年7月更新修复Transportation Manager安全漏洞
  • Oracle 2010年7月更新修复Enterprise Manager Grid Control安全漏洞
  • Oracle 2010年7月更新修复多个PeopleSoft安全漏洞
  • Oracle 2010年7月更新修复多个E-Business Suite安全漏洞
  • Oracle 2010年4月更新修复多个E-Business Suite安全漏洞
  • Oracle修复了Eclipse的Java问题
  • 快速修复Oracle参数文件的另类方法
  • 巧用Oracle8i来修复数据库坏块的简单方法
  • Oracle中模拟及修复数据块损坏
  • 哪位大哥奉献一段调试通过的oracle中存取图片的例子oracle8.1.7,resin-2.1.6
  • 怎么直接通过JDBC连接oracle?
  • windows通过TCP/IP怎么连接到solaris上的oracle?
  • 急。。。在servlet如何连接到oracle(不通过odbc)
  • linux下通过对文件读取方式查询oracle的版本信息
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • 如何在UNIX上通过ODBC操纵Oracle等DBMS???
  • Window客户端通过ADO是否能够连接和操作Unix平台下的Oracle数据库?
  • 可否直接通过JDBC 连上Oracle(我并没有装oracle)
  • 通过win2000在linux上安装oracle,需要一个什么工具?在哪有下?
  • windows下通过ie访问不到linux环境下的oracle em
  • Linux/UNIX下,C++程序通过那些步骤访问Oracle或者Sybase SQL数据库?
  • 通过Oracle发送Email的实现方法
  • unix通过crontab 定时启动oracle应用程序??????????
  • 通过进程id号知道一个Oracle会话所占用的内存
  • oracle通过行范围查询取4至10行
  • apache通过php的oci函数读取Oracle(字符集ZHS16GBK)时,显示乱码,如何解决?
  • 通过一晚上.在2000上装了REDHAT9.再装ORACLE9I
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle相关基础知识教程集锦
  • 基础知识:Oracle数据库的启动方式
  • Oracle虚拟桌面基础架构(VDI)3.2上市
  • Oracle SQL基础知识
  • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle
  • Oracle DDL,DML,DCL,TCL 基础概念
  • 解析学习Oracle架构所应了解的基础知识
  • Linux下OCI基础:配置Instant Client连Oracle数据库
  • Oracle PL/SQL语言入门基础
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,