Oracle 12c R2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections
Oracle 12c R2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections
怎么理解呢,比如在Active Data Guard上的连接会话,在switchover的过程中会话连接会始终保持不会中断。这一点听起来就很有特点,能够提高用户体验度,而且是一种相对透明的方式。
到底怎么样呢,我们来简单测试一下,先看看默认情况下的ADG会话情况,切换的过程就直接使用DG Broker来做了,快。
这是一个12cR2的环境,也使用了Far Sync。
- DGMGRL>showconfiguration
- Configuration-dg_test12cs
- ProtectionMode:MaxPerformance
- Members:
- test12cs-Primarydatabase
- test_sync-Farsyncinstance
- test12css-Physicalstandbydatabase
- Fast-StartFailover:DISABLED
- ConfigurationStatus:
SUCCESS (status updated 10 seconds ago)我们连接到备库,备库现在是ADG模式。
- SQL>selectopen_modefromv$database;
- OPEN_MODE
- ----------------------------------------
READ ONLY WITH APPLY如果这个时候我们就使用一条语句在备库端查询,使用TNS连接,然后DG Broker来切换,切换的情况如下,也是一气呵成。
- DGMGRL>switchovertotest12css
- PerformingswitchoverNOW,pleasewait...
- Operationrequiresaconnectiontodatabase"test12css"
- Connecting...
- Connectedto"test12css"
- ConnectedasSYSDBA.
- Newprimarydatabase"test12css"isopening...
- Operationrequiresstartupofinstance"test12cs"ondatabase"test12cs"
- Startinginstance"test12cs"...
- forRDBMSinstance
- ORACLEinstancestarted.
- Databasemounted.
- Databaseopened.
- Connectedto"test12cs"
- Switchoversucceeded,newprimaryis"test12css"
- DGMGRL>
在客户端反复测试连接的情况如下:
- SQL>selectcount(*)fromcat;
- COUNT(*)
- ----------
- 153
- SQL>/
- COUNT(*)
- ----------
- 153
- SQL>/
- selectcount(*)fromcat
- *
- ERRORatline1:
- ORA-03113:end-of-fileoncommunicationchannel
- ProcessID:94489
- SessionID:419Serialnumber:62932
可以看到在切换的过程中,连接被中断了,而接下来就会彻底断开连接。
- SQL>/
- ERROR:
- ORA-03114:notconnectedtoORACLE
这里就需要说一下这个特性的情况,其实还涉及到一个参数standby_db_preserve_states,默认是NONE
- SQL>showparameterstandby_db_preserve_states
- NAMETYPEVALUE
- ----------------------------------------------------------------
- standby_db_preserve_statesstringNONE
我们设置为ALL,这个修改需要重启备库,我们设置好之后,再来做switchover
步骤和上面的类似,我们直接来看看效果,始终在这一个会话内查看数据查询的情况,整个过程相对平滑,在切换过程中会有一个大约两秒的停顿,但是连接始终是保持的。
- COUNT(*)
- ----------
- 153
- SQL>/
- COUNT(*)
- ----------
- 153
- SQL>/
- COUNT(*)
- ----------
- 153
- SQL>/
- COUNT(*)
- ----------
- 153
- SQL>/
- COUNT(*)
- ----------
- 153
整体来看这个特性确实达到了预期的效果,还是蛮不错的。
©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经