您当前的位置: AG亚游集团 > 数据库教程 > DB2教程 > RMAN备份恢复之归档日志对BLOCKRECOVER的影响

RMAN备份恢复之归档日志对BLOCKRECOVER的影响

作者:guanchaofeng 来源:不详 发布时间: 2009-06-27 20:56 点击: 次
上面一篇简单的介绍了一下RMAN的BLOCKRECOVER的用法,这篇打算介绍一下缺失归档日志对BLOCKRECOVER的影响。 为了演示归档对BLOCKRECOVER的影响,先构造一个例子: RMANbackuptablespacetools; 启动backup于16-6月-07 使用通道ORA_DISK_1 通道ORA_DISK_1:正在

AG亚游集团,四是打造持续稳定的业务模式。以不良资产经营和第三方资产管理为核心构建“大资管”,以并购重组为核心构建“大投行”,以金融全牌照综合金融服务为核心构建“大协同”,通过发挥不良资产收购处置的技术优势、并购重组的品牌优势和金融平台的协同优势,全面加强资源共享,实现业务、技术、客户和网络等的有效整合。同时,不断创新业务模式和工具手段,力争为客户提供一揽子量身定制的个性化综合金融服务,为公司业务增长和科学发展提供稳定支撑。

  这份业绩报告表明,思科成功避免了今年3月份技术投入加大可能带来的利润冲击。而且公司方面表示,第三财季的订单数量达到两年来最高水平,而往常年份,第三财季对思科而言都是淡季。怎样白手起家赚钱据悉,丹尼尔原是一名软件工程师,现在是一名背包客。在一次电视采访中,他用“极其热烈”一词来形容他在内毕罗所受到的关注度,并详述了自己的家族历史,证明自己与圣母玛利亚没有任何血缘关系。他解释说,因为原来的生活压力太大,觉得自己不适合过“传统”的生活,所以选择环游世界。

