ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle DBV 工具 介绍

Oracle DBV 工具 介绍

原创 Linux操作系统 作者:xz43 时间:2011-01-18 17:31:10 0 删除 编辑
DBVERIFY工具的主要目的是为了检查数据文件的物理结构,包括数据文件是否损坏,是否存在逻辑坏块,以及数据文件中包含何种类型的数据。
DBVERIFY工具可以验证ONLINE或OFFLINE的数据文件。不管数据库是否打开,都可以访问数据文件。
 
1.可以使用帮助查看dbv的命令参数
C:\>dbv help=y
DBVERIFY: Release 11.1.0.7.0 - Production on 星期二 12月 15 23:35:24 2009
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
关键字      说明                    (默认值)
----------------------------------------------------
FILE        要验证的文件                 (无)
START       起始块                    (文件的第一个块)
END         结束块                      (文件的最后一个块)
BLOCKSIZE   逻辑块大小             (8192)
LOGFILE     输出日志                     (无)
FEEDBACK    显示进度               (0)
PARFILE     参数文件                 (无)
USERID      用户名/口令              (无)
SEGMENT_ID  段 ID (tsn.relfile.block) (无)
HIGH_SCN    要验证的最高块 SCN    (无)
            (scn_wrap.scn_base 或 scn)
 
 
2.具体使用说明
DBVERIFY 验证数据文件
FILE 输入文件名
START 开始块地址
END 结束块地址
BLOCKSIZE 指定BLOCKSIZE尺寸
LOGFILE 指定LOG文件
FEEDBACK 进度显示
HELP 帮助
PARFILE 参数文件
 
3. 简单语法

3.1 dbv FILE=t_db1.dbf  FEEDBACK=100
 
E:\app\Administrator\oradata\orcl>dbv file=users01.dbf blocksize=8192
DBVERIFY: Release 11.1.0.7.0 - Production on 星期二 12月 15 23:54:55 2009
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
DBVERIFY - 开始验证: FILE = E:\app\Administrator\oradata\orcl/users01.dbf
 
DBVERIFY - 验证完成
检查的页总数: 640
处理的页总数 (数据): 91
失败的页总数 (数据): 0
处理的页总数 (索引): 33
失败的页总数 (索引): 0
处理的页总数 (其它): 496
处理的总页数 (段)  : 0
失败的总页数 (段)  : 0
空的页总数: 20
标记为损坏的总页数: 0
流入的页总数: 0
加密的总页数        : 0
最高块 SCN            : 904088 (0.904088)
 
注意目录,要进入数据文件的存放目录后在运行该命令,不然会报找不到数据文件。
 

3.2  DBV工具还有一种在数据库打开的情况下使用的,验证指定段的用法:
   dbv USERID=username/password SEGMENT_ID=tsn.relfile.block

DBVERIFY验证段
USERID 指定用户名和密码
SEGMENT_ID 指定验证的段
LOGFILE 指定LOG文件
FEEDBACK 进度显示
HELP 帮助
PARFILE 参数文件
 
这种方法需要查询表空间ID、段头所在的数据文件ID和以及段头所在表空间ID,要获取这个信息可以通过SYS用户查询SYS_DBA_SEGS视图。需要注意的是,Oracle文档给出的SYS_USER_SEGS视图只能查询SYS用户的段,要查询普通用户的段信息,需要访问SYS_DBA_SEGS。
 
--------------------------------------------------------------------------------
SQL> create table DAVE (ID number);
表已创建。
SQL> SELECT TABLESPACE_ID, HEADER_FILE, HEADER_BLOCK FROM SYS_DBA_SEGS WHERE SEGMENT_NAME = 'DAVE';
TABLESPACE_ID HEADER_FILE HEADER_BLOCK
------------- ----------- ------------
            0           1        89976
E:\app\Administrator\oradata\orcl>dbv userid=system/admin segment_id=0.1.89976
 
DBVERIFY: Release 11.1.0.7.0 - Production on 星期三 12月 16 00:19:02 2009
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
DBVERIFY - 开始验证: SEGMENT_ID = 0.1.89976
DBVERIFY - 验证完成
 
检查的页总数: 9
处理的页总数 (数据): 0
失败的页总数 (数据): 0
处理的页总数 (索引): 0
失败的页总数 (索引): 0
处理的页总数 (其它): 9
处理的总页数 (段)  : 0
失败的总页数 (段)  : 0
空的页总数: 0
标记为损坏的总页数: 0
流入的页总数: 0
加密的总页数        : 0
最高块 SCN            : 912858 (0.912858)
 
注:这种方式要求数据库处于打开的状态。
 
4. 验证数据拷贝
由于dbv可以在实例关闭情况下验证数据文件,因此dbv也可以验证数据文件的拷贝。这个拷贝指的是通过RMAN的COPY命令或者操作系统命令cp拷贝的数据文件,而不是RMAN生成的备份集格式。

--------------------------------------------------------------------------------
U:Y0E:\app\Administrator\oradata\orcl>dbv file= USERS01bak.DBF blocksize=8192
DBVERIFY: Release 11.1.0.7.0 - Production on 星期三 12月 16 00:30:17 2009
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
DBVERIFY - 开始验证: FILE = E:\app\Administrator\oradata\orcl/USERS01bak.DBF
DBVERIFY - 验证完成
检查的页总数: 640
处理的页总数 (数据): 91
失败的页总数 (数据): 0
处理的页总数 (索引): 33
失败的页总数 (索引): 0
处理的页总数 (其它): 496
处理的总页数 (段)  : 0
失败的总页数 (段)  : 0
空的页总数: 20
标记为损坏的总页数: 0
流入的页总数: 0
加密的总页数        : 0
最高块 SCN            : 904088 (0.904088)
 
 
一些注意事项:
1. 对于DBVERIFY工具,高版本可以自动识别低版本数据库,比如11g的dbv访问9i的数据库,但是低版本的dbv访问高版本会报如下之类的错误:
DBVERIFY -验证正在开始: FILE = e:\oracle\oradata\Dave\test01.dbf

汇入的页1 -可能是介质损坏
 
2. 查看数据坏块所在数据文件号及块号可以对表进行一次全表扫描,如:
select count(*) from tablename;
 
如果有坏块, 在扫描的时候就会报错
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9399028/viewspace-684122/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
鱼儿的学习空间

注册时间:2010-11-16

  • 博文量
    433
  • 访问量
    1863720