转载自:http://blog.csdn.net/robinson_0612/article/details/6530890
--**********************
-- DBVERIFY工具的使用
--**********************
Oracle数据库运行过程中由于硬件故障或操作系统故障导致导致Oracle无法以Oracle格式来识别或所包含的内容即为出现数据块损坏
故障,这个坏块可以分为介质损坏以及逻辑损坏。下面给出了块的检查,以及使用DBVERIFY工具实施块检查。
一、块检查
1.何时检查块
当一个数据块被读或写的时候,将对块的进行一致性检查,检查的内容包括
块的版本
比较块在cache与block buffer中的数据块地址
根据要求进行校验(checksum)
2.损坏的数据块的错误提示
可以从告警日志文件中找到该错误提示,以及在会话中发现损坏的数据块时也会给出类似的提示
ORA-01578: ORACLEdatablockcorrupted
(file#6,block#11)
ORA-01110:datafile6:'/u01/app/oracle/oradata/orcl/tbs01.dbf'
3.与块损坏的相关特性(几种检查工具)
------------------------------------------------------------------------------------------------
特性坏块侦测类型能否修复损坏块
------------------------------------------------------------------------------------------------
DBVERIFY物理否
ANALYZE逻辑否
DB_BLOCK_CHECKING逻辑否
DB_BLOCK_CHECKSUM物理否
exp物理否
FlashBack逻辑是
DBMS_REPAIR逻辑是
Blockmediarecovery未知是
二、DBVERIFY工具介绍
特性
是一个运行于操作系统提示符下的外部程序,用于验证数据文件,检查块的一致性错误
仅仅针对数据文件,能够校验open阶段的数据文件以及shutdown状态下的数据文件
可以验证复制的数据文件,也可以验证备份的镜像副本
不支持联机日志文件,控制文件,归档日志,RMAN备份集验证
被验证的文件可以位于文件系统,ASM磁盘或原始设备
在Unix系统中位于:$ORACLE_HOME/bin/dbv
在Windows系统中位于:%ORACLE_HOME%/bin/dbv.exe
对于DBVERIFY工具,高版本可以自动识别低版本数据库,比如11g的dbv访问9i的数据库,但是低版本的dbv访问高版本会报错
三、DBVERIFY工具用法
1.获取dbv的帮助信息,直接在提示符下输入dbv即可或者输入dbv
help=y
[oracle@oradb orcl]$ dbv
DBVERIFY: Release10.2.0.4.0 - ProductiononTue Oct2618:21:092010
Copyright (c)1982,2007, Oracle.Allrights
reserved.
KeywordDescription(Default)
----------------------------------------------------
FILEFiletoVerify(NONE)
STARTStartBlock(FirstBlockofFile)
ENDEndBlock(LastBlockofFile)
BLOCKSIZELogicalBlockSize(8192)--指定数据文件的尺寸,缺省值为8192,对于非8192块将收到DBV-00103错误
LOGFILEOutputLog(NONE)--用于显示验证进度
FEEDBACKDisplay Progress(0)
PARFILEParameterFile(NONE)--可以指定参数文件
USERIDUsername/Password(NONE)--校验段、ASM文件需要使用
SEGMENT_IDSegmentID(tsn.relfile.block) (NONE)--校验段,需要表空间ID,数据文件ID,段的头部ID
HIGH_SCNHighestBlockSCNToVerify(NONE)
(scn_wrap.scn_baseORscn)
2.校验online,offline数据文件,使用下面的方法
dbvfile=<dir>
[oracle@oradb orcl]$ dbvfile=$ORACLE_BASE/oradata/orcl/tbs01.dbf
DBVERIFY: Release10.2.0.4.0 - ProductiononTue Oct2618:29:392010
Copyright (c)1982,2007, Oracle.Allrights
reserved.
DBVERIFY - Verification starting :FILE= /u01/app/oracle/oradata/orcl/tbs01.dbf
DBVERIFY - Verificationcomplete
Total Pages Examined:128--校验的总页面数,一个页面即是一个数据块
Total Pages Processed (Data) :96--已处理的数据页面数
Total Pages Failing(Data) :0--已处理数据页面的失败数
Total Pages Processed (Index):1--已处理的索引页面数
Total Pages Failing(Index):0--已处理索引页面失败数
Total Pages Processed (Other):31--已处理的其它页面数
Total Pages Processed (Seg):0
Total Pages Failing(Seg):0
Total PagesEmpty:0
Total Pages MarkedCorrupt:0
Total Pages Influx:0
HighestblockSCN:1152518(0.1152518)
注意:如果Total Pages Influx的值大于零,且未存在坏块的情况下,是由于针对open状态的文件运行dbv
程序遇到了一个当前正在被DBWn进程写入的数据块
[oracle@oradb orcl]$ dbvfile=$ORACLE_BASE/oradata/orcl/tbs01.dbf feedback=1000
上面这句在执行时每验证1000个块将显示一个"."号
--下面的校验发现了I/O错误
[oracle@oradb orcl]$ dbvfile=/u01/app/oracle/oradata/orcl/tbs01.dbf
DBVERIFY: Release10.2.0.4.0 - ProductiononTue Oct2618:26:212010
Copyright (c)1982,2007, Oracle.Allrights
reserved.
DBV-00102:FileI/OerroronFILE(/u01/app/oracle/oradata/orcl/tbs01.dbf)
duringendreadoperation (-1)
3.验证指定段
该方法需要获得段所在表空间的ID,段所在数据文件的ID,段的头部ID
如下面的查询表空间的ID为7,文件ID为6,段的头部ID为35
sys@ORCL>selecttablespace_id,tablespace_name,header_file,header_block
2fromsys_dba_segs
3wheresegment_name='TB3';
TABLESPACE_ID TABLESPACE_NAME HEADER_FILE HEADER_BLOCK
------------- --------------- ----------- ------------
7TBS1635
注意:sys用户的段可以查询sys_user_segs,而普通用户的段信息,需要查询sys_dba_segs
[oracle@oradb orcl]$ dbv userid=scott/tiger segment_id=7.6.35
DBVERIFY: Release10.2.0.4.0 - ProductiononTue Oct2618:50:012010
Copyright (c)1982,2007, Oracle.Allrights
reserved.
DBVERIFY - Verification starting : SEGMENT_ID =7.6.35
DBVERIFY - Verificationcomplete
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 PagesEmpty:0
Total Pages MarkedCorrupt:0
Total Pages Influx:0
HighestblockSCN:1152518(0.1152518)
4.验证复制的数据文件或验证备份的镜像副本
RMAN>backupascopydatafile6--使用RMAN备份镜像副本
2> format='/u01/app/oracle/bk/rmbk/cp_dfile6'
3> tag='Copy_datafile6';
[oracle@oradb orcl]$ dbvfile=/u01/app/oracle/bk/rmbk/cp_dfile6
DBVERIFY: Release10.2.0.4.0 - ProductiononTue Oct2618:59:172010
Copyright (c)1982,2007, Oracle.Allrights
reserved.
DBVERIFY - Verification starting :FILE= /u01/app/oracle/bk/rmbk/cp_dfile6
DBVERIFY - Verificationcomplete
Total Pages Examined:128
Total Pages Processed (Data) :96
Total Pages Failing(Data) :0
Total Pages Processed (Index):1
Total Pages Failing(Index):0
Total Pages Processed (Other):31
Total Pages Processed (Seg):0
Total Pages Failing(Seg):0
Total PagesEmpty:0
Total Pages MarkedCorrupt:0
Total Pages Influx:0
HighestblockSCN:1152518(0.1152518)
RMAN命令中的BACKUPVALIDATEDATABASE命令通常用于检查全库,该命令不产生任何备份集,可以通过
Validate命令来检查是否能备份,如数据文件是否存在,是否存在坏块不能被备份,查询视图
v$database_block_corruption,此视图将检查过程中存在的坏块
如使用下面的查询
RMAN>backupvalidatedatabase;
RMAN>backupvalidatedatabasearchivelogall;
sys@ORCL>select*fromv$database_block_corruption;
norowsselected
视图v$database_block_corruption将列出损坏的坏块所在的文件位置,损坏块的起始位置,损坏快的大
小以及损坏类型如果上述视图中发现了坏块,则可以通过SQL查询获得坏块所影响的范围,以及确定坏块
所影响的是索引段还是UNDO段
selectowner,segment_name,segment_typefromdba_extentswherefile_id=<F>and<B>
betweenblock_idandblock_id+blocks-1;
(<F>和<B>分别是ORA-01578报出的坏块出现的文件号和块号)
下面使用rman来修复受损的数据块
RMAN> run{
2>allocatechannel ch1 devicetypedisk;
3> blockrecoverdatafile6block37;
4> release channel ch1;}
released channel: ORA_DISK_1
allocated channel: ch1
channel ch1:sid=139devtype=DISK
Starting blockrecoverat26-OCT-10
starting mediarecovery
mediarecoverycomplete, elapsedtime:00:00:00
Finished blockrecoverat26-OCT-10
released channel: ch1
flasher@ORCL>altertabletb3addconstraintempno_tb3_pk
2primarykey(empno);
四、其它
1.事实上使用dbv工具可以对控制文件进行验证(数据库处于OPEN状态),参见下面的例子
[oracle10g:oracle:orcl]$ dbvfile=control01.ctl
DBVERIFY: Release10.2.0.4.0 - ProductiononSun Jun514:56:312011
Copyright (c)1982,2007, Oracle.Allrights
reserved.
DBV-00103: SpecifiedBLOCKSIZE(8192)
differsfromactual (16384)--根据提示知道blocksize的值为16384
[oracle@oradb orcl]$ dbvfile=control01.ctlblocksize=16384
DBVERIFY: Release10.2.0.4.0 - ProductiononSun Jun514:53:012011
Copyright (c)1982,2007, Oracle.Allrights
reserved.
DBVERIFY - Verification starting :FILE= control01.ctl
DBVERIFY - Verificationcomplete
Total Pages Examined:404
Total Pages Processed (Data) :0
Total Pages Failing(Data) :0
Total Pages Processed (Index):0
Total Pages Failing(Index):0
Total Pages Processed (Other):40
Total Pages Processed (Seg):0
Total Pages Failing(Seg):0
Total PagesEmpty:364
Total Pages MarkedCorrupt:0
Total Pages Influx:0
HighestblockSCN:775(65535.775)
2.对联机日志文件的验证(数据库处于OPEN状态),不支持
[oracle10g:oracle:orcl]$ dbvfile=redo01.log
DBVERIFY: Release10.2.0.4.0 - ProductiononSun Jun515:01:092011
Copyright (c)1982,2007, Oracle.Allrights
reserved.
DBV-00103: SpecifiedBLOCKSIZE(8192)
differsfromactual (512)
[oracle10g:oracle:orcl]$ dbvfile=redo01.logblocksize=512--可以执行,但出现下面很多的提示(介质错误)
Page88441isinflux - most likely mediacorrupt
Corruptblockrelativedba:0x00015979
(file0,block88441)
Fracturedblockfoundduring dbv:
Datainbadblock:
type:1format:2rdba:0x00015979
lastchangescn:0x8010.00000010
seq:0x51 flg:0x55
spare1:0x0 spare2:0x0 spare3:0x0
consistencyvalueintail:0xc2037800
checkvalueinblockheader:0x108
computedblockchecksum:0x0
分享到:
相关推荐
浅谈Oracle数据库DBVERIFY工具的使用方法.pdf
将快速恢复区与 RMAN 配合使用 2-14 使用 EM 监视快速恢复区 2-16 快速恢复区的空间使用 2-17 V$FLASH_RECOVERY_AREA_USAGE 2-18 备份快速恢复区 2-20 使用快速恢复区的优点 2-21 设置影响 RMAN 的参数 2-22 ...
将快速恢复区与 RMAN 配合使用 2-14 使用 EM 监视快速恢复区 2-16 快速恢复区的空间使用 2-17 V$FLASH_RECOVERY_AREA_USAGE 2-18 备份快速恢复区 2-20 使用快速恢复区的优点 2-21 设置影响 RMAN 的参数 2-22 ...
21 DBVERIFY Messages (DBV) 22 DBNEWID Messages (NID) 23 Parameter Messages (LCD) 24 Summary Advisor, Explain Rewrite, and Explain Materialized View Messages (QSM) 25 Recovery Manager Messages (RMAN) ...
需手动输入坐标,实现ECEF空间直角坐标系等四种坐标之间相互转换。 具体代码流程可见主页文章。 通过下拉框,自由选择输入输出坐标系后,在左侧文本框手动输入一组或多组坐标,可以实现ECEF空间直角坐标系,ECEF球面坐标系,ECEF椭球坐标系(大地坐标系),站心坐标系四个坐标系统之间的自由转换,共12种转换方式。然后将转换后的坐标结果输入到右边文本框。 适用于GNSS相关课程的编程作业,测绘、地信等专业实践。 ------------------------------------------------------------------------------------------------------------------------- 该代码可能存在部分不足与漏洞。实际运行时没有发生过错误。
基于matlab实现直角坐标系下的牛顿拉夫逊潮流计算MATLAB程序.rar
基于matlab实现麦克风阵列SRP-PHAT算法的二级空间快速声源定位,含模拟环境。.rar
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
dephi+sqlserver2000题库与试卷生成系统.zip
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
ASP+ACCESS网页设计辅导系统(源代码+设计说明书).zip
中考实验视频.zip
基于VB+access实现的学生成绩管理系统(开题报告+答辩PPT+论文+系统) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
基于matlab实现模拟退火程序。f(x,y) = 5sin(xy) + x^2 + y^2的最小值,对理解模拟退火算法是一个很好的程序示例.rar
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
ASP+access网上人才信息管理系统毕业设计(源代码+设计说明书).zip
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
污水处理计算书
ASP+ACCESS文学网站建设设计(源代码+设计说明书+系统).zip