翻译mos文章11gR2 RAC Service Not Failing Over To Other Node When Instance Is Shut Down (文档 ID 1324574.1)




      11gR2 RAC Service Not Failing Over To Other Node When Instance Is Shut Down (文档 ID 1324574.1)
适用于11.2.0.2后任何平台下的企业版
使用srvctl stop instance 让服务切换到可用实例上
在11.2之前的版本 通过srvctl stop 会将服务切换到可用实例上
示例
1) Create service called "grb_stest01" on GRB DB with GRB1 prefer and GRB2 available.
srvctl add service -d GRB -s grb_stest01 -r GRB1 -a GRB2


2) Check service created
srvctl config service -d GRB -a
==>
Service name: grb_stest01
Service is enabled
Server pool: GRB_grb_stest01
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Preferred instances: GRB1
Available instances: GRB2
Service name: grb_test01
Service is enabled
Server pool: GRB_grb_test01
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Preferred instances: GRB1
Available instances:


3) start grb_stest01 service
srvctl start service -d GRB -s grb_stest01

4) confirm the service is srunning on GRB1
srvctl status service -d GRB
==>
Service grb_stest01 is running on instance(s) GRB1

5) Stop instance using srvctl with imemediate(default) or abort
srvctl stop instance -d GRB -i GRB1
OR
srvctl stop instance -d GRB -i GRB1 -o abort

srvctl status service -d GRB
==>
Service grb_stest01 is not running
The service does not failover but stops

change
升级到11.2
这在11.2中可以预见的情况
如果在sqlplus里使用shutdown 关闭实例
那么10g和11g 都会将服务故障转移到可用的实例上去。

如果使用srvctl 关闭实例
在11.2之前,服务会转移到可用实例
11.2服务并不会转移但是服务会停掉

在11.2,如果希望服务转移到其他实例上那么需要在使用srvct 时指定-f选项
srvctl stop instance -d xxx -i xxx1 -f
还有一种选择是在通过srvctl 停止实例之前将服务搬迁到另一个实例上
srvctl relocate service -d exdb -s testsv -i exdb1 -t exdb2

solution

使用 -f选项将服务转移到可用实例上

srvctl stop instance -d GRB -i GRB1 -f
srvctl status service -d GRB
==>
Service grb_stest01 is running on instance(s) GRB2

在12c版本,情况不一样
1)如果停止实例不使用-force或-failover 选项,服务会依然运行在停止的实例上。这样就会有报错(PRCD-1315,PRCR-1014, PRCR-1065, CRS-2529

ie)
$srvctl config service -d orcl -s orcl_service01

Service name: orcl_service01
...
....
Preferred instances: orcl1
Available instances: orcl2

$srvctl status service -d orcl
Service orcl_service01 is running on instance(s) orcl1

$ srvctl stop instance -d orcl -i orcl1
PRCD-1315 : failed to stop instances for database orcl
PRCR-1014 : Failed to stop resource ora.orcl.db
PRCR-1065 : Failed to stop resource ora.orcl.db
CRS-2529: Unable to act on 'ora.orcl.db' because that would require stopping or relocating 'ora.orcl.orcl_service01.svc', but the force option was not specified

2)如果想将服务实例转移到其他实例上,需要使用-failover 来代替-force

ie)
$ srvctl status service -d orcl
Service orcl_service01 is running on instance(s) orcl1
$ srvctl stop instance -d orcl -i orcl1 -failover
$ srvctl status service -d orcl
Service orcl_service01 is running on instance(s) orcl2

3) 如果想要停止所有实例和服务那么使用-force选项
ie)
srvctl status service -d orcl -s orcl_service01
Service orcl_service01 is running on instance(s) orcl1
$ srvctl stop instance -d orcl -i orcl1 -force
$ srvctl status service -d orcl -s orcl_service01
Service orcl_service01 is not running.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值