Oracle RAC 客户端FAILOVER LOADBALANCE特性的配置方法

RAC客户端配置常见的报错:
ORA-12545: 因目标主机或对象不存在,连接失败。


1    RAC 客户端配置方法

1.1    配置hosts
修改C:\Windows\System32\drivers\etc\hosts(Windows)

/etc/hosts(Linux|AIX)

100.51.41.131 bwgl_db1
100.51.41.132 bwgl_db2
100.51.41.133 bwgl_db1-vip
100.51.41.134 bwgl_db2-vip

bwgl_db1,bwgl_db2一定要和节点服务器的机器名相同,bwgl_db1-vip,bwgl_db2-vip和服务器端配置的VIP名称相同。

1.2    配置TNSNAMES.ORA
修改$ORACLE_HOME/network/admin/tnsnames.ora(在手动修改tnsnames.ora请注意不要用TAB键,都是空格)
FZFWDB =
  (DESCRIPTION =
    (FAILOVER = on)
    (LOAD_BALANCE = yes)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = bwgl_db1-vip)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = bwgl_db2-vip)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = fzfwdb)
      (FAILOVER_MODE=
          (TYPE = select)
          (METHOD = basic)
          (RETRIES = 180)
          (DELAY = 5)
      )
    )
  )

这里需要注意的是虽然配置只用到了vip地址,而且也只需要用到vip地址就够了,但是依然要在hosts文件中配置public ip的映射关系,否则依然会报错。因为Oracle服务器很有可能返回public 的名称让客户端来重新连接,所以需要此public的配置。

2    JDBC集群负载均衡的配置方法
jdbc:oracle:thin:@(DESCRIPTION =(FAILOVER=on)(LOAD_BALANCE=yes)(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = bwgl_db1-vip)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = bwgl_db2-vip)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = FZFWDB)))

bwgl_db1-vip bwgl_db2-vip 不可以用IP代替,需要在JDBC客户端配置hosts。

从性能的角度来看,在RAC环境中,更应该使用service+server TAF来提供连接。这样拆分模块,应用分别部署,实例之间没有太多交互,能够一定程度的提高应用的性能。因为RAC环境中,瓶颈可能在cache fusion,减少对它的使用,能够提高应用的整体运行能力。例如:我有10个模块,我让5个模块固定连接到实例1,我让另外5个模块连接到实例2。或者我有多个应用,一部分固定连接到实例1,一部分固定连接到实例2。如何使用这种固定连接方式喃?首先不能直接使用jdbc连接到instance1或者连接到instance2,这样连接当实例1机器当掉后,通过实例1连接的模块或应用就无法使用了。这个时候service的优势就体现出来了,使用service的一大好处就是当实例1当掉之后会切换到备用实例上,这样就能保证不会造成对应用的影响了。使用service的另一个好处就是可以使用server TAF,可以不用使用客户端的TAF,通过dbms_service包来配置server TAF。server TAF可以减轻客户端的配置负担,统一配置保证所有的连接都能实现FAILOVER的功能。

如果是使用了server TAF客户端就可以配置成如下形式:
SERVICE1 =
  (DESCRIPTION =
    (FAILOVER = on)
    (LOAD_BALANCE = yes)
    (ADDRESS_LIST=
      (ADDRESS = (PROTOCOL = TCP)(HOST = rhel1-vip)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = rhel2-vip)(PORT = 1521))
    )
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = service1)
    )
  )

jdbc也可以做相应的调整了。

相关查看:
http://space.itpub.net/471666/viewspace-224943
Oracle RAC Failover详解:http://blog.csdn.net/tianlesoftware/archive/2010/03/03/5340788.aspx

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

转载于:http://blog.itpub.net/23135684/viewspace-630945/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值