DBV(DBVERIFY)工具
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,DBV(DBVERIFY)是Oracle提供的一个命令行工具,它可以对数据文件物理和逻辑两种一致性检查。但是这个工具不会检查索引记录和数据记录的匹配关系,这种检查必须使用analyze validat
千家信息网最后更新 2025年01月19日DBV(DBVERIFY)工具DBV(DBVERIFY)是Oracle提供的一个命令行工具,它可以对数据文件物理和逻辑两种一致性检查。但是这个工具不会检查索引记录和数据记录的匹配关系,这种检查必须使用analyze validate structure命令。
这个工具有如下特点:
1以只读的方式打开数据文件,在检查过程中不会修改数据文件的内容。
2可以在线检查数据文件,而不需要关闭数据库。
3不能检查控制文件和日志文件,只能检查数据文件。
4这个工具可以检查ASM文件,但数据库必须Open状态,并且需要通过USERID指定用户,比如:dbv file=+DG1/ORCL/datafile/system01.dbf userid=system/sys
5在许多UNIX平台下,DBV要求数据文件有扩展名,如果没有可以通过建立链接的方法,然后对链接的方法,然后对链接文件进行操作,比如:ls -n /dev/rdsk/mydevice /tmp/mydevice.dbf
6某些平台,DBV工具不能检查超过2GB的文件,如果碰到DBV-100错误,请先检查文件大小,MOS Bug 710888对这个问题有描述。
7DBV只会检查数据块的正确性,但不会关系数据块是否属于哪个对象。
8对于祼设备建议指定END参数,避免超出数据文件范围。比如:dbv FILE=/dev/rdsk/r1.dbf END=。可以在v$datafile视图中用bytes字段除以块大小来获得END值。
参数含义缺省值
FILE要检查的数据文件名没有缺省值
START检查起始数据块号数据文件的第一个数据块
END检查的最后一个数据块号数据文件的最后一个数据块
BLOCKSIZE数据块大小,这个值要和数据库的DB_BLOCK_SIZE参数值一致缺省值8192
LOGFILE检查结果日志文件没有缺省值
FEEDBAK显示进度0
PARFILE参数文件名没有缺省值
USERID用户名、密码没有缺省值
SEGMENT_ID段ID,参数格式没有缺省值
使用示例:
[oracle@rhel6 ~]$ dbv file=/u01/app/oracle/oradata/test/users01.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 16:42:26 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/test/users01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 155520
Total Pages Processed (Data) : 144530
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 52
Total Pages Failing (Index): 0
Total Pages Processed (Other): 1248
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 9690
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3559792 (0.3559792)
这个工具报告使用的是page作为单位,含义和data block相同。从上面的检查结果Total Pages Marked Corrupt : 0可以看出文件没有坏块。
除了检查数据文件,这个工具还允许检查单独的Segment,这时参数值的格式为
查看对象的tsn,segfile,segblock属性:
zx@TEST>select t.ts#,s.header_file,s.header_block
2 from v$tablespace t,dba_segments s
3 where s.segment_name='T'
4 and t.name=s.tablespace_name;
TS# HEADER_FILE HEADER_BLOCK
---------- ----------- ------------
4 4 45834
从上面的查询结果可行参数值为4.4.45834。检查Segment:
[oracle@rhel6 ~]$ dbv userid=system/123456 segment_id=4.4.45834
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 20:58:33 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : SEGMENT_ID = 4.4.45834
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
Total Pages Encrypted : 0
Highest block SCN : 3518579 (0.3518579)
下面人为创造一个坏块,用dbv来检查。
创建一个测试表
zx@TEST>create table bbed (id number,name varchar2(20)) tablespace users;
Table created.
zx@TEST>insert into bbed values(1,'zhaoxu');
1 row created.
zx@TEST>commit;
Commit complete.
当前数据文件没有坏块
[oracle@rhel6 ~]$ dbv file=/u01/app/oracle/oradata/test/users01.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 21:03:40 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/test/users01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 155520
Total Pages Processed (Data) : 66397
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 52
Total Pages Failing (Index): 0
Total Pages Processed (Other): 88898
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 173
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3764775 (0.3764775)
获取表在文件中的存储信息
zx@TEST>set serveroutput on
zx@TEST>declare rfno number;
2 rtype number;
3 ono number;
4 blkno number;
5 rowno number;
6 rid varchar2(30);
7 begin
8 select rowid into rid from bbed;
9 dbms_rowid.rowid_info(ROWID_IN=>rid,RELATIVE_FNO=>rfno,BLOCK_NUMBER=>blkno,ROW_NUMBER=>rowno,ROWID_TYPE=>rtype,OBJECT_NUMBER=>ono);
10 dbms_output.put_line(rfno||','||blkno||','||rowno);
11 end;
12 /
4,45844,0
PL/SQL procedure successfully completed.
使用bbed修改块信息
[oracle@rhel6 bbed]$ bbed parfile=bbed.par
Password:
BBED: Release 2.0.0.0.0 - Limited Production on Mon May 22 21:17:18 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> set dba 4,45844
DBA 0x0100b314 (16823060 4,45844)
BBED> find /c zhaoxu
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
------------------------------------------------------------------------
7a68616f 78750106 5873
<32 bytes per line>
BBED> dump /v dba 4,45844 offset 8182 count 32
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
-------------------------------------------------------
7a68616f 78750106 5873 l zhaoxu..Xs
<16 bytes per line>
BBED> modify 100 dba 4,45844
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
------------------------------------------------------------------------
6468616f 78750106 5873
<32 bytes per line>
BBED> dump /v dba 4,45844 offset 8182 count 32
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
-------------------------------------------------------
6468616f 78750106 5873 l dhaoxu..Xs
<16 bytes per line>
BBED> exit
再次使用dbv检查文件
[oracle@rhel6 bbed]$ dbv file=/u01/app/oracle/oradata/test/users01.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 21:18:46 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/test/users01.dbf
Page 45844 is marked corrupt
Corrupt block relative dba: 0x0100b314 (file 4, block 45844)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0100b314
last change scn: 0x0000.00397358 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x73580601
check value in block header: 0x7c2d
computed block checksum: 0x1e
DBVERIFY - Verification complete
Total Pages Examined : 155520
Total Pages Processed (Data) : 66396
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 52
Total Pages Failing (Index): 0
Total Pages Processed (Other): 88898
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 173
Total Pages Marked Corrupt : 1
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3764775 (0.3764775)
报告一个坏块,Total Pages Marked Corrupt : 1
再次查询测试表:
sys@TEST>select * from zx.bbed;
ID NAME
---------- ------------------------------------------------------------
1 zhaoxu
查询正常,因为在buffer_cache中缓存了块,而修改的是文件中的块。两个块现在不一致,清空buffer cache后再次查询测试表。
zx@TEST>alter system flush buffer_cache;
System altered.
zx@TEST>select * from bbed;
select * from bbed
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 4, block # 45844)
ORA-01110: data file 4: '/u01/app/oracle/oradata/test/users01.dbf'
查询报出错误ORA-01578。
使用dbv检查ASM文件中的数据文件,需要指定userid参数
[oracle@rac1 ~]$ dbv file=+DATA/orcl/datafile/users.259.925306091 userid=sys/123456
DBVERIFY: Release 11.2.0.4.0 - Production on Mon May 22 16:48:22 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = +DATA/orcl/datafile/users.259.925306091
DBVERIFY - Verification complete
Total Pages Examined : 640
Total Pages Processed (Data) : 16
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 2
Total Pages Failing (Index): 0
Total Pages Processed (Other): 593
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 29
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 0 (0.0)
转载自:https://www.linuxidc.com/Linux/2017-05/144202.htm
这个工具有如下特点:
1以只读的方式打开数据文件,在检查过程中不会修改数据文件的内容。
2可以在线检查数据文件,而不需要关闭数据库。
3不能检查控制文件和日志文件,只能检查数据文件。
4这个工具可以检查ASM文件,但数据库必须Open状态,并且需要通过USERID指定用户,比如:dbv file=+DG1/ORCL/datafile/system01.dbf userid=system/sys
5在许多UNIX平台下,DBV要求数据文件有扩展名,如果没有可以通过建立链接的方法,然后对链接的方法,然后对链接文件进行操作,比如:ls -n /dev/rdsk/mydevice /tmp/mydevice.dbf
6某些平台,DBV工具不能检查超过2GB的文件,如果碰到DBV-100错误,请先检查文件大小,MOS Bug 710888对这个问题有描述。
7DBV只会检查数据块的正确性,但不会关系数据块是否属于哪个对象。
8对于祼设备建议指定END参数,避免超出数据文件范围。比如:dbv FILE=/dev/rdsk/r1.dbf END=
参数含义缺省值
FILE要检查的数据文件名没有缺省值
START检查起始数据块号数据文件的第一个数据块
END检查的最后一个数据块号数据文件的最后一个数据块
BLOCKSIZE数据块大小,这个值要和数据库的DB_BLOCK_SIZE参数值一致缺省值8192
LOGFILE检查结果日志文件没有缺省值
FEEDBAK显示进度0
PARFILE参数文件名没有缺省值
USERID用户名、密码没有缺省值
SEGMENT_ID段ID,参数格式
使用示例:
[oracle@rhel6 ~]$ dbv file=/u01/app/oracle/oradata/test/users01.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 16:42:26 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/test/users01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 155520
Total Pages Processed (Data) : 144530
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 52
Total Pages Failing (Index): 0
Total Pages Processed (Other): 1248
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 9690
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3559792 (0.3559792)
这个工具报告使用的是page作为单位,含义和data block相同。从上面的检查结果Total Pages Marked Corrupt : 0可以看出文件没有坏块。
除了检查数据文件,这个工具还允许检查单独的Segment,这时参数值的格式为
查看对象的tsn,segfile,segblock属性:
zx@TEST>select t.ts#,s.header_file,s.header_block
2 from v$tablespace t,dba_segments s
3 where s.segment_name='T'
4 and t.name=s.tablespace_name;
TS# HEADER_FILE HEADER_BLOCK
---------- ----------- ------------
4 4 45834
从上面的查询结果可行参数值为4.4.45834。检查Segment:
[oracle@rhel6 ~]$ dbv userid=system/123456 segment_id=4.4.45834
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 20:58:33 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : SEGMENT_ID = 4.4.45834
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
Total Pages Encrypted : 0
Highest block SCN : 3518579 (0.3518579)
下面人为创造一个坏块,用dbv来检查。
创建一个测试表
zx@TEST>create table bbed (id number,name varchar2(20)) tablespace users;
Table created.
zx@TEST>insert into bbed values(1,'zhaoxu');
1 row created.
zx@TEST>commit;
Commit complete.
当前数据文件没有坏块
[oracle@rhel6 ~]$ dbv file=/u01/app/oracle/oradata/test/users01.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 21:03:40 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/test/users01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 155520
Total Pages Processed (Data) : 66397
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 52
Total Pages Failing (Index): 0
Total Pages Processed (Other): 88898
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 173
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3764775 (0.3764775)
获取表在文件中的存储信息
zx@TEST>set serveroutput on
zx@TEST>declare rfno number;
2 rtype number;
3 ono number;
4 blkno number;
5 rowno number;
6 rid varchar2(30);
7 begin
8 select rowid into rid from bbed;
9 dbms_rowid.rowid_info(ROWID_IN=>rid,RELATIVE_FNO=>rfno,BLOCK_NUMBER=>blkno,ROW_NUMBER=>rowno,ROWID_TYPE=>rtype,OBJECT_NUMBER=>ono);
10 dbms_output.put_line(rfno||','||blkno||','||rowno);
11 end;
12 /
4,45844,0
PL/SQL procedure successfully completed.
使用bbed修改块信息
[oracle@rhel6 bbed]$ bbed parfile=bbed.par
Password:
BBED: Release 2.0.0.0.0 - Limited Production on Mon May 22 21:17:18 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> set dba 4,45844
DBA 0x0100b314 (16823060 4,45844)
BBED> find /c zhaoxu
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
------------------------------------------------------------------------
7a68616f 78750106 5873
<32 bytes per line>
BBED> dump /v dba 4,45844 offset 8182 count 32
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
-------------------------------------------------------
7a68616f 78750106 5873 l zhaoxu..Xs
<16 bytes per line>
BBED> modify 100 dba 4,45844
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
------------------------------------------------------------------------
6468616f 78750106 5873
<32 bytes per line>
BBED> dump /v dba 4,45844 offset 8182 count 32
File: /u01/app/oracle/oradata/test/users01.dbf (4)
Block: 45844 Offsets: 8182 to 8191 Dba:0x0100b314
-------------------------------------------------------
6468616f 78750106 5873 l dhaoxu..Xs
<16 bytes per line>
BBED> exit
再次使用dbv检查文件
[oracle@rhel6 bbed]$ dbv file=/u01/app/oracle/oradata/test/users01.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 21:18:46 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/test/users01.dbf
Page 45844 is marked corrupt
Corrupt block relative dba: 0x0100b314 (file 4, block 45844)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0100b314
last change scn: 0x0000.00397358 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x73580601
check value in block header: 0x7c2d
computed block checksum: 0x1e
DBVERIFY - Verification complete
Total Pages Examined : 155520
Total Pages Processed (Data) : 66396
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 52
Total Pages Failing (Index): 0
Total Pages Processed (Other): 88898
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 173
Total Pages Marked Corrupt : 1
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 3764775 (0.3764775)
报告一个坏块,Total Pages Marked Corrupt : 1
再次查询测试表:
sys@TEST>select * from zx.bbed;
ID NAME
---------- ------------------------------------------------------------
1 zhaoxu
查询正常,因为在buffer_cache中缓存了块,而修改的是文件中的块。两个块现在不一致,清空buffer cache后再次查询测试表。
zx@TEST>alter system flush buffer_cache;
System altered.
zx@TEST>select * from bbed;
select * from bbed
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 4, block # 45844)
ORA-01110: data file 4: '/u01/app/oracle/oradata/test/users01.dbf'
查询报出错误ORA-01578。
使用dbv检查ASM文件中的数据文件,需要指定userid参数
[oracle@rac1 ~]$ dbv file=+DATA/orcl/datafile/users.259.925306091 userid=sys/123456
DBVERIFY: Release 11.2.0.4.0 - Production on Mon May 22 16:48:22 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = +DATA/orcl/datafile/users.259.925306091
DBVERIFY - Verification complete
Total Pages Examined : 640
Total Pages Processed (Data) : 16
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 2
Total Pages Failing (Index): 0
Total Pages Processed (Other): 593
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 29
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 0 (0.0)
转载自:https://www.linuxidc.com/Linux/2017-05/144202.htm
文件
数据
检查
参数
工具
查询
一致
再次
大小
数据库
结果
链接
测试
信息
含义
命令
对象
平台
报告
文件名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
美女如云下载软件开发
多ip香港服务器租用价格
小微企业包括什么软件开发
软件开发发展状况
服务器 虚拟内存设置
网络安全技术论文下载
网络安全报绘画
实现网络安全的源代码
网络安全法 租户
采用什么技术保障网络安全
支持u8系统的数据库管理系统
软件源服务器
爱如生四库系列数据库
数据通信与网络技术知识
单机游戏服务器一个月多少钱
台式内存可以用在服务器上吗
pup软件开发视频
数据库新建表录入数据
黑客服务器管理
严格落实网络安全法
游戏网络安全需求分析
ppt 滚动 数据库
化学品数据库考试技巧
服务器网络端口设置命令
数据库支持最多汉字
有泰拉瑞亚正版服务器吗
图书馆涉华的国外数据库
数据库新建表录入数据
网络安全报废维修记录
影之刃三最开始是哪个服务器