DGMGRL> edit database kokki set property LogShipping=on; Property "logshipping" updated
DGMGRL> show configuration; Configuration - PeppiEnKokki Protection Mode: MaxPerformance Databases: peppi - Primary database Error: ORA-16778: redo transport error for one or more databases kokki - Physical standby database Fast-Start Failover: DISABLED Configuration Status: ERROR通过这可以很清晰的看到redo的传输中断了然后提示了ORA-16778的错误,如果主库的密码文件一旦发生改变,那么不会马上暴露出问题,但是可能在后来的某一个时间点爆发。 那么ORA-16778 错误代表什么含义? $ oerr ora 16778 16778, 00000, "redo transport error for one or more databases" // *Cause: The redo transport service was unable to send redo data to one // or more standby databases. // *Action: Check the Data Guard broker log and Oracle alert log for // more details. Query the LogXptStatus property to see the // errors.我们刚刚已经在主库修改了sys的密码,这个时候的问题是怎么修复? 探索答案: 可能我们可以简单的通过在kokki上面重建密码文件得以解决,让我们试一试。 el5$ rm $ORACLE_HOME/dbs/orapwv1120 el5$ orapwd file=$ORACLE_HOME/dbs/orapwv1120 password=prutser
SQL> connect sys/prutser@kokki as sysdba Connected.看起来似乎是可以的,但是问题是dataguard是否如此乐观的认为问题已经解决了呢? SQL> connect sys/prutser@peppi as sysdba Connected. SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile; System altered.
SQL> alter system switch logfile; System altered.
DGMGRL> show configuration; Configuration - PeppiEnKokki Protection Mode: MaxPerformance Databases: peppi - Primary database Error: ORA-16778: redo transport error for one or more databases kokki - Physical standby database Fast-Start Failover: DISABLED Configuration Status: ERROR这个时候发现情况没有看上去那么好了,是不是我们需要重置一下redo的传输,我们来简单验证一下。 DGMGRL> edit database kokki set property LogShipping=off; Property "logshipping" updated
DGMGRL> edit database kokki set property LogShipping=on; Property "logshipping" updated
DGMGRL> show configuration; Configuration - PeppiEnKokki Protection Mode: MaxPerformance Databases: peppi - Primary database Error: ORA-16778: redo transport error for one or more databases kokki - Physical standby database Fast-Start Failover: DISABLED Configuration Status: ERROR这个时候还是不奏效,在备库重建密码文件看来不是解决方法了,因为密码文件是加密的,尽管密码是相当的,但是加密之后的效果不同。 那么如果从主库拷贝密码问价到备库的话怎么样呢? 我们尝试拷贝密码文件到备库kokki,然后看看效果: $ scp $ORACLE_HOME/dbs/orapwv1120 el5:$ORACLE_HOME/dbs/orapwv1120 orapwv1120 100% 1536 1.5KB/s 00:00
SQL> connect sys/prutser@kokki as sysdba Connected.这个时候我们可以在kokki使用sys接入实例了,那么dataguard这边确实ok了吗? SQL> connect sys/prutser@peppi as sysdba Connected. SQL> alter system switch logfile; System altered.
SQL> alter system switch logfile; System altered.
SQL> alter system switch logfile; System altered.
DGMGRL> show configuration; Configuration - PeppiEnKokki Protection Mode: MaxPerformance Databases: peppi - Primary database Error: ORA-16778: redo transport error for one or more databases kokki - Physical standby database Fast-Start Failover: DISABLED Configuration Status: ERROR再一次证明dataguard还是不够满意,但是看起来一切已经和原来一样了,如果我们稍作等待然后再次开启归档日志的传输,就会连带redo的传输,当然这个过程可以通过禁用启用redo传输来完成。 DGMGRL> edit database kokki set property LogShipping=off; Property "logshipping" updated
DGMGRL> edit database kokki set property LogShipping=on; Property "logshipping" updated
DGMGRL> show configuration; Configuration - PeppiEnKokki Protection Mode: MaxPerformance Databases: peppi - Primary database kokki - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS最终dataguard的状态终于正常了,因为主库的redo传输到备库已经正常了。 总结: 如果需要保证dataguard的可持续性,如果主库存在任何密码文件的变更,我们必须从主库拷贝密码文件到备库.最后是一句 Happy Data Guarding ;-)Oracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htmDebian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htmOracle Data Guard 重要配置参数 http://www.linuxidc.com/Linux/2013-08/88784.htm基于同一主机配置 Oracle 11g Data Guard http://www.linuxidc.com/Linux/2013-08/88848.htm探索Oracle之11g DataGuard http://www.linuxidc.com/Linux/2013-08/88692.htmOracle Data Guard (RAC+DG) 归档删除策略及脚本 http://www.linuxidc.com/Linux/2013-07/87782.htmOracle Data Guard 的角色转换 http://www.linuxidc.com/Linux/2013-06/86190.htmOracle Data Guard的日志FAL gap问题 http://www.linuxidc.com/Linux/2013-04/82561.htmOracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法 http://www.linuxidc.com/Linux/2013-03/82009.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址