DBVERIFY 工具的使用

来源:互联网 发布:python基础知识 编辑:程序博客网 时间:2024/06/05 15:06

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

-- DBVERIFY 工具的使用

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

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

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

一、块检查

1.时检查块

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

的版本

较块cacheblock buffer中的地址

根据要求行校(checksum)

2.坏的错误提示

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

ORA-01578: ORACLEdatablock 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 mediarecovery未知                        

二、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 - Productionon Tue Oct2618: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 - Productionon Tue Oct2618: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 - Productionon Tue Oct2618:26:212010

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

DBV-00102:File I/OerroronFILE (/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 - Productionon Tue Oct2618: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 copydatafile6--使用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 - Productionon Tue Oct2618: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_typefrom dba_extentswhere file_id=<F>and <B>

between block_idand block_id+blocks-1;

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

下面使用rman

RMAN> run{

2>allocate channel ch1 devicetypedisk;

3> blockrecoverdatafile6block37;

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, elapsedtime:00:00:00

Finished blockrecover at26-OCT-10

released channel: ch1       

flasher@ORCL> altertable tb3addconstraint empno_tb3_pk

2primarykey(empno);

四、其

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

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

DBVERIFY: Release 10.2.0.4.0 - Productionon Sun Jun514:56:312011

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

DBV-00103: SpecifiedBLOCKSIZE (8192) differsfrom actual (16384--根据提示知道blocksize值为16384

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

DBVERIFY: Release 10.2.0.4.0 - Productionon Sun Jun514: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 - Productionon Sun Jun515:01:092011

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

      DBV-00103: SpecifiedBLOCKSIZE (8192) differsfrom actual (512)

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

Page 88441is influx - most likely mediacorrupt

Corruptblock relativedba:0x00015979 (file0,block88441)

Fractured blockfound during dbv:

Datain badblock:

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

原创粉丝点击