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 总体规划 ...
随机推荐
- JAVA基础--代理模式
interface Network{ public void browse() ; // 浏览 } class Real implements Network{ public void browse( ...
- MapReduce 多表连接
题目描述: 现在有两个文件,1为存放公司名字和城市ID,2为存放城市ID和城市名 表一: factoryname,addressed Beijing Red Star,1 Shenzhen Thund ...
- 【转】聊聊HTTPS和SSL/TLS协议
要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接 ...
- UDP网络程序模型设计
UDP网络程序设计 1. UDP网络编程模型程序初始化 1.1服务器使用的函数 创建socket----->socket 绑定地址-------->bind 接受数据--------> ...
- PHP上传文件大小的修改
采用了plupload来上传文件,但是一直失败. 设置了插件的参数和接受的参数,仍旧失败. 此时想到php.ini中需要修改 post_max_sizeupload_file_size 然后重启服务器
- UVa 11747 - Heavy Cycle Edges
题目大意:计算最小生成树有两种算法:一种是kruskal算法,另一种是与之相反的:如果图中存在环,去掉权重最大的边,直到不存在环.输出去掉的那些边. 可以用kruskal算法解决,在判断一条边时如果加 ...
- iOS 之 手势
手势操作,有一个总的抽象类UIGestureRecognizer,用于检测设备的所有手势.其下有多个子类: 拍击UITapGestureRecognizer (任意次数的拍击) 向里或向外捏UIPin ...
- 10.TCP连接的建立与终止
1.建立连接协议 (1)请求端发送一个SYN段指明客户打算连接的服务器的端口,移机初始序号ISN.这个SYN段为报文段1. (2)服务器发回包含服务器的初始序号的SYN报文段作为应答.同时,将确认 ...
- Dev的关于XtraGrid的使用2
接着说,GirdControl如何定位和查找指定列显示值的行(注意是列的实显示值,而不是关联数据源列值) 下面请看代码: using DevExpress.XtraGrid.Views.Base; u ...
- tomcat 修改编码(Java之负基础实战)
1.找到server.xml 在tomcat安装路径/conf/server.xml 2.设置POST和GET使用相同编码 useBodyEncodingForURI="true" ...