当前位置: 首页 > Oracle, oracle 10g, oracle 11g > 正文

ORACLE DATA GUARD搭建时备库忘建redo日志处理

搭建DATA GUARD,利用RMAN备份恢复备库时,由于RMAN不会备份REDO文件,还原后的备库缺少REDO日志文件,对于用归档日志同步数据的备库,影响不是很大,依然可以应用日志同步主库的数据变更,但是如果主/备库切换的话,就不行了,对于这样控制文件里记录了REDO的信息,但是在存储上却没有对应的文件的备库,此时删除控制文件中的REDO信息是不允许的。

SQL> alter database drop logfile group 1;
alter database drop logfile group 1
*
ERROR at line 1:
ORA-01156: recovery or flashback in progress may need access to files

那该如何解决这个问题呢,也很简单,不让删这些没有文件的REDO信息,还是让建的,那么就先在主库和备库都建3组新的REDO日志。

SQL> alter database add logfile group 4 '+DATA/fhacdb/redo04.log' size 1024M;
Database altered.
SQL> alter database add logfile group 5 '+DATA/fhacdb/redo05.log' size 1024M;
Database altered.
SQL> alter database add logfile group 6 '+DATA/fhacdb/redo06.log' size 1024M;
Database altered.

现在主库和备库的控制文件记录的REDO日志信息如下:
主库:

SQL> select GROUP#,SEQUENCE#,STATUS,ARCHIVED from v$log;
    GROUP#  SEQUENCE# STATUS           ARC
---------- ---------- ---------------- ---
         1      17476 ACTIVE           YES
         2      17474 INACTIVE         YES
         3      17475 INACTIVE         YES
         4      17477 ACTIVE           YES
         5      17478 ACTIVE           YES
         6      17479 CURRENT          NO

备库:

SQL> select GROUP#,SEQUENCE#,STATUS,ARCHIVED from v$log;
      GROUP#  SEQUENCE# STATUS           ARC
---------- ---------- ---------------- ---
         1      17476 CLEARING         YES
         2      17474 CLEARING         YES
         3      17475 CLEARING         YES
         4      17477 CLEARING         YES
         5      17478 CLEARING         YES
         6      17479 CURRENT          YES

备库不让删REDO日志,不代表主库也不让删,切换主库日志,当STATUS状态为INACTIVE时,删掉前3组REDO日志。

SQL> alter database drop logfile group 1;
Database altered.
SQL> alter database drop logfile group 2;
Database altered.
SQL> alter database drop logfile group 3;
Database altered.

此时备库还是那6组日志信息,包括前3组没有文件的日志信息和后建立的3组正确的REDO日志,而主库现在只有3组后建立的REDO信息,这样就好办啦,主库重建备库STANDBY控制文件,发给备库,备库只要应用这个控制文件就没有前3组错误的REDO信息啦。

SQL> select GROUP#,SEQUENCE#,STATUS,ARCHIVED from v$log;
      GROUP#  SEQUENCE# STATUS           ARC
---------- ---------- ---------------- ---
         4      17477 CLEARING         YES
         5      17478 CLEARING         YES
         6      17479 CURRENT          YES

 

本文固定链接: http://www.dbdream.com.cn/2012/09/oracle-data-guard%e6%90%ad%e5%bb%ba%e6%97%b6%e5%a4%87%e5%ba%93%e5%bf%98%e5%bb%baredo%e6%97%a5%e5%bf%97%e5%a4%84%e7%90%86/ | 信春哥,系统稳,闭眼上线不回滚!

该日志由 dbdream 于2012年09月19日发表在 Oracle, oracle 10g, oracle 11g 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: ORACLE DATA GUARD搭建时备库忘建redo日志处理 | 信春哥,系统稳,闭眼上线不回滚!
关键字: , , ,

ORACLE DATA GUARD搭建时备库忘建redo日志处理:目前有2 条留言

  1. 沙发
    lixora:

    宋大师,这里的‘’此时主库还是那6组日志信息,包括前3组没有文件的日志信息和后建立的3组正确的REDO日志,而主库现在只有3组后建立的REDO信息 ‘’ 中的 –‘’此时主库还是‘’–应该是备库吧,笔误;
    另外我有个疑惑这里,‘此时主库还是那6组日志信息,包括前3组没有文件的日志信息和后建立的3组正确的REDO日志,而主库现在只有3组后建立的REDO信息,这样就好办啦,主库重建备库STANDBY控制文件,发给备库,备库只要应用这个控制文件就没有前3组错误的REDO信息啦。’ 备库使用主库新建的的standby 后还需要rename 备库的redolog name吧,因为控制文件记录的主库的redolog的信息,不知道这样理解对么?请大师指点下

    2014-03-08 21:48 [回复]
    • streamsong:

      非常感谢您的纠正,的确是我写错了,已经修改,至于你的疑问是不需要的,因为主备库这几组redo的路径是一样的,如果不一样是需要改的。

      2014-03-10 14:47 [回复]

发表评论

快捷键:Ctrl+Enter