oracle-taf

http://blog.sina.com.cn/s/blog_48567d850102wck0.html
配置目标:把RAC系统配置为“主-备”模式,即平时所有连接都在rac01这个节点上,当rac01节点出现故障时
利用TAF功能把连接重置到rac02节点上并且保证查询语句的连续执行,会话不发生中断。

主备模式,优先实例是baoka1,备用实例是baoka2
srvctl add service  -d baoka -s server_taf -r baoka1 -a baoka2 -P basic
负载均衡模式,即没有“主-备”这个概念。
srvctl add service -d baoka -s server_taf -r 'baoka1,baoka2' -P basic

删除服务
srvctl remove service -d kyc -s kyc_taf


启动服务
srvctl start service -d baoka -s server_taf

停止服务
srvctl stop service -d kyc -s kyc_taf


修改新建服务的属性,主要是设置-z(连接次数)、-w(连接等待)参数
srvctl modify service -d baoka -s server_taf -m BASIC -e SELECT -q TRUE -z 10 -w 1

检查监听程序是否有新建服务的注册信息
使用lsnrctl status命令检查,可以在rac01节点上看到已经有一个名为“server_taf”的服务
此时rac02节点上监听器没有这个服务信息。

在客户端创建或编辑tnsnames.ora文件,添加一个网络服务名
此处的192.168.1.56对应的是RAC集群的SCAN IP地址,而service_name为我们新建的server_taf。
baokadb =
  (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.30.50)(PORT = 1521)))
        (CONNECT_DATA =
        (SERVICE_NAME = server_taf)))

验证测试



通过DOS窗口下的SQLPLUS环境使用system用户连接RAC环境,检查发现每次连接都是被引导到racdb1实例上,racdb2确实在集群中充当备用节点。
此时通过关闭节点1主机,或者其它模拟racdb1实例宕机的方法来使集群发生主备切换。此处我们使用shutdown immediate命令关闭racdb1实例。
再次在刚才DOS窗口下连接的SQLPLUS环境中执行查询命令,发现
1. 此时连接的实例已经变成了racdb2,表明连接被成功转移到RAC备用实例。
2. 查询没有出现“通信通道文件结束”之类的报错,表明会话被安全转移没有发生中断。
select instance_name from v$instance;
select FAILOVER_TYPE,FAILOVER_METHOD,FAILED_OVER,SERVICE_NAME from v$session;
select * from v$session
where failover_type='SELECT';

原文地址:https://www.cnblogs.com/createyuan/p/7657138.html