oracle工具:DBV的用法

来源:互联网 发布:如何提高个人魅力 知乎 编辑:程序博客网 时间:2024/06/01 13:52
  oracle工具:DBV的用法
    
    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.
    
    2 命令
    
    [sql]
    
    C:\Users\Administrator>dbv
    
    DBVERIFY: Release 10.2.0.1.0 - Production on 星期四 9月 20 01:24:37 2012
    
    Copyright (c) 1982, 2005, 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)
    
    注释:
    
    ① 如果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 案例
    
    案例(一)
    
    [sql]
    
    C:\Users\Administrator>dbv file=d:\oracle\product\10.2.0\oradata\ORCL\DATAFILE\O1_MF_USERS_7TQZTYTO_.DBF
    
    DBVERIFY: Release 10.2.0.1.0 - Production on 星期四 9月 20 01:04:07 2012
    
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    
    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工具还有一种在数据库打开的情况下使用的,验证指定段的使用情况
    
    [sql]
    
    01:18:15 sys@ORCL (^ω^) SELECT TABLESPACE_ID, HEADER_FILE, HEADER_BLOCK
    
    01:19:27 2 FROM SYS_DBA_SEGS
    
    01:19:27 3 WHERE SEGMENT_NAME = 'S_EMP'
    
    01:19:29 4 /
    
    TABLESPACE_ID HEADER_FILE HEADER_BLOCK
    
    ------------- ----------- ------------
    
    4 4 603
    
    C:\Users\Administrator>DBV userid=hr/hr segment_id=4.4.603
    
    DBVERIFY: Release 10.2.0.1.0 - Production on 星期四 9月 20 01:22:04 2012
    
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    
    DBVERIFY - 开始验证: SEGMENT_ID = 4.4.603
    
    DBVERIFY - 验证完成
    
    检查的页总数: 8
    
    处理的页总数 (数据): 5
    
    失败的页总数 (数据): 0
    
    处理的页总数 (索引): 0
    
    失败的页总数 (索引): 0
    
    处理的页总数 (其它): 2
    
    处理的总页数 (段) : 1
    
    失败的总页数 (段) : 0
    
    空的页总数: 0
    
    标记为损坏的总页数: 0
    
    流入的页总数: 0
    
    最高块 SCN : 4689412 (0.4689412)
0 0
原创粉丝点击