新人初学,项目上遇到了一些障碍,希望熟悉DG的朋友帮忙回答一下数据库 ORACLE 9I用DG之作备份及灾难恢复的作用。一台PRIMARY 一台STANDBY。做物理STANDBY ,保护模式为 MAXIMUM PROTECTION  当STANDBY服务器倒下了,但是又没有办法短时间内解决问题。PRIMARY服务器应该做哪些工作来保证业务正常运行?
  
  我现在的方式是将PRIMARY服务器切换保护模式成MAXIMUM PERFORMANCE模式,虽然数据库可以正常使用了,但是STANDBY
  服务器恢复了之后,日志与PRIMARY服务器不同步了,这种状况下是不是只能重做物理STANDBY?

解决方案 »

  1.   

    》 当STANDBY服务器倒下了,但是又没有办法短时间内解决问题。PRIMARY服务器应该做哪些工作来保证业务正常运行? MAXIMUM PROTECTION模式,由于备机挂了,主机日志传不过去,所以主机也会同时挂掉》我现在的方式是将PRIMARY服务器切换保护模式成MAXIMUM PERFORMANCE模式,虽然数据库可以正常使用了,但是STANDBY
      服务器恢复了之后,日志与PRIMARY服务器不同步了,这种状况下是不是只能重做物理STANDBY?不需要重做,ORACLE会把其间未传到STANDBY的日志都传过去,如果还有日志GAP,自已手动同步一下日志即可
      

  2.   

    》 当STANDBY服务器倒下了,但是又没有办法短时间内解决问题。PRIMARY服务器应该做哪些工作来保证业务正常运行?这个问题没有得到我想要的答案,我假设 STANDBY被损坏,但是业务必须正常进行。PRIMARY自动SHUTDOWN之后,正常的解决思路应该如何调整来恢复PRIMARY的运行?我是新人,不知道是不是还有更好的办法处理这件事情。
    第2个问题,我发现当STANDBY恢复使用之后,PRIMARY虽然将日志传过来,但是并没有对数据库进行更新。
    我在用READ ONLY模式打开STANDBY库之后,查询不到PRIMARY新建的表的内容。
      

  3.   

    对于第1个问题,你如果要求STANDBY挂了,主机还正常运转,MAXIMUM PERFORMANCE模式显然不适合。 请在其它的2种模式中选择一种
    第2个问题,你能以READ ONLY打开物理STANDBY, 说明你用的是11gR2? 理论上讲,日志传输到STANDBY就OK了,在你的这种情况估计是需要重新APPLY 日志。
    (这个问题,由于没有环境,我只能根据concept大致说一说,对于DG我也学艺不精)
      

  4.   


    我使用的是ORACIE 9I。 日志可以正确传递。 就是找不到APPLY日志的方法,这个很奇怪
    在使用PERFORMANCE模式的时候是在CANCEL之后自动应用的。在PROTECTION反而不行。使用三思提到的
    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE ;
    开启实时应用,报错
    ERROR 位于第 1 行:
    ORA-00274: 非法恢复选项 USING原因不明,难道是9I不支持?BAIDU上也没明确答复
      

  5.   

    补充一下。我使用READ ONLY打开数据库是在执行了
    alter database recover managed standby database finish;
    之后!
      

  6.   

    物理STANDBY, 在11g 之前,打开后就不能应用REDO了。 所以需要手动关闭STANDBY到mount,再apply日志。11g之后就有 readonly open后apply redo的新特性
      

  7.   

    先把LOG_ARCHIVE_DEST_STATE_2 设置为defer再说吧。
      

  8.   

    如果不同步了,你为什么不等归档传过去呢?只要你的主库所有的归档都保留好了,那完全没有问题啊。如果standby端完全损坏,当然要recreate standby,如果只是损坏部分,你可以把主库的一部分通过hot copy方式拿过去再来同步归档啊。