Oracle的DBV命令行工具用法详解

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=。可以在v$datafile视图中用bytes字段除以块大小来获得END值。参数

含义

缺省值

FILE

要检查的数据文件名

没有缺省值

START

检查起始数据块号

数据文件的第一个数据块

END

检查的最后一个数据块号

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

BLOCKSIZE

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

缺省值8192

LOGFILE

检查结果日志文件

没有缺省值

FEEDBAK

显示进度

0

PARFILE

参数文件名

没有缺省值

USERID

用户名、密码

没有缺省值

SEGMENT_ID

段ID,参数格式

没有缺省值

使用示例:[oracle@rhel6 ~]$ dbvfile=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 16:42:26 2017Copyright (c) 1982, 2009, Oracle and/orits affiliates.  All rights reserved.DBVERIFY - Verification starting : FILE =/u01/app/oracle/oradata/test/users01.dbfDBVERIFY - Verification completeTotal Pages Examined         : 155520Total Pages Processed (Data) : 144530Total Pages Failing   (Data) : 0Total Pages Processed (Index): 52Total Pages Failing   (Index): 0Total Pages Processed (Other): 1248Total Pages Processed (Seg)  : 0Total Pages Failing   (Seg)  : 0Total Pages Empty            : 9690Total Pages Marked Corrupt   : 0Total Pages Influx           : 0Total Pages Encrypted        : 0Highest block SCN            : 3559792 (0.3559792)

这个工具报告使用的是page作为单位,含义和data block相同。从上面的检查结果Total Pages Marked Corrupt   : 0可以看出文件没有坏块。

除了检查数据文件,这个工具还允许检查单独的Segment,这时参数值的格式为

查看对象的tsn,segfile,segblock属性:zx@TEST>selectt.ts#,s.header_file,s.header_block2fromv$tablespace t,dba_segments s3wheres.segment_name='T'4andt.name=s.tablespace_name;TS# HEADER_FILE HEADER_BLOCK---------- ----------- ------------4           4        45834

从上面的查询结果可行参数值为4.4.45834。检查Segment:[oracle@rhel6 ~]$ dbv userid=system/123456segment_id=4.4.45834DBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 20:58:33 2017Copyright (c) 1982, 2009, Oracle and/orits affiliates.  All rights reserved.DBVERIFY - Verification starting : SEGMENT_ID = 4.4.45834DBVERIFY - Verification completeTotal Pages Examined         : 8Total Pages Processed (Data) : 5Total Pages Failing   (Data) : 0Total Pages Processed (Index): 0Total Pages Failing   (Index): 0Total Pages Processed (Other): 2Total Pages Processed (Seg)  : 1Total Pages Failing   (Seg)  : 0Total Pages Empty            : 0Total Pages Marked Corrupt   : 0Total Pages Influx           : 0Total Pages Encrypted        : 0Highest block SCN            : 3518579 (0.3518579)

下面人为创造一个坏块,用dbv来检查。

创建一个测试表zx@TEST>createtablebbed (id number,namevarchar2(20)) tablespace users;Tablecreated.zx@TEST>insertintobbedvalues(1,'zhaoxu');1 row created.zx@TEST>commit;Commitcomplete.

当前数据文件没有坏块[oracle@rhel6 ~]$ dbvfile=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 21:03:40 2017Copyright (c) 1982, 2009, Oracle and/orits affiliates.  All rights reserved.DBVERIFY - Verification starting : FILE =/u01/app/oracle/oradata/test/users01.dbfDBVERIFY - Verification completeTotal Pages Examined         : 155520Total Pages Processed (Data) : 66397Total Pages Failing   (Data) : 0Total Pages Processed (Index): 52Total Pages Failing   (Index): 0Total Pages Processed (Other): 88898Total Pages Processed (Seg)  : 0Total Pages Failing   (Seg)  : 0Total Pages Empty            : 173Total Pages Marked Corrupt   : 0Total Pages Influx           : 0Total Pages Encrypted        : 0Highest block SCN            : 3764775 (0.3764775)

获取表在文件中的存储信息zx@TEST>setserveroutputonzx@TEST>declarerfno number;2  rtype number;3  ono number;4  blkno number;5  rowno number;6  rid varchar2(30);7begin8selectrowidintoridfrombbed;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);11end;12  /4,45844,0PL/SQLproceduresuccessfully completed.

使用bbed修改块信息[oracle@rhel6 bbed]$ bbed parfile=bbed.parPassword:BBED: Release 2.0.0.0.0 - Limited Production on Mon May 22 21:17:18 2017Copyright (c) 1982, 2009, Oracle and/orits affiliates.  All rights reserved.************* !!! For Oracle Internal Use only !!! ***************BBED>setdba 4,45844DBA             0x0100b314 (16823060 4,45844)BBED>find/czhaoxuFile:/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/vdba 4,45844 offset 8182 count 32File:/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,45844Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) yFile:/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/vdba 4,45844 offset 8182 count 32File:/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]$ dbvfile=/u01/app/oracle/oradata/test/users01.dbfDBVERIFY: Release 11.2.0.1.0 - Production on Mon May 22 21:18:46 2017Copyright (c) 1982, 2009, Oracle and/orits affiliates.  All rights reserved.DBVERIFY - Verification starting : FILE =/u01/app/oracle/oradata/test/users01.dbfPage 45844 is marked corruptCorrupt block relative dba: 0x0100b314 (file4, block 45844)Bad check value found during dbv:Datainbad block:type: 6format: 2 rdba: 0x0100b314last change scn: 0x0000.00397358seq: 0x1 flg: 0x04spare1: 0x0 spare2: 0x0 spare3: 0x0consistency valueintail: 0x73580601check valueinblock header: 0x7c2dcomputed block checksum: 0x1eDBVERIFY - Verification completeTotal Pages Examined         : 155520Total Pages Processed (Data) : 66396Total Pages Failing   (Data) : 0Total Pages Processed (Index): 52Total Pages Failing   (Index): 0Total Pages Processed (Other): 88898Total Pages Processed (Seg)  : 0Total Pages Failing   (Seg)  : 0Total Pages Empty            : 173Total Pages Marked Corrupt   : 1Total Pages Influx           : 0Total Pages Encrypted        : 0Highest block SCN            : 3764775 (0.3764775)

