oracle 11G RAC会话故障转移测试
目前接手的几个项目中,默认使用的oracle RAC数据库服务,均不能实现自动的会话转移,尤其是对于应用的长连接,一旦发生数据库故障,需要重启应用。
实际11G具备会话迁移机制,为此做了如下配置测试,供参考使用。
◆创建一个测试用户test
[oracle@hencrnopdb1 ~]$sqlplus / as sysdba
SQL> create user test identified by test;
User created.
SQL> grant dba to test;
Grant succeeded.
SQL> exit
◆原数据库服务henorcdb,没有针对会话的故障转移功能
[oracle@hencrnopdb1 ~]$sqlplus test/test@137.32.78.106:1521/henorcdb
SQL> select failover_type,failover_method,failed_over from v$session where username=’TEST’;
FAILOVER_TYPE FAILOVER_M FAI
————- ———- —
NONE NONE NO
SQL> exit
◆创建一个新的TAF服务
[oracle@hencrnopdb1 ~]$srvctl add service -d henorcdb -s henorcdb_TAF -r henorcdb1,henorcdb2
[oracle@hencrnopdb1 ~]$srvctl start service -d henorcdb -s henorcdb_TAF
[oracle@hencrnopdb1 ~]$srvctl modify service -d henorcdb -s henorcdb_TAF -q TRUE -P BASIC -e SELECT
◆用新服务henorcdb_TAF连接数据库,本次链接到了节点1
[oracle@hencrnopdb1 ~]$sqlplus test/test@137.32.78.106:1521/henorcdb_TAF
SQL> select instance_number,instance_name,host_name,status from v$instance;
INSTANCE_NUMBER INSTANCE_NAME
————— —————-
HOST_NAME STATUS
—————————————————————- ————
1 henorcdb1
hencrnopdb1 OPEN
SQL> exit
◆用新服务henorcdb_TAF连接数据库,本次链接到了节点2
[oracle@hencrnopdb1 ~]$sqlplus test/test@137.32.78.106:1521/henorcdb_TAF
SQL> select instance_number,instance_name,host_name,status from v$instance;
INSTANCE_NUMBER INSTANCE_NAME
————— —————-
HOST_NAME STATUS
—————————————————————- ————
2 henorcdb2
hencrnopdb2 OPEN
◆新数据库服务henorcdb_TAF,有针对会话的故障转移功能
SQL> select failover_type,failover_method,failed_over from v$session where username=’TEST’;
FAILOVER_TYPE FAILOVER_M FAI
————- ———- —
SELECT BASIC NO
◆保留已有会话,临时退出sqlplus
SQL> !
◆关闭会话所连接的数据库节点2
[oracle@hencrnopdb1 ~]$srvctl stop instance -d henorcdb -n hencrnopdb2
[oracle@hencrnopdb1 ~]$exit
exit
◆返回已有的会话,查看此时会话是否还能正常连接数据库,连到了哪个节点上,发现自动连接到了节点1上!
SQL> /
INSTANCE_NUMBER INSTANCE_NAME
————— —————-
HOST_NAME STATUS
—————————————————————- ————
1 henorcdb1
hencrnopdb1 OPEN
SQL> select failover_type,failover_method,failed_over from v$session where username=’TEST’;
FAILOVER_TYPE FAILOVER_M FAI
————- ———- —
SELECT BASIC YES
◆恢复现场,启动节点2
SQL> !
[oracle@hencrnopdb1 ~]$srvctl start instance -d henorcdb -n hencrnopdb2
[oracle@hencrnopdb1 ~]$exit
exit
◆会话并不会自动切换回节点2
SQL> /
FAILOVER_TYPE FAILOVER_M FAI
————- ———- —
SELECT BASIC YES
SQL> select instance_number,instance_name,host_name,status from v$instance;
INSTANCE_NUMBER INSTANCE_NAME
————— —————-
HOST_NAME STATUS
—————————————————————- ————
1 henorcdb1
hencrnopdb1 OPEN
◆◆结论
oralce 11G的RAC具备对已有session的自动故障保护机制,当前连接的节点down掉的话,可以将已有连接自动迁移到另外的节点。
对于正在执行的事务,是不是可以无缝迁移,尚待验证。
只是遗憾的是,默认的数据库服务并不具备TAF功能,需要另外的配置,具体如上所述。
oracle 11G RAC会话故障转移测试的更多相关文章
- Oracle 11g rac 添加新节点测试
[转]https://blog.csdn.net/shiyu1157758655/article/details/60877076 前期准备: 操作系统设置OS版本必须相同,检查内核参数,系统内存.C ...
- Oracle 11g RAC运维总结
转至:https://blog.csdn.net/qq_41944882/article/details/103560879 1 术语解释1.1 高可用(HA)什么是高可用?顾名思义我们能轻松地理解是 ...
- Oracle 11g RAC 环境下单实例非缺省监听及端口配置
如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...
- 转载:细说oracle 11g rac 的ip地址
本文转载自:细说oracle 11g rac 的ip地址 http://blog.sina.com.cn/s/blog_4fe6d4250102v5fa.html 以前搭建oracle rac的时候( ...
- 【Oracle 集群】Oracle 11G RAC教程之集群安装(七)
Oracle 11G RAC集群安装(七) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总. ...
- 安装Oracle 11g RAC R2 之Linux DNS 配置
Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称.SCAN 这个特性为客户端提供了单一的主机名,用于访问集 ...
- Oracle 11g RAC oc4j/gsd Offline
Oracle 11g RAC中,发现oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形.即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, ...
- Oracle 11g RAC 修改各类IP地址
Oracle 11g RAC 修改各类IP地址 首先,我们都知道Oracle 11g RAC中的IP主要有:Public IP.VIP.SCAN VIP.Private IP这几种. 一般这类改IP地 ...
- [转帖]Oracle 11G RAC For Windows 2008 R2部署手册
Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次) https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 ...
随机推荐
- MySQL引擎简述
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型IN ...
- MQTT研究
http://www.jianshu.com/collection/1c742515f8d8 http://blog.csdn.net/gaojq_ios/article/details/481597 ...
- Java的内存泄漏
内存泄漏是指,无用对象(不再使用的对象)持续占用内存或者无用对象的内存得不到及时释放,从而造成的内存浪费 就说是有一块内存你不需要再用了,但是呢你还保留着它的指针,那么这块内存就不会被回收 举个例子 ...
- 安卓 listview与arrayadapter
今天有感于群里讨论的一个问题,很简单,但是问题还真是需要仔细看一下 问题:定义了一个最简单的arrayadapter,和listview结合使用,灭个item就显示个最简单的textView,一共6个 ...
- CocoaPods 更新慢&swift版本适配
一.更新慢的问题 使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动 原因在于当执行以上两个命令的 ...
- UVa 459 - Graph Connectivity
题目大意:给你一个无向图的顶点和边集,让你求图中连通分量的个数.使用并查集解决. #include <cstdio> #include <cstring> #define MA ...
- CSS border三角、圆角图形生成技术简介
http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...
- 在ubtuntu中使用包管理器 linux-brew
用惯了mac的程序员回到linux开发平台总觉得有点不适应,这是因为linux的界面没有mac那么精美,而且linux的包管理器没有mac上面的homebrew那么强大.mac程序员遇到库的依赖问题时 ...
- APPcache
<!DOCTYPE html> <html manifest="example.appcache"> <head> <title>& ...
- violin 结构介绍
参考:http://www.iqiyi.com/w_19rt9yvv9p.html 主要结构有:琴身.指板.腮托.琴马.琴弦.琴轴