为什么有些客户没有用11gR2 RAC中scan ip连接数据库

如果说scan可以负载均衡,可以故障转换,这些之前版本都已经做到了,感觉不算它的优势.个人感觉它的优势是提供统一的名称来连接数据库,而且在添加删除节点的时候不用修改客户端.
最近发现很多客户都没有用scan ip,都还是用的vip,主要有三个原因:
1.数据库是之前版本升级上来的,之前用vip已经很稳定,不愿做无收益的修改.
2.客户端的tnsnames.ora配置要根据不同的应用模块设定不同的vip顺序.
3.需要TAF功能.
除了第一个原因合理外,二和三都是可以通过配置server-side TAF来进行service的优先级设定和TAF设定来实现.
以下是配置server-side TAF:
##数据库名:rac11g2 实例名:rac11g21,rac11g22,
##要建的服务名:ractest1,ractest2
##1.使用srvctl命令建service资源
[oracle@rh5806 ~]$ srvctl add service -d rac11g2 -s ractest1 -r rac11g21 -a rac11g22 -P BASIC -y automatic -e SELECT -z 5 -w 180
##2.查看service资源ractest1的状态
[oracle@rh5806 ~]$ srvctl status service -d rac11g2 -s ractest1
Service ractest1 is not running.
##3.开启service资源ractest1的状态
[oracle@rh5806 ~]$ srvctl start service -d rac11g2 -s ractest1
##4.查看service资源ractest1的配置信息
[oracle@rh5806 ~]$ srvctl config service -d rac11g2 -s ractest1

Service name: ractest1
Service is enabled
Server pool: rac11g2_ractest1
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: SELECT
Failover method: NONE
TAF failover retries: 5
TAF failover delay: 180
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Preferred instances: rac11g21
Available instances: rac11g22
--通过lsnrctl status 可以看到在实例rac11g21节点上多出一个ractest1的服务
Service "ractest1" has 1 instance(s).
  Instance "rac11g21", status READY, has 1 handler(s) for this service...

##5.相同的方法建service资源ractest2
[oracle@rh5806 ~]$ srvctl add service -d rac11g2 -s ractest2 -r rac11g22 -a rac11g21 -P BASIC -y automatic -e SELECT -z 5 -w 180
[oracle@rh5806 ~]$ srvctl start service -d rac11g2 -s ractest2
##此时可以通过配置客户端测试是否按优先级连接.
--以下是测试客户端的tnsnames.ora
56_118_ractest1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.118)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ractest1)
    )
  )
56_118_ractest2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.118)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ractest2)
    )
  )

##测试serice资源的TAF功能
[root@rh5806 ~]# ifdown eth0

--此时可以看到service资源已经飘移到实例rac11g22上,也可以通过crs_stat -t或者lsnrctl status查看
[oracle@rh5807 ~]$ srvctl status service -d rac11g2 -s ractest1
Service ractest1 is running on instance(s) rac11g22
--此时通过客户端连接56_118_ractest1,连接的已经是实例rac11g22了.

##测试节点恢复后,service资源ractest1的状态
[root@rh5806 ~]# ifup eth0
--此时需要把service资源relocate回来
[oracle@rh5807 ~]$ srvctl relocate service -h

Temporarily relocates service from one node of the cluster to another.
Usage: srvctl relocate service -d -s {-i -t | -c -n } [-f]
    -d       Unique name for the database
    -s              Service name
    -i             Old instance name
    -t             New instance name
    -c         Node name to relocate service from
    -n          Node name to relocate service to
    -f                       Disconnect all sessions during stop or relocate service operations
    -h                       Print usage

[oracle@rh5807 ~]$ srvctl relocate service -d rac11g2 -s ractest1 -i rac11g22 -t rac11g21

##以下是删除不再用的service资源
[oracle@rh5807 ~]$ srvctl stop service -d rac11g2 -s ractest1
[oracle@rh5807 ~]$ srvctl remove service -d rac11g2 -s ractest1

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

转载于:http://blog.itpub.net/28539951/viewspace-1662701/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值