报告一个坏块,Total Pages Marked Corrupt   : 1再次查询测试表:sys@TEST>select*fromzx.bbed;IDNAME---------- ------------------------------------------------------------1 zhaoxu

查询正常,因为在buffer_cache中缓存了块,而修改的是文件中的块。两个块现在不一致,清空buffer cache后再次查询测试表。zx@TEST>altersystem  flush buffer_cache;System altered.zx@TEST>select*frombbed;select*frombbed*ERRORatline 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/123456DBVERIFY: Release 11.2.0.4.0 - ProductiononMon May 22 16:48:22 2017Copyright (c) 1982, 2011, Oracleand/orits affiliates.Allrights reserved.DBVERIFY - Verification starting : FILE = +DATA/orcl/datafile/users.259.925306091DBVERIFY - Verification completeTotal Pages Examined         : 640Total Pages Processed (Data) : 16Total Pages Failing   (Data) : 0Total Pages Processed (Index): 2Total Pages Failing   (Index): 0Total Pages Processed (Other): 593Total Pages Processed (Seg)  : 0Total Pages Failing   (Seg)  : 0Total Pages Empty            : 29Total Pages Marked Corrupt   : 0Total Pages Influx           : 0Total Pages Encrypted        : 0Highest block SCN            : 0 (0.0)

来源: http://www.linuxidc.com/Linux/2017-05/144202.htm

oracle的dbv命令,Oracle的DBV命令行工具用法详解相关推荐

  1. oracle中dual最多存多大_ORACLE中dual用法详解

    基本上oracle引入dual为的就是符合语法 1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词.dual名词意思是对数,做形容词时是指二重的,二元的. 2. Oracle中的dual表 ...

  2. Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解

    Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...

  3. linux 内存 参数,linux free命令参数及用法详解(linux查看内存命令)

    linux free命令参数及用法详解(linux查看内存命令) 2019年05月31日 | 萬仟网科技 | 我要评论 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段 ...

  4. Oracle中游标Cursor基本用法详解

    这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...

  5. linux 的中断 命令,linux skill命令参数及用法详解(linux中断进程执行命令)

    linux skill命令参数及用法详解(linux中断进程执行命令) 发布时间:2012-07-21 12:09:37   作者:佚名   我要评论 linux 冻结进程命令 skill 使用详解 ...

  6. Oracle之外键(Foreign Key)用法详解(一)

    Oracle外键(Foreign Key)用法详解(一) 1.目标 演示如何在Oracle数据库中使用外键 2.什么是外键? 1)在Oracle数据库中,外键是用来实现参照完整性的方法之一.打个形象的 ...

  7. Python必备基本技能——命令行参数args详解

    Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...

  8. 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解

    [linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...

  9. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  10. 【转】Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

最新文章

  1. Qt5.9 OpenCV3.2.0测试例程(Win10)
  2. memcache的介绍与应用场景
  3. Ethernet/IP 学习笔记二
  4. Python之schedule:schedule库的简介、安装、使用方法之详细攻略
  5. 戏说 Windows GDI (1)
  6. sklearn自学指南(part17)--稳健回归-异常值和建模误差
  7. gdbstub中的基本命令_GDB常用命令使用说明(一)
  8. JavaScript 第四课 案例研究:JavaScript图片库
  9. 计算机相关专业的自我评价,计算机相关专业的学生自我评价
  10. nginx-一个端口代理多个服务
  11. WebRTC学习资料大全
  12. CLion安装 + MinGW 配置 + Opencv安装
  13. 20172301 2017-2018-2 《程序设计与数据结构》第八周学习总结
  14. Eclipse 使用SVN时出现错误:The working copy needs to be upgraded svn
  15. 程序员常用远程工具有哪些?
  16. 基于SVM的车牌识别
  17. MCNP 学习笔记之空气比释动能(F4 F5 计数卡)
  18. 真相:为什么投简历总是没回音?
  19. 初始化echarts实例
  20. python模块和包_(三)运用Python模块和包

热门文章

  1. VARCHART XGantt教程之功能介绍
  2. awk , 统计secure.log中 每个破解你密码的ip的出现次数|access.log 中 每个ip地址出现的次数...
  3. 少数者博弈 matlab,复杂网络中的少数者博弈研究
  4. 百度手机输入法 android ctrl,百度手机输入法旧版本
  5. 业务系统监控解决方案
  6. 《duilib入门到精通》- duilib下载与编译(duilib视频教程)
  7. 2018:视频标准混战的元年序幕
  8. Windows Server 2019 Datacenter x64 安装 SHARP AR-2048N 打印机驱动
  9. 给定一个净值序列,计算年化收益、最大回撤、夏普比率
  10. Handler机制原理----全解