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工具,高版本可以自动识别低版本,比如11gdbv访问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.

 

KeywordDescription(Default)

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

FILEFiletoVerify(NONE)

STARTStartBlock(FirstBlockofFile)

ENDEndBlock(LastBlockofFile)

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

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

FEEDBACKDisplay Progress(0)

PARFILEParameter File(NONE)--可以指定参数文件

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

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

HIGH_SCNHighest BlockSCNToVerify(NONE)

(scn_wrap.scn_base ORscn)

 

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

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 TBS1635

 

注意: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

相关内容

    暂无相关文章