Oracle 12c R2中的ADG会话保留特性

Oracle 12c R2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections 2017-07-17 08:39:10 Oracle 12c ADGswitchover 态牛-Tech Neo 6月刊:企业级运维 原创 51CTO网+平台推出《态牛-TechNeo》电子杂志,通过精选和技术原创内容,精致的排版,给技术人员的阅读带来绝佳的体验。“读我懂你,做千万开发者的选择”是《态牛-TechNeo》的口号,本杂志面向广大开发者、技术总监以及架构师,杂志具涵盖独家的经验分享、案例剖析、核心技术解读,为您的岔路口指点迷津,提升工作效率。

Oracle 12c R2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections

[[196974]]

Oracle 12c R2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections

怎么理解呢,比如在Active Data Guard上的连接会话,在switchover的过程中会话连接会始终保持不会中断。这一点听起来就很有特点,能够提高用户体验度,而且是一种相对透明的方式。

到底怎么样呢,我们来简单测试一下,先看看默认情况下的ADG会话情况,切换的过程就直接使用DG Broker来做了,快。

这是一个12cR2的环境,也使用了Far Sync。

  1. DGMGRL>showconfiguration
  2. Configuration-dg_test12cs
  3. ProtectionMode:MaxPerformance
  4. Members:
  5. test12cs-Primarydatabase
  6. test_sync-Farsyncinstance
  7. test12css-Physicalstandbydatabase
  8. Fast-StartFailover:DISABLED
  9. ConfigurationStatus:

SUCCESS (status updated 10 seconds ago)我们连接到备库,备库现在是ADG模式。

  1. SQL>selectopen_modefromv$database;
  2. OPEN_MODE
  3. ----------------------------------------

READ ONLY WITH APPLY如果这个时候我们就使用一条语句在备库端查询,使用TNS连接,然后DG Broker来切换,切换的情况如下,也是一气呵成。

  1. DGMGRL>switchovertotest12css
  2. PerformingswitchoverNOW,pleasewait...
  3. Operationrequiresaconnectiontodatabase"test12css"
  4. Connecting...
  5. Connectedto"test12css"
  6. ConnectedasSYSDBA.
  7. Newprimarydatabase"test12css"isopening...
  8. Operationrequiresstartupofinstance"test12cs"ondatabase"test12cs"
  9. Startinginstance"test12cs"...
  10. forRDBMSinstance
  11. ORACLEinstancestarted.
  12. Databasemounted.
  13. Databaseopened.
  14. Connectedto"test12cs"
  15. Switchoversucceeded,newprimaryis"test12css"
  16. DGMGRL>

在客户端反复测试连接的情况如下:

  1. SQL>selectcount(*)fromcat;
  2. COUNT(*)
  3. ----------
  4. 153
  5. SQL>/
  6. COUNT(*)
  7. ----------
  8. 153
  9. SQL>/
  10. selectcount(*)fromcat
  11. *
  12. ERRORatline1:
  13. ORA-03113:end-of-fileoncommunicationchannel
  14. ProcessID:94489
  15. SessionID:419Serialnumber:62932

可以看到在切换的过程中,连接被中断了,而接下来就会彻底断开连接。

  1. SQL>/
  2. ERROR:
  3. ORA-03114:notconnectedtoORACLE

这里就需要说一下这个特性的情况,其实还涉及到一个参数standby_db_preserve_states,默认是NONE

  1. SQL>showparameterstandby_db_preserve_states
  2. NAMETYPEVALUE
  3. ----------------------------------------------------------------
  4. standby_db_preserve_statesstringNONE

我们设置为ALL,这个修改需要重启备库,我们设置好之后,再来做switchover

步骤和上面的类似,我们直接来看看效果,始终在这一个会话内查看数据查询的情况,整个过程相对平滑,在切换过程中会有一个大约两秒的停顿,但是连接始终是保持的。

  1. COUNT(*)
  2. ----------
  3. 153
  4. SQL>/
  5. COUNT(*)
  6. ----------
  7. 153
  8. SQL>/
  9. COUNT(*)
  10. ----------
  11. 153
  12. SQL>/
  13. COUNT(*)
  14. ----------
  15. 153
  16. SQL>/
  17. COUNT(*)
  18. ----------
  19. 153

整体来看这个特性确实达到了预期的效果,还是蛮不错的。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 09:39
下一篇 2023年5月6日 09:40

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信