DBVERIFY 工具的使用

--**********************

-- DBVERIFY 工具的使用

--**********************

Oracle 库运程中由于硬件故障或操作系故障Oracle无法以Oracle格式来识别或所包含的容即现数块损

故障,这个可以分质损坏以及逻辑损坏。下面出了检查,以及使用DBVERIFY 工具块检查

一、块检查

1.时检查块

个数候,将对块行一致性检查检查容包括

的版本

较块cacheblock buffer中的地址

根据要求行校(checksum)

2.坏的错误提示

可以告警日志文件中找到该错误提示,以及在会话发现损坏的块时会给似的提示

ORA-01578: ORACLE datablock corrupted (file # 6, block # 11)

ORA-01110: datafile6: '/u01/app/oracle/oradata/orcl/tbs01.dbf'

3.与块损坏的相特性(种检查工具)

------------------------------------------------------------------------------------------------

特性                      块侦测类能否修复损

    ------------------------------------------------------------------------------------------------

DBVERIFY                  物理                        

ANALYZE逻辑

DB_BLOCK_CHECKING         逻辑

DB_BLOCK_CHECKSUM         物理                        

exp物理                        

FlashBack逻辑

DBMS_REPAIR               逻辑

Block media recovery未知                        

二、DBVERIFY工具介

特性

是一个运行于操作系提示符下的外部程序,用于验证数据文件,检查块的一致性错误

仅仅针对数据文件,能open段的据文件以及shutdown状态下的据文件

可以验证复制的据文件,也可以验证备份像副本

不支持机日志文件,控制文件,归档日志,RMAN备份验证

验证的文件可以位于文件系ASM或原始设备

在Unix中位于:$ORACLE_HOME/bin/dbv

在Windows中位于:%ORACLE_HOME%/bin/dbv.exe

DBVERIFY工具,高版本可以自动识别低版本,比如11g的dbv访问9i,但是低版本的dbv访问高版本会报错

三、DBVERIFY工具用法

1.dbv助信息,直接在提示符下dbv即可    或者dbv help=y

[oracle@oradb orcl]$ dbv

DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 2618:21:092010

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

Keyword     Description                (Default)

----------------------------------------------------

FILEFiletoVerify(NONE)

STARTStartBlock(FirstBlockofFile)

ENDEndBlock             (LastBlockofFile)

BLOCKSIZELogicalBlockSize(8192)--指定据文件的尺寸,缺省值为8192,于非8192块将收到DBV-00103错误

LOGFILEOutput Log(NONE)   --用于验证进

FEEDBACK    Display Progress               (0)

PARFILE     Parameter File(NONE--可以指定参数文件

USERID      Username/Password(NONE) --段、ASM文件需要使用

SEGMENT_ID  SegmentID (tsn.relfile.block) (NONE) --,需要表空ID,据文件ID,段的ID

HIGH_SCN    Highest BlockSCNToVerify(NONE)

(scn_wrap.scn_base ORscn)         

2.online,offline据文件,使用下面的方法

dbv file=<dir>

[oracle@oradb orcl]$ dbv file=$ORACLE_BASE/oradata/orcl/tbs01.dbf

DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 2618:29:392010

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

DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/orcl/tbs01.dbf

DBVERIFY - Verification complete

Total Pages Examined         : 128--总页,一个页面即是一个数

Total Pages Processed (Data) : 96--理的

Total Pages Failing   (Data) : 0--面的失败数

Total Pages Processed (Index): 1--理的索引

Total Pages Failing   (Index): 0--理索引面失败数

Total Pages Processed (Other): 31--理的其它页

Total Pages Processed (Seg)  : 0

Total Pages Failing   (Seg)  : 0

Total Pages Empty: 0

Total Pages Marked Corrupt: 0

Total Pages Influx           : 0

Highest blockSCN: 1152518 (0.1152518)       

注意:如果Total Pages Influx大于零,且未存在坏的情下,是由于针对open状态的文件dbv

程序遇到了一个当前正在被DBWn入的

[oracle@oradb orcl]$ dbv file=$ORACLE_BASE/oradata/orcl/tbs01.dbf feedback=1000

           上面句在验证1000个块将显示一"."

--下面的校验发现I/O错误

[oracle@oradb orcl]$ dbv file=/u01/app/oracle/oradata/orcl/tbs01.dbf

DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 2618:26:212010

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

DBV-00102: File I/O erroronFILE (/u01/app/oracle/oradata/orcl/tbs01.dbf)

during endread operation (-1)           

3.验证指定段

方法需要得段所在表空ID,段所在据文件的ID,段的ID

如下面的查询表空ID7,文件ID6,段的ID35

sys@ORCL> select tablespace_id,tablespace_name,header_file,header_block

2from sys_dba_segs

3where segment_name='TB3';

TABLESPACE_ID TABLESPACE_NAME HEADER_FILE HEADER_BLOCK

------------- --------------- ----------- ------------

7 TBS1                      635

注意:sys的段可以查询sys_user_segs,而普通用的段信息,需要查询sys_dba_segs       

[oracle@oradb orcl]$ dbv userid=scott/tiger segment_id=7.6.35

DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 2618:50:012010

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

DBVERIFY - Verification starting : SEGMENT_ID = 7.6.35

DBVERIFY - Verification complete

Total Pages Examined         : 8

Total Pages Processed (Data) : 5

Total Pages Failing   (Data) : 0

Total Pages Processed (Index): 0

Total Pages Failing   (Index): 0

Total Pages Processed (Other): 2

Total Pages Processed (Seg)  : 1

Total Pages Failing   (Seg)  : 0

Total Pages Empty: 0

Total Pages Marked Corrupt: 0

Total Pages Influx           : 0

Highest blockSCN: 1152518 (0.1152518)           

4.验证复制的据文件或验证备份像副本

RMAN> backupas copy datafile6--使用RMAN备份镜像副本

2> format='/u01/app/oracle/bk/rmbk/cp_dfile6'

3> tag='Copy_datafile6';

[oracle@oradb orcl]$ dbv file=/u01/app/oracle/bk/rmbk/cp_dfile6

DBVERIFY: Release 10.2.0.4.0 - Production on Tue Oct 2618:59:172010

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

DBVERIFY - Verification starting : FILE = /u01/app/oracle/bk/rmbk/cp_dfile6

DBVERIFY - Verification complete

       Total Pages Examined         : 128

Total Pages Processed (Data) : 96

Total Pages Failing   (Data) : 0

Total Pages Processed (Index): 1

Total Pages Failing   (Index): 0

Total Pages Processed (Other): 31

Total Pages Processed (Seg)  : 0

Total Pages Failing   (Seg)  : 0

Total Pages Empty: 0

Total Pages Marked Corrupt: 0

Total Pages Influx           : 0

Highest blockSCN: 1152518 (0.1152518)

RMAN命令中的BACKUP VALIDATE DATABASE命令通常用于检查命令不生任何备份集,可以通

Validate命令来检查是否能备份,如据文件是否存在,是否存在坏不能被备份查询视图

v$database_block_corruption,此视图将检查过程中存在的坏

如使用下面的查询

RMAN> backupvalidatedatabase;

RMAN> backupvalidatedatabasearchivelogall;

sys@ORCL> select * from v$database_block_corruption;

norows selected

视图v$database_block_corruption列出坏的坏所在的文件位置,的起始位置,坏快的大

小以及型如果上述视图发现了坏可以通SQL查询获得坏所影,以及确定坏

  所影的是索引段UNDO

select owner,segment_name,segment_type from dba_extents where file_id=<F> and <B>

between block_id and block_id+blocks-1;

(<F>和<B>ORA-01578出的坏的文件块号)

下面使用rman

RMAN> run{

2> allocate channel ch1 device typedisk;

3> blockrecover datafile6block37;

4> release channel ch1;}

released channel: ORA_DISK_1

allocated channel: ch1

channel ch1: sid=139 devtype=DISK

Starting blockrecover at26-OCT-10

starting media recovery

media recoverycomplete, elapsed time: 00:00:00

Finished blockrecover at26-OCT-10

released channel: ch1       

flasher@ORCL> altertable tb3 addconstraint empno_tb3_pk

2primarykey(empno);

四、其

1.上使用dbv工具可以控制文件验证(库处OPEN状态),参见下面的例子

[oracle10g:oracle:orcl]$ dbv file=control01.ctl

DBVERIFY: Release 10.2.0.4.0 - Production on Sun Jun 514:56:312011

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

DBV-00103: Specified BLOCKSIZE (8192) differs from actual (16384--根据提示知道blocksize值为16384

[oracle@oradb orcl]$ dbv file=control01.ctl blocksize=16384

DBVERIFY: Release 10.2.0.4.0 - Production on Sun Jun 514:53:012011

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

DBVERIFY - Verification starting : FILE = control01.ctl

DBVERIFY - Verification complete

 

Total Pages Examined         : 404

Total Pages Processed (Data) : 0

Total Pages Failing   (Data) : 0

Total Pages Processed (Index): 0

Total Pages Failing   (Index): 0

Total Pages Processed (Other): 40

    Total Pages Processed (Seg)  : 0

Total Pages Failing   (Seg)  : 0

Total Pages Empty: 364

Total Pages Marked Corrupt: 0

Total Pages Influx           : 0

Highest blockSCN: 775 (65535.775)         

2.对联机日志文件的验证(库处OPEN状态),不支持

[oracle10g:oracle:orcl]$ dbv file=redo01.log

DBVERIFY: Release 10.2.0.4.0 - Production on Sun Jun 515:01:092011

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

      DBV-00103: Specified BLOCKSIZE (8192) differs from actual (512)

[oracle10g:oracle:orcl]$ dbv file=redo01.log blocksize=512--可以行,但出下面很多的提示(质错误)

Page 88441is influx - most likely media corrupt

Corruptblock relative dba: 0x00015979 (file0, block88441)

Fractured blockfound during dbv:

Datain bad block:

type: 1 format: 2 rdba: 0x00015979

lastchangescn: 0x8010.00000010 seq: 0x51 flg: 0x55

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

consistency valuein tail: 0xc2037800

checkvalueinblockheader: 0x108

computed block checksum: 0x0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值