DG7物理DataGuard下Failover时Redo的处理问题.docVIP

DG7物理DataGuard下Failover时Redo的处理问题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DG7物理DataGuard下Failover时Redo的处理问题

和老大讨论了一下Oracle Data Guard?下redo?的问题。?在Data Guard?环境下,归档文件是可以在备库应用的。?假如主库直接crash后,无法登陆,这时在将备库切换为主库的时候,如何处理主库的redo?就是关键。?因为这里的数据就是可能丢失的数据。 ? 所以做了一个实验验证,验证redo?的处理。即将主库的redo?直接copy到备库,然后通过recover?来应用redo,等应用结束之后,在启动备库。这样就不会造成数据丢失。 ? 当然,如果在Data Guard?中采用Maximum Protection?模式的化,也不会造成数据丢失,但是这种对主库的影响较大。?模式这块参考blog: ? Oracle Data Guard?理论知识 /tianlesoftware/archive/2010/04/22/5514082.aspx ? 一.?先看archive gap?的情况: 当Primary Database的某些日志没有成功发送到Standby Database,?这时候发生了归档裂缝(Archive Gap)。缺失的这些日志就是裂缝(Gap)。?Data Guard能够自动检测,解决归档裂缝,不需要DBA的介入。这需要配置FAL_CLIENT,?FAL_SERVER?这两个参数(FAL: Fetch Archive Log)。从FAL?这个名字可以看出,这个过程是Standby Database主动发起的“取”日志的过程,Standby Database?就是FAL_CLIENT.?它是从FAL_SERVER中取这些Gap,?10g中,这个FAL_SERVER可以是Primary Database,?也可以是其他的Standby Database。?如:FAL_SERVER=PR1,ST1,ST2; ? FAL_CLIENT和FAL_SERVER两个参数都是Oracle Net Name。?FAL_CLIENT?通过网络向FAL_SERVER发送请求,FAL_SERVER通过网络向FAL_CLIENT发送缺失的日志。?但是这两个连接不一定是一个连接。?因此FAL_CLIENT向FAL_SERVER发送请求时,会携带FAL_CLIENT参数值,用来告诉FAL_SERVER应该向哪里发送缺少的日志。?这个参数值也是一个Oracle Net Name,这个Name是在FAL_SERVER上定义的,用来指向FAL_CLIENT. ? ? 除了自动地日志缺失解决,DBA?也可以手工解决。?具体操作步骤如下: ? 1)?查看是否有日志GAP: ????SQL?SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;  ?SQL?SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP; 2)?如果有,则拷贝过来 3)?手工的注册这些日志: SQL?ALTER DATABASE REGISTER LOGFILE 路径; ? ? 二.?Redo?文件 ???????一般情况下,都是redo?文件满了之后才会进行归档,在Data Guard?环境下,是通过这些归档文件来同步数据。?现在假如我们刚归档完一次。?这时进行了一些事务的提交操作。?主库恰好在这个时候crach掉了。?而且无法登陆。?如果我们仅靠归档来进行Failover。?肯定是会有数据丢失的。 ? ???????我们可以在Failover?之前将主库的redo copy过来,在apply一下。?下面的实验就是来验证这个问题。?关于Data Guard?环境下的switchover?和Failover?知识,参考我的Blog: ???????Oracle Data Guard Linux?平台?Physical Standby?搭建实例 /tianlesoftware/archive/2010/04/30/5547565.aspx 这篇blog?的最后部分有这两种切换的说明。 ? ? 2.1?现在主库进行相关操作: ? SQL?select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- ????????????13 SQL?alter system switch logfile; System altered. SQL?select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- ???????

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档