Oracle工具——DBVERIFY
来源:互联网 发布:阿里云 怎么注销 编辑:程序博客网 时间:2024/06/05 17:12
DBVERIFY工具用来验证数据文件的物理结构。
DBVERIFY工具的主要目的是为了检查数据文件的物理结构,包括数据文件是否损坏,是否存在逻辑坏块,以及数据文件中包含何种类型的数据。
DBVERIFY工具可以验证ONLINE或OFFLINE的数据文件。不管数据库是否打开,都可以访问数据文件。一个最简单的访问数据文件的例子:
E:\oracle>dbvfile=e:\oracle\oradata\ytk92\users01.dbf blocksize=8192
DBVERIFY: Release9.2.0.4.0 - Production on星期四3月26 21:17:442009
Copyright (c) 1982, 2002, Oracle Corporation. All rightsreserved.
DBVERIFY -验证正在开始: FILE = e:\oracle\oradata\ytk92\users01.dbf
DBVERIFY -验证完成
检查的页总数 :8160
处理的页总数(数据):6867
失败的页总数(数据):0
处理的页总数(索引):743
失败的页总数(索引):0
处理的页总数(其它):270
处理的总页数(段) : 0
失败的总页数(段) : 0
空的页总数 :280
标记为损坏的总页数:0
汇入的页总数 :0
可以看到,dbverify给出的结果包括数据文件包括的BLOCK数量,其中包括多少个数据块,多少个索引块,多少空块,多少个已经被标志为坏块的块,多少个坏块。
对于DBVERIFY工具,高版本可以自动识别低版本数据库,比如11g的dbv访问9i的数据库:
DBVERIFY: Release11.1.0.6.0 - Production on星期四3月26 21:34:282009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY -开始验证: FILE = e:\oracle\oradata\ytk92\users01.dbf
DBVERIFY -验证完成
检查的页总数: 8160
处理的页总数(数据): 7192
失败的页总数(数据): 0
处理的页总数(索引): 415
失败的页总数(索引): 0
处理的页总数(其它): 273
处理的总页数(段) : 0
失败的总页数(段) : 0
空的页总数: 280
标记为损坏的总页数: 0
流入的页总数: 0
加密的总页数 : 0
最高块SCN : 1963808326 (1.1963808326)
但是低版本的dbv访问高版本会报错:
E:\oracle>dbvfile=e:\oracle\oradata\ytk102\yangtk01.dbf blocksize=8192
DBVERIFY: Release9.2.0.4.0 - Production on星期四3月26 21:42:062009
Copyright (c) 1982, 2002, Oracle Corporation. All rightsreserved.
DBVERIFY -验证正在开始: FILE =e:\oracle\oradata\ytk102\yangtk01.dbf
汇入的页1 -可能是介质损坏
Corrupt block relative dba: 0x00000001 (file 0, block 1)
Fractured block found during dbv:
Data in bad block-
type: 0 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
consistency value in tail: 0x00000010
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
Corrupt block relative dba: 0x00000002 (file 0, block 2)
Bad header found during dbv:
Data in bad block -
type: 2 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
consistency value in tail: 0x00000000
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
.
汇入的页16384 -可能是介质损坏
Corrupt block relative dba: 0x00004000 (file 0, block16384)
Fractured block found during dbv:
Data in bad block -
type: 0 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
consistency value in tail: 0x00000000
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
***
DBVERIFY -验证完成
检查的页总数 :16384
处理的页总数(数据):0
失败的页总数(数据):0
处理的页总数(索引):0
失败的页总数(索引):0
处理的页总数(其它):0
处理的总页数(段) : 0
失败的总页数(段) : 0
空的页总数 :0
标记为损坏的总页数:16384
汇入的页总数 :10744
DBV工具还有一种在数据库打开的情况下使用的,验证指定段的用法:
SQL> CONN /@YTK92 AS SYSDBA
已连接。
SQL> SELECT TABLESPACE_ID, HEADER_FILE,HEADER_BLOCK
2 FROM SYS_DBA_SEGS
3 WHERE SEGMENT_NAME = 'T_T';
TABLESPACE_ID HEADER_FILE HEADER_BLOCK
------------- ----------- ------------
9 9 1387
这种方法需要查询表空间ID、段头所在的数据文件ID和以及段头所在表空间ID,要获取这个信息可以通过SYS用户查询SYS_DBA_SEGS视图。需要注意的是,Oracle文档给出的SYS_USER_SEGS视图只能查询SYS用户的段,要查询普通用户的段信息,需要访问SYS_DBA_SEGS。
E:\oracle>dbv userid=yangtk/yangtksegment_id=9.9.1387
DBVERIFY: Release9.2.0.4.0 - Production on星期四3月26 21:56:192009
Copyright (c) 1982, 2002, Oracle Corporation. All rightsreserved.
DBVERIFY -正在启动验证: SEGMENT_ID = 9.9.1387
DBVERIFY -验证完成
检查的页总数 :512
处理的页总数(数据):470
失败的页总数(数据):0
处理的页总数(索引):26
失败的页总数(索引):0
处理的页总数(其它):15
处理的总页数(段) : 1
失败的总页数(段) : 0
空的页总数 :0
标记为损坏的总页数:0
汇入的页总数 :0
这种方式要求数据库处于打开的状态。
由于dbv可以在实例关闭情况下验证数据文件,因此dbv也可以验证数据文件的拷贝。
这个拷贝指的是通过RMAN的COPY命令或者操作系统命令cp拷贝的数据文件,而不是RMAN生成的备份集格式。
E:\oracle>rman target /
恢复管理器:版本9.2.0.4.0- Production
Copyright (c) 1995, 2002, Oracle Corporation. All rightsreserved.
连接到目标数据库: YTK92 (DBID=1285986946)
RMAN> run
2>{
3> copy datafile'E:\ORACLE\ORADATA\YTK92\USERS01.DBF' to 'e:\userbak.dbf';
4> }
启动copy于26-3月-09
分配的通道: ORA_DISK_1
通道ORA_DISK_1: sid=17 devtype=DISK
通道ORA_DISK_1:已复制数据文件
输出文件名=E:\USERBAK.DBF recid=1 stamp=682554612
完成copy于26-3月-09
RMAN> exit
恢复管理器完成。
E:\oracle>dbv file=e:\userbak.dbfblocksize=8192
DBVERIFY: Release9.2.0.4.0 - Production on星期四3月26 22:33:132009
Copyright (c) 1982, 2002, Oracle Corporation. All rightsreserved.
DBVERIFY -验证正在开始: FILE = e:\userbak.dbf
DBVERIFY -验证完成
检查的页总数 :8160
处理的页总数(数据):7192
失败的页总数(数据):0
处理的页总数(索引):415
失败的页总数(索引):0
处理的页总数(其它):273
处理的总页数(段) : 0
失败的总页数(段) : 0
空的页总数 :280
标记为损坏的总页数:0
汇入的页总数 :0
- Oracle工具——DBVERIFY
- Oracle工具——DBVERIFY
- Oracle工具——DBVERIFY
- Oracle工具——DBVERIFY (其一)
- Oracle工具——DBVERIFY (其二)
- Oracle DBVERIFY 工具介绍
- Oracle DBVERIFY 工具介绍
- DBV——DBVerify
- DBVERIFY 工具的使用
- DBVERIFY 工具的使用
- DBVERIFY 工具的使用
- DBVERIFY 工具的使用
- oracle 实用工具 DBVERIFY
- DBVERIFY
- 21.2 DBVERIFY
- Oracle工具——ORAPWD
- Oracle工具——DBNEWID
- Oracle工具——ADRCI
- Oracle存储过程和程序包
- ORA-01555错误
- oracle 10G ASM_POWER_LIMIT与Rebalance
- 关于程序包:DBMS_RESOURCE_MANAGE…
- About Opening with the RESETLOGS Option
- Oracle工具——DBVERIFY
- rman备份出现ORA-19625
- TSPITR 基于表空间时间点恢复
- 关于Block Media Recovery
- oracle 重做日志组的三种状态:current,active,inactive
- 索引组织表中的MAPPING TABLE
- 索引组织表与簇---来自互联网
- 关于视图:V$OBJECT_USAGE
- 关于重构索引--index rebuild的OCP 题