oracle的dbv命令,Oracle的DBV命令行工具用法详解
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命令行工具用法详解相关推荐
- oracle中dual最多存多大_ORACLE中dual用法详解
基本上oracle引入dual为的就是符合语法 1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词.dual名词意思是对数,做形容词时是指二重的,二元的. 2. Oracle中的dual表 ...
- Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解
Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...
- linux 内存 参数,linux free命令参数及用法详解(linux查看内存命令)
linux free命令参数及用法详解(linux查看内存命令) 2019年05月31日 | 萬仟网科技 | 我要评论 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段 ...
- Oracle中游标Cursor基本用法详解
这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...
- linux 的中断 命令,linux skill命令参数及用法详解(linux中断进程执行命令)
linux skill命令参数及用法详解(linux中断进程执行命令) 发布时间:2012-07-21 12:09:37 作者:佚名 我要评论 linux 冻结进程命令 skill 使用详解 ...
- Oracle之外键(Foreign Key)用法详解(一)
Oracle外键(Foreign Key)用法详解(一) 1.目标 演示如何在Oracle数据库中使用外键 2.什么是外键? 1)在Oracle数据库中,外键是用来实现参照完整性的方法之一.打个形象的 ...
- Python必备基本技能——命令行参数args详解
Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...
- 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解
[linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...
- oracle中的exists 和 not exists 用法详解
from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...
- 【转】Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
最新文章
- Qt5.9 OpenCV3.2.0测试例程(Win10)
- memcache的介绍与应用场景
- Ethernet/IP 学习笔记二
- Python之schedule:schedule库的简介、安装、使用方法之详细攻略
- 戏说 Windows GDI (1)
- sklearn自学指南(part17)--稳健回归-异常值和建模误差
- gdbstub中的基本命令_GDB常用命令使用说明(一)
- JavaScript 第四课 案例研究:JavaScript图片库
- 计算机相关专业的自我评价,计算机相关专业的学生自我评价
- nginx-一个端口代理多个服务
- WebRTC学习资料大全
- CLion安装 + MinGW 配置 + Opencv安装
- 20172301 2017-2018-2 《程序设计与数据结构》第八周学习总结
- Eclipse 使用SVN时出现错误:The working copy needs to be upgraded svn
- 程序员常用远程工具有哪些?
- 基于SVM的车牌识别
- MCNP 学习笔记之空气比释动能(F4 F5 计数卡)
- 真相:为什么投简历总是没回音?
- 初始化echarts实例
- python模块和包_(三)运用Python模块和包
热门文章
- VARCHART XGantt教程之功能介绍
- awk , 统计secure.log中 每个破解你密码的ip的出现次数|access.log 中 每个ip地址出现的次数...
- 少数者博弈 matlab,复杂网络中的少数者博弈研究
- 百度手机输入法 android ctrl,百度手机输入法旧版本
- 业务系统监控解决方案
- 《duilib入门到精通》- duilib下载与编译(duilib视频教程)
- 2018:视频标准混战的元年序幕
- Windows Server 2019 Datacenter x64 安装 SHARP AR-2048N 打印机驱动
- 给定一个净值序列,计算年化收益、最大回撤、夏普比率
- Handler机制原理----全解