1定义
oracle的坏块可分为物理坏块和逻辑坏块。坏块损坏信息类似为:
ORA-01578: ORACLE data block corrupted (file # 6, block # 11)
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/tbs01.dbf'
DBVERIFY工具的主要目的是为了检查数据文件、控制文件的物理结构,包括数据文件是否损坏,是否存在逻辑坏块,以及数据文件中包含何种类型的数据。不管数据库是否打开,都可以访问数据文件,也就是无论其是online还是offline。在Unix系统中位于:$ORACLE_HOME/bin/dbv。
Oracle数据文件的坏块,可分为物理坏块和逻辑坏块。物理坏块(也可以称为介质坏块)指的是块格式本身是坏的,块内的数据没有任何意义。而逻辑坏块,指的是块内的数据在逻辑是存在问题。比如说索引块的索引值没有按从小到大排列。物理坏块一般是由于内存问题、OS问题、IO子系统问题和硬件引起,逻辑坏块一般是是由于Oracle Bug等原因引起。
2命令
- C:\Users\Administrator>dbv
-
- DBVERIFY:Release10.2.0.1.0-Productionon星期四9月2001:24:372012
-
- Copyright(c)1982,2005,Oracle.Allrightsreserved.
-
- 关键字说明(默认值)
-
- FILE要验证的文件(无)
- START起始块(文件的第一个块)
- END结束块(文件的最后一个块)
- BLOCKSIZE逻辑块大小(8192)
- LOGFILE输出日志(无)
- FEEDBACK显示进度(0)
- PARFILE参数文件(无)
- USERID用户名/口令(无)
- SEGMENT_ID段ID(tsn.relfile.block)(无)
- HIGH_SCN要验证的最高块SCN(无)
- (scn_wrap.scn_base或scn)
注释:
① 如果feedback=1000,则验证1000个块显示一个.这个符号
② USERID --当验证asm文件时,要指定
③ FILE --用户指定要验证的数据文件名
④ BLOCKSIZE --指定数据文件的尺寸,缺省值为8192,对于非8192块将收到DBV-00103错误
⑤ PARFILE --可以像使用expdp/impdp一样,将一些选项置于参数文件里面
⑥ SEGMENT_ID --校验段,需要表空间ID,数据文件ID,段的头部ID
3限制
①DBV受版本限制,高版本可以自动识别低版本数据库,比如11g的dbv访问9i的数据库,但是低版本的dbv访问高版本会报错。
②不支持联机日志文件,归档日志,RMAN备份集验证
4案例
案例(一)
- C:\Users\Administrator>dbvfile=d:\oracle\product\10.2.0\oradata\ORCL\DATAFILE\O1_MF_USERS_7TQZTYTO_.DBF
-
- DBVERIFY:Release10.2.0.1.0-Productionon星期四9月2001:04:072012
-
- Copyright(c)1982,2005,Oracle.Allrightsreserved.
-
- DBVERIFY-开始验证:FILE=d:\oracle\product\10.2.0\oradata\ORCL\DATAFILE\O1_MF_USERS_7TQZTYTO_.DBF
-
-
- DBVERIFY-验证完成
-
- 检查的页总数:42560
- 处理的页总数(数据):40681
- 失败的页总数(数据):0
- 处理的页总数(索引):97
- 失败的页总数(索引):0
- 处理的页总数(其它):592
- 处理的总页数(段):0
- 失败的总页数(段):0
- 空的页总数:1190
- 标记为损坏的总页数:0
- 流入的页总数:0
- 最高块SCN:4772756(0.4772756)
可以看到,dbverify给出的结果包括数据文件包括的BLOCK数量,其中包括多少个数据块,多少个索引块,多少空块,多少个已经被标志为坏块的块,多少个坏块。注意:如果Total Pages Influx的值大于零,且未存在坏块的情况下,是由于针对open状态的文件运行dbv程序遇到了一个当前正在被DBWn进程写入的数据块。
案例(二)
DBV工具还有一种在数据库打开的情况下使用的,验证指定段的使用情况
- 01:18:15sys@ORCL(^ω^)SELECTTABLESPACE_ID,HEADER_FILE,HEADER_BLOCK
- 01:19:272FROMSYS_DBA_SEGS
- 01:19:273WHERESEGMENT_NAME='S_EMP'
- 01:19:294/
-
- TABLESPACE_IDHEADER_FILEHEADER_BLOCK
-
- 44603
-
- C:\Users\Administrator>DBVuserid=hr/hrsegment_id=4.4.603
-
- DBVERIFY:Release10.2.0.1.0-Productionon星期四9月2001:22:042012
-
- Copyright(c)1982,2005,Oracle.Allrightsreserved.
-
- DBVERIFY-开始验证:SEGMENT_ID=4.4.603
-
-
- DBVERIFY-验证完成
-
- 检查的页总数:8
- 处理的页总数(数据):5
- 失败的页总数(数据):0
- 处理的页总数(索引):0
- 失败的页总数(索引):0
- 处理的页总数(其它):2
- 处理的总页数(段):1
- 失败的总页数(段):0
- 空的页总数:0
- 标记为损坏的总页数:0
- 流入的页总数:0
- 最高块SCN:4689412(0.4689412)