Oracle 12cR2中的ADG会话保留特性

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

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

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

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

DGMGRL>show configuration Configuration - dg_test12cs Protection Mode: MaxPerformance Members: test12cs - Primary database test_sync - Far sync instance test12css - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS (status updated 10 seconds ago)

我们连接到备库,备库现在是ADG模式。

SQL> select open_mode from v$database; OPEN_MODE ---------------------------------------- READ ONLY WITH APPLY

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

DGMGRL> switchover to test12css Performing switchover NOW, please wait... Operation requires a connection to database "test12css" Connecting ... Connected to "test12css" Connected as SYSDBA. New primary database "test12css" is opening... Operation requires start up of instance "test12cs" on database "test12cs" Starting instance "test12cs"... for RDBMS instance ORACLE instance started. Database mounted. Database opened. Connected to "test12cs" Switchover succeeded, new primary is "test12css" DGMGRL>

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

SQL> select count(*) from cat; COUNT(*) ---------- 153 SQL> / COUNT(*) ---------- 153 SQL> / select count(*) from cat * ERROR at line 1: ORA-03113: end-of-file on communication channel Process ID: 94489 Session ID: 419 Serial number: 62932

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

SQL> / ERROR: ORA-03114: not connected to ORACLE

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

SQL> show parameter standby_db_preserve_states NAME TYPE VALUE ------------------------------------ ---------------------- ------ standby_db_preserve_states string NONE

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

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

COUNT(*) ---------- 153 SQL> / COUNT(*) ---------- 153 SQL> / COUNT(*) ---------- 153 SQL> / COUNT(*) ---------- 153 SQL> / COUNT(*) ---------- 153

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

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2017-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

你不可不看的 Oracle RAC 日常基本维护命令

$ srvctl status instance -d orcl -i orcl2

1184
来自专栏乐沙弥的世界

MySQL read_log_event(): 'Found invalid event in binary log'

    MySQL以简单易用著称,在同一个服务器上可以安装N个不同的版本,方便测试,迁移等等。此外,对于大多数Linux系统,集成了mysql,缺省会被安装。因...

812
来自专栏散尽浮华

mysqldump数据导出问题和客户端授权后连接失败问题

1,使用mysqldump时报错(1064),这个是因为mysqldump版本太低与当前数据库版本不一致导致的。 mysqldump: Couldn't exe...

2399
来自专栏Linyb极客之路

MySQL数据库“十宗罪”(十大经典错误案例)

Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)

1342
来自专栏乐沙弥的世界

RMAN catalog 的创建和使用

在存储恢复目录的数据库创建表空间用于存储恢复目录schema及恢复目录数据(本文使用已经创建好的数据库catadb来存储恢复目录)

872
来自专栏沃趣科技

ASM 翻译系列第三十三弹:REQUIRED_MIRROR_FREE_MB的含义

原作者:Bane Radulovic 译者: 陈亚军 审核: 魏兴华 DBGeeK社区联合出品 原文链接:http://asmsupportguy....

36810
来自专栏乐沙弥的世界

Oracle AWR管理与维护

  AWR是Automatic Workload Repository的简称,中文叫着自动工作量资料档案库。对于AWR的管理,主要是针对快照和基线的管理而言。比...

980
来自专栏Netkiller

Linux 系统与数据库安全

目录 1. 帐号安全 1.1. Shell 安全 1.2. .history 文件 2. 临时文件安全 3. 其他安全问题 4. 防火墙配置 5. 数据库安全 ...

3695
来自专栏张戈的专栏

MySQL在线DDL修改表结构的简单经验分享

摘 要 在线DDL修改生产环境的大表一直是运维、DBA一个很头痛的问题,本文分享一些相关经验,希望对还在头痛的同学能有所帮助,当然更希望路过的大神,如果有更靠...

3417
来自专栏王硕

原 在PostgreSQL中秒级完成大表添加带有not null属性并带有default值的实验

56013

扫码关注云+社区