ITPub博客

首页 > 数据库 > Oracle > Linux平台上Oracle Rac中的TAF配置

Linux平台上Oracle Rac中的TAF配置

原创 Oracle 作者:tangxiaobo2012 时间:2015-08-14 01:56:18 0 删除 编辑

简介

    TAF是Transparent Application Failover的英文缩写,即为透明应用失败切换,也就是说应用在通过以TAF方式配置的客户端连数据库后,当前所连接的数据库实例发生异常中断后,应 用会自动连接到其他可用实例上去继续前面的查询,而不需要应用重新发起连接或是重启应用来恢复会话连接。此文结合多人经验,特此感谢曾经一起战斗在DBA 岗位上的伙伴儿们。

1、实验环境平台信息
--系统:
Oracle Linux 5.7
Linux 2.6.32-200.13.1.el5uek  x86_64 x86_64 x86_64 GNU/Linux

--11g R2 RAC 11.2.0.3

2、tnsnames文件配置(node1,node2都要设置)

cd $ORACLE_HOME/network/admin
cat tnsnames.ora

# tnsnames.ora Network Configuration File: /space/sys_software/oracle/app/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

TX9AB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = tx9ab)
      (FAILOVER_MODE=
        (TYPE=session)
        (METHOD=preconnect)
        (RETRIES=180)
        (DELAY=5))
    )
  )

3、修改Linux平台上的的tcp延时协议

--修改参数 net.ipv4.tcp_retries2

对该参数的解释

    TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源。实际设置为1,如果使用默认参数,通常要等待30分钟左右,这样对于TAF的配置显然就失去了意义。

  net.ipv4.tcp_retries2=1;

--sysctl -p                                      激活设置;


4、TAF效果测试

[oracle@node1 admin]$ sqlplus sys/oracle@tx9ab as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Aug 14 01:24:52 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> select count(*) from v$datafile;

  COUNT(*)
----------
         7

....换个窗口切换到grid用户

[grid@node1 ~]$ srvctl stop instance -d tx9ab -i tx9ab1 -o abort

.....换回原来窗口,在相同session中查询

SQL> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string
db_name                              string      tx9ab
db_unique_name                       string      tx9ab
global_names                         boolean     FALSE
instance_name                        string      tx9ab2
lock_name_space                      string
log_file_name_convert                string
processor_group_name                 string
service_names                        string      tx9ab
SQL> select count(*) from v$datafile;

  COUNT(*)
----------
         7

--注意到会话没变service已经切换到tx9ab2上了!

小结
      只有类Linux环境会出现tcp超长延时的情况,所以建议在配置TAF后要及时做测试,特别是在为生产环境搭建的环境中,如果服务在异常时无法及时切换则会造成原本不必要的故障。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26727294/viewspace-1770820/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-22

  • 博文量
    8
  • 访问量
    35840