RMAN备份恢复之归档日志对BLOCKRECOVER的影响

  上面一篇简单的介绍了一下RMAN的BLOCKRECOVER的用法,这篇打算介绍一下缺失归档日志对BLOCKRECOVER的影响。
  
  为了演示归档对BLOCKRECOVER的影响,先构造一个例子:
  
  RMAN>backuptablespacetools;
  
  启动backup于16-6月-07
  
  使用通道ORA_DISK_1
  
  通道ORA_DISK_1:正在启动full数据文件备份集
  
  通道ORA_DISK_1:正在指定备份集中的数据文件
  
  输入数据文件fno=00005name=F:ORACLEORADATATEST1TOOLS01.DBF
  
  通道ORA_DISK_1:正在启动段1于16-6月-07
  
  通道ORA_DISK_1:已完成段1于16-6月-07
  
  段handle=F:ORACLEORACLE920DATABASEHIKFE30_1_1comment=NONE
  
  通道ORA_DISK_1:备份集已完成,经过时间:00:00:03
  
  完成backup于16-6月-07
  
  首先备份一下表空间,这个表空间的备份用来作为BLOCKRECOVER的全备份基础。
  
  SQL>CREATETABLETESTTABLESPACETOOLSASSELECTROWNUMID,A.*FROMDBA_OBJECTSA;
  
  表已创建。
  
  SQL>SELECTCOUNT(*)FROMTEST;
  
  COUNT(*)
  
  ----------
  
  28036
  
  SQL>SELECTROWIDFROMTESTWHEREID=1000;
  
  ROWID
  
  ------------------
  
  AAAHApAAFAAAAAbAA8
  
  SQL>SELECTIDFROMTEST
  
  2WHEREROWID>='AAAHApAAFAAAAAbAAA'
  
  3ANDROWID<'AAAHApAAFAAAAAcAAA';
  
  ID
  
  ----------
  
  940
  
  941
  
  942
  
  943
  
  944
  
  945
  
  946
  
  947
  
  .
  
  .
  
  .
  
  1004
  
  1005
  
  1006
  
  已选择67行。
  
  SQL>SELECTDISTINCTDBMS_ROWID.ROWID_RELATIVE_FNO(ROWID),
  
  2DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
  
  3FROMTEST
  
  4WHEREID>=940
  
  5ANDID<=1006;
  
  DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID)DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
  
  ------------------------------------------------------------------------
  
  527
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>SELECTMAX(SEQUENCE#)FROMV$ARCHIVED_LOG;
  
  MAX(SEQUENCE#)
  
  --------------
  
  321
  
  SQL>UPDATETESTSETOBJECT_NAME=LOWER(OBJECT_NAME)WHEREID=1000;
  
  已更新1行。
  
  SQL>COMMIT;
  
  提交完成。
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>DELETETESTWHEREID=1;
  
  已删除1行。
  
  SQL>COMMIT;
  
  提交完成。
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>UPDATETESTSETOBJECT_TYPE='TEST'WHEREID=10000;
  
  已更新1行。
  
  SQL>COMMIT;
  
  提交完成。
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>CREATETABLETEST2(IDNUMBER);
  
  表已创建。
  
  SQL>INSERTINTOTEST2VALUES(1);
  
  已创建1行。
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>ALTERSYSTEMSWITCHLOGFILE;
  
  系统已更改。
  
  SQL>SELECTNAMEFROMV$ARCHIVED_LOGWHERESEQUENCE#>321;
  
  NAME
  
  ------------------------------------------------------------
  
  F:ORACLEORADATATEST1ARCHIVELOGARC00322.001
  
  F:ORACLEORADATATEST1ARCHIVELOGARC00323.001
  
  F:ORACLEORADATATEST1ARCHIVELOGARC00324.001
  
  F:ORACLEORADATATEST1ARCHIVELOGARC00325.001
  
  F:ORACLEORADATATEST1ARCHIVELOGARC00326.001
  
  F:ORACLEORADATATEST1ARCHIVELOGARC00327.001
  
  F:ORACLEORADATATEST1ARCHIVELOGARC00328.001
  
  已选择7行。
  
  SQL>SELECTSEQUENCE#FROMV$LOG;
  
  SEQUENCE#
  
  ----------
  
  328
  
  329
  
  327
  
  首先建立一张测试表,在这个表中,ID在940和1006之间的记录存储在DATAFILE5BLOCK27中。在归档322中记录了TEST表的ID等于1000的记录的更新,这个更新发生在DATAFILE5BLOCK27上。随后在归档323中,删除了ID等于1的记录,这条记录与BLOCK27无关。在归档324中,更新了ID等于10000的记录,这个修改与BLOCK27也无关。在归档325中,新建TEST2表,并插入数据。归档326就是一个空文件。
  
  因此,除了归档322外,从323到325都与BLOCK27的修改无关。根据Oracle的文档,这些归档的缺失将不会影响BLOCK27的恢复。
  
  为了验证文档的说法,下面将归档322到326修改名称,使得Oracle在恢复时无法找到归档日志。
  
  最后执行的几次ALTERSYSTEMSWITCHLOGFILE操作,是确保SEQUENCE为326的联机重做日志已经被重用,避免Oracle利用联机重做日志来代替归档日志。
  
  准备工作完毕,下面开始模拟坏块。仍然是通过UtralEdit对数据文件进行修改,先是定位数据块的偏移地址:
  
  SQL>SHOWPARAMETERBLOCK_SIZE
  
  NAMETYPEVALUE
  
  -------------------------------------------------------------------------
  
  db_block_sizeinteger8192
  
  SQL>SELECTTO_CHAR(8192*27,'XXXXX')FROMDUAL;
  
  TO_CHA
  
  ------
  
  36000
  
  下面对地址36000后面的数据进行修改,并保存。
  
  执行SQL语句,可以看到下面的错误:
  
  SQL>SELECTCOUNT(*)FROMTEST;
  
  SELECTCOUNT(*)FROMTEST
  
  *
  
  ERROR位于第1行:
  
  ORA-01578:ORACLE数据块损坏(文件号5,块号27)
  
  ORA-01110:数据文件5:'F:ORACLEORADATATEST1TOOLS01.DBF'
  
  下面可以对损坏的数据块进行BLOCKRECOVER,注意这时归档322到326已经被修改名称。
  
  RMAN>blockrecoverdatafile5block27;
  
  启动blockrecover于17-6月-07
  
  正在使用目标数据库控制文件替代恢复目录
  
  分配的通道:ORA_DISK_1
  
  通道ORA_DISK_1:sid=14devtype=DISK
  
  通道ORA_DISK_1:正在恢复块
  
  通道ORA_DISK_1:正在指定要从备份集恢复的块
  
  正在恢复数据文件00005的块
  
  通道ORA_DISK_1:已从备份段1恢复块
  
  段handle=F:ORACLEORACLE920DATABASEHIKFE30_1_1tag=TAG20070617T020728params=NULL
  
  通道ORA_DISK_1:块恢复已完成
  
  正在开始介质的恢复
  
  存档日志线程1序列327已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00327.001存在于磁盘上
  
  存档日志线程1序列328已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00328.001存在于磁盘上
  
  存档日志线程1序列329已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00329.001存在于磁盘上
  
  RMAN-00571:===========================================================
  
  RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============
  
  RMAN-00571:===========================================================
  
  RMAN-03002:failureofblockrecovercommandat06/17/200702:33:18
  
  RMAN-06053:unabletoperformmediarecoverybecauseofmissinglog
  
  RMAN-06025:nobackupoflogthread1seq326scn58749837foundtorestore
  
  RMAN-06025:nobackupoflogthread1seq325scn58749812foundtorestore
  
  RMAN-06025:nobackupoflogthread1seq324scn58749793foundtorestore
  
  RMAN-06025:nobackupoflogthread1seq323scn58749778foundtorestore
  
  RMAN-06025:nobackupoflogthread1seq322scn58749749foundtorestore
  
  这个错误的出现是正常的,由于归档322中包含了对BLOCK27的修改,下面恢复归档322的原始名称,再次执行恢复:
  
  RMAN>blockrecoverdatafile5block27;
  
  启动blockrecover于17-6月-07
  
  使用通道ORA_DISK_1
  
  通道ORA_DISK_1:正在恢复块
  
  通道ORA_DISK_1:正在指定要从备份集恢复的块
  
  正在恢复数据文件00005的块
  
  通道ORA_DISK_1:已从备份段1恢复块
  
  段handle=F:ORACLEORACLE920DATABASEHIKFE30_1_1tag=TAG20070617T020728params=NULL
  
  通道ORA_DISK_1:块恢复已完成
  
  正在开始介质的恢复
  
  存档日志线程1序列327已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00327.001存在于磁盘上
  
  存档日志线程1序列328已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00328.001存在于磁盘上
  
  存档日志线程1序列329已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00329.001存在于磁盘上
  
  RMAN-00571:===========================================================
  
  RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============
  
  RMAN-00571:===========================================================
  
  RMAN-03002:failureofblockrecovercommandat06/17/200702:36:18
  
  RMAN-06053:unabletoperformmediarecoverybecauseofmissinglog
  
  RMAN-06025:nobackupoflogthread1seq326scn58749837foundtorestore
  
  RMAN-06025:nobackupoflogthread1seq325scn58749812foundtorestore
  
  RMAN-06025:nobackupoflogthread1seq324scn58749793foundtorestore
  
  RMAN-06025:nobackupoflogthread1seq323scn58749778foundtorestore
  
  仍然报错,这说明文档上描述的BLOCKRECOVER可以跨越无关的日志的说法是有问题的。
  
  下面依次恢复323、324的名称并测试发现仍然存在上面的问题。
  
  最后恢复325的名称,目前仅归档326不可见,而这个归档是一个空归档,看看BLOCKRECOVER是否可以跳过空归档进行恢复。
  
  RMAN>blockrecoverdatafile5block27;
  
  启动blockrecover于17-6月-07
  
  使用通道ORA_DISK_1
  
  通道ORA_DISK_1:正在恢复块
  
  通道ORA_DISK_1:正在指定要从备份集恢复的块
  
  正在恢复数据文件00005的块
  
  通道ORA_DISK_1:已从备份段1恢复块
  
  段handle=F:ORACLEORACLE920DATABASEHIKFE30_1_1tag=TAG20070617T020728param
  
  s=NULL
  
  通道ORA_DISK_1:块恢复已完成
  
  正在开始介质的恢复
  
  存档日志线程1序列327已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00327.001存在于磁盘上
  
  存档日志线程1序列328已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00328.001存在于磁盘上
  
  存档日志线程1序列329已作为文件F:ORACLEORADATATEST1ARCHIVELOGARC00329.001存在于磁盘上
  
  RMAN-00571:===========================================================
  
  RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============
  
  RMAN-00571:===========================================================
  
  RMAN-03002:failureofblockrecovercommandat06/17/200702:41:16
  
  RMAN-06053:unabletoperformmediarecoverybecauseofmissinglog
  
  RMAN-06025:nobackupoflogthread1seq326scn58749837foundtorestore
  
  错误依旧,RMAN连一个空的归档都无法跳过,看来这块的文档描述和实际情况有很大的出入。
  
  从这一点也反映出归档日志的重要性,如果丢失了归档日志,不管是常规恢复还是数据库的恢复都是无法进行的。

本文"RMAN备份恢复之归档日志对BLOCKRECOVER的影响"由远航站长收集整理而来,仅供大家学习与参考使用。更多AG亚游集团尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
AG亚游集团关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(AG亚游集团). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类AG亚游集团.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4
男子报警称高铁“超载” 官方:拒补票无理取闹 山西反腐传出大动静:被处分4人中有重要岗位领导 台籍政协委员:大陆很多地方生活水平已经超越台湾 英媒:阿森纳两将训练冲突 全队都想为温格赢冠军 1岁男童误喝“蚊香液”中毒 洗胃用掉24瓶小苏打 巴萨宣布玻璃人右大腿受伤 将缺席西甲最后一轮 伍兹遗憾未给子女奖杯:希望你们因努力的爸爸骄傲 日国税厅长官因森友学园问题辞职 安倍政府受打击 法国遇极寒天气 立法委员为帮流浪者决定夜宿街头 央视315辟谣食物相克:螃蟹与西红柿不能同吃?假的 连败!勇士主场惨淡收官 卫冕果然是最艰难的路 直击|吴德周:重心还在手机 锤子的创新与销量不匹配
技术解盘20180514 菜鸟瑜伽教练培训两个月就上岗 压断女学员大腿骨 中央气象台:南方迎新一轮降雨 东北等地有降雪 上市公司纷纷加入区块链概念 监管层严密盯防 科大讯飞式烦恼:围城渐成 合作还是对抗? 杭州降低网约车驾驶员准入门槛 可进入站点候客 四川省政府领导分工出炉:杨兴平负责教育文化等 男子偷拍数百名女性隐私部位 还将视频传上网(图) [新浪彩票]足彩18088期大势:卡拉巴赫主胜可期 耀才证券:关税计划成后市关键 港股上落市格局未变 新京报:自媒体既含“媒体”二字就别罔顾社会责任 土超季后赛4强出炉 瓦基弗和加拉塔萨雷争决赛
央视315曝电动车使用隐患:充电最好不要在夜间 新浪彩票名家大乐透第18039期推荐汇总 中纪委机关报:形式主义或已成推脱责任的应对之策 恒大丢两冠也并非坏事 是时候考虑4大外援换谁了 花旗称对俄罗斯债券的制裁将可能将使卢布贬值15% 时来运转!女子受病逝兄弟托梦中4千万彩票大奖 贾跃亭成功融资15亿美元?企业家如何重建信用 “拿不住”的比特币玩家:“币圈一天,人间一年” 美国:俄罗斯应为前“双面间谍”中毒一事负责 手机直接赚现金 笨蛋也能年赚100万 现在开什么店最挣钱 夏天什么产品最好卖 AG亚游集团