oracle-taf

Posted 阳光-源泉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle-taf相关的知识,希望对你有一定的参考价值。

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

主备模式,优先实例是racdb1,备用实例是racdb2
srvctl add service  -d racdb -s server_taf -r racdb1 -a racdb2 -P basic
负载均衡模式,即没有“主-备”这个概念。
srvctl add service -d racdb -s server_taf -r ‘racdb1,racdb2‘ -P basic
启动服务
srvctl start service -d racdb -s server_taf
修改新建服务的属性,主要是设置-z(连接次数)、-w(连接等待)参数
srvctl modify service -d racdb -s server_taf -m BASIC -a SELECT -q TRUE -j LONG -z 10 -w 1/l

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

在客户端创建或编辑tnsnames.ora文件,添加一个网络服务名
此处的192.168.1.56对应的是RAC集群的SCAN IP地址,而service_name为我们新建的server_taf。
RACDB =
  (DESCRIPTION =
    ADDRESS_LIST(
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.56)(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. 查询没有出现“通信通道文件结束”之类的报错,表明会话被安全转移没有发生中断。



































以上是关于oracle-taf的主要内容,如果未能解决你的问题,请参考以下文章