如果说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
最近发现很多客户都没有用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/