返回顶部

欢迎来到菜鸟大明儿哥的博客

我们一起交流学习,不断提升自我

使用DBV(DB File Verify)工具检查数据坏块

一、介绍

DBV(DBVERIFY)是oracle提供的一个命令行工具,它可以对数据文件物理和逻辑两种一致性检查。但是这个工具不会检查索引记录和数据记录的匹配关系,这种检查必须使用analyze validate structure命令。

这个工具有如下特点:

  • 以只读的方式打开数据文件,在检查过程中不会修改数据文件的内容。
  • 可以在线检查数据文件,而不需要关闭数据库。
  • 不能检查控制文件和日志文件,只能检查数据文件。
  • 这个工具可以检查ASM文件,但数据库必须Open状态,并且需要通过USERID指定用户,比如:dbv file=+DG1/ORCL/datafile/system01.dbf userid=system/sys
  • 在许多UNIX平台下,DBV要求数据文件有扩展名,如果没有可以通过建立链接的方法,然后对链接的方法,然后对链接文件进行操作,比如:ls -n /dev/rdsk/mydevice /tmp/mydevice.dbf
  • 某些平台,DBV工具不能检查超过2GB的文件,如果碰到DBV-100错误,请先检查文件大小,MOS Bug 710888对这个问题有描述。
  • DBV只会检查数据块的正确性,但不会关系数据块是否属于哪个对象。
  • 对于祼设备建议指定END参数,避免超出数据文件范围。比如:dbv FILE=/dev/rdsk/r1.dbf END=<last_block_number>。可以在v$datafile视图中用bytes字段除以块大小来获得END值。

 

参数

含义

缺省值

FILE

要检查的数据文件名

没有缺省值

START

检查起始数据块号

数据文件的第一个数据块

END

检查的最后一个数据块号

数据文件的最后一个数据块

BLOCKSIZE

数据块大小,这个值要和数据库的DB_BLOCK_SIZE参数值一致

缺省值8192

LOGFILE

检查结果日志文件

没有缺省值

FEEDBAK

显示进度

0

PARFILE

参数文件名

没有缺省值

USERID

用户名、密码

没有缺省值。验证ASM时需要指定

SEGMENT_ID

段ID,参数格式<tsn.segfile.segblock>

没有缺省值

 

二、简单使用

ORA-01578: ORACLE data block corrupted (file # 64, block # 1520947)

ORA-01110: data file 64: '/data1/test/datafile/users02.dbf '

 

[oracle@test datafile]$ dbv file=users02.dbf

DBVERIFY: Release 11.2.0.4.0 - Production on 星期日 9月 27 09:50:19 2020

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

DBVERIFY - Verification starting : FILE = /data1/test/datafile/users02.dbf

 

 

DBVERIFY - Verification complete

 

Total Pages Examined         : 4096000                   --检查总页数

Total Pages Processed (Data) : 2728901                                     --处理的总页数(数据)

Total Pages Failing   (Data) : 0                                           --总页数失败(数据)

Total Pages Processed (Index): 361908                              --处理的总页数(索引)

Total Pages Failing   (Index): 0                                           --总页面失败(索引)

Total Pages Processed (Other): 31105                                --处理的总页数(其他)

Total Pages Processed (Seg)  : 0                                         --处理的总页数(seg)

Total Pages Failing   (Seg)  : 0                                          --总页数失败(seg)

Total Pages Empty            : 974086                            --总页数空

Total Pages Marked Corrupt   : 0                                       --总页数标记为损坏

Total Pages Influx           : 0                                         --总页面数量

Total Pages Encrypted        : 0                                      --加密总页数

Highest block SCN            : 299697043 (27.299697043)     --最高块SCN

 

 

限制

1.DBV受版本限制,高版本可以自动识别低版本数据库,比如11g的dbv访问9i的数据库,但是低版本的dbv访问高版本会报错。
2.不支持联机日志文件,归档日志,RMAN备份集验证

3. 在许多Unix平台,DBV要求数据文件要有扩展名,如果没有可建立软连接:

ln -s /dev/rdsk/mydevice /tmp/mydevice.dbf

posted @ 2020-10-13 13:12  菜鸟大明儿哥  阅读(997)  评论(0编辑  收藏  举报