1 / 4
文档名称:

使用Oracle BMR(块介质恢复)功能快速恢复数据.doc

格式:doc   大小:33KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

使用Oracle BMR(块介质恢复)功能快速恢复数据.doc

上传人:tmm958758 2019/6/9 文件大小:33 KB

下载得到文件列表

使用Oracle BMR(块介质恢复)功能快速恢复数据.doc

相关文档

文档介绍

文档介绍:Oracle提供了许多方法检测和修补数据库中的数据坏块,而BMR就是其中之一,其它方法还包括Analyze语句、dbv命令以及DBMS_REPAIR等。DBMS_REPAIR包仅仅对transaction层和data层的坏块(即逻辑损坏的块)起作用,对物理上损坏的块,在它被读到缓冲区中时就已被标识出来了,而DBMS_REPAIR会忽略所有被标识为坏了的块。要快速修复物理损坏的数据块,可以通过BMR功能来完成。块介质恢复的最大好处在于可以降低平均恢复时间(MTTR),因为介质恢复的最小可恢复单位从数据文件缩小到块。如果已知数据库中只有少量的块需要介质恢复,则最有效的方式是有选择地进行还原,只恢复需要恢复的块。而且该技术提高了介质恢复期间的数据可用性,因为在数据恢复期间,数据文件可以保持联机状态,只有正在恢复的数据块是不可访问的。使用BMR之前,需要对保护的数据进行备份。在执行BMR时,只需要简单地执行blockrecover命令就可以了,例如编号为4的数据文件的数据块385发生了损坏,修复时可以如下:RMAN>BLOCKRECOVERDATAFILE4BLOCK385;下面通过一个实例来讨论BMR的使用。一、建立测试环境首先建立一个测试用的表T1,T1的结构如下:SQL>desct1NameNull?Type--------------------------------------------------------------------------------COL1NUMBERCOL2CHAR(1000)将COL2的数据类型设置为CHAR(1000)只是为了让每个行记录占用的空间更多,这样我们可以使用较少的记录填充多个数据块。为该测试表填入一部分测试数据:SQL>insertintot1selectrownum,rownumfromdualconnectbyrownum<=20;上述语句使用了层次查询语句。这样我们就填入了20条记录到测试表中,内容查询如下:SQL>selectcol1,substr(col2,1,2)fromt1;COL1SUBSTR----------------1 1223 34 45 56677 … …20 ,获取t1表所在的文件号和块号SQL>selectfile_id,block_id,extent_id,blocksfromdba_extentswheresegment_name='T1';FILE_IDBLOCK_IDEXTENT_IDBLOCKS---------- ---------- ---------- ----------438508然后利用这个file_id找到对应的数据文件名:SQL>selectfile_namefromdba_data_fileswherefile_id=4;FILE_NAME------------------------------------------------------------------------------------------------------------------------/u01/app/oracle/oradata/orcl/