上次操作 DB Service (fail-over) 切换失败,在Oracle技术支持人员的帮助,以及搭建测试环境测试之后,得出如下结果:
创建服务的命令:
srvctl add service -d racdb -s srv_test -r racdb1 -a racdb2 -P basic -e select -m basic -z 180 -w 5
两节点prefer:
srvctl add service -d racdb -s srv_rac -r racdb1,racdb2 -P basic -e select -m basic -z 180 -w 5
srvctl relocate service -d racdb -s srv_test -i racdb2 -t racdb1
1、无论Service怎么创建,在SQLPLUS下使用命令shutdown immediate关闭数据库,Service可以正常Fail over切换成功
关闭数据库:
service正常切换,Fail over 到另一个instance
2、创建服务时使用-r -a参数,各一个instance,Service无法切换,需要加-f参数才能切换成功
如:
srvctl add service ....-r racdb1 -a racdb2 ....
关闭instance1时,服务会自动OFFLINE,无法切换
这种情况下,正如Oracle技术支持人员给出的答案,需要在使用srvctl关闭数据库使用 -f参数,即可切换服务成功
srvctl stop instance -d racdb -i racdb1 -f
3、创建服务时使用 -r参数,而且参数里包括多个instance,这时使用srvctl关闭instance1,Service可以正常切换,不需要加-f参数
如:
srvctl add service ...... -r racdb1,racdb2 ...
srvctl关闭数据库:
Service正常切换:
总结:
Oracle 11gR2 RAC(11.2.0.3)在创建service,可以根据创建service的命令,或者关闭instance的命令来实现Service的fail over正常切换。
(** 所有的测试结果仅仅是个人测试结果,非官方)