我们知道在ORACLE RAC的环境中,当数据库实例失败时,在这个实例上运行的服务可以failover到另一个可用实例。当实例恢复后,failover后的服务不会返回到原始实例。管理员不得不重新relocate服务。这种情况在Oracle数据库19c中改变了,在添加服务时(srvctl add service),通过参数failback来实现。
注意:创建服务时,如果没有使用failback,那么在srvctl config service查看时,不会显示Failback: false字样。
[oracle@**** ~]$ srvctl add service -db test -service testapp1 -preferred test_1 -available test_2 -failback YES
[oracle@**** ~]$ srvctl config service -db test -s testapp1 | grep Fail
Failover type:
Failover method:
Failover retries:
Failover delay:
Failover restore: NONE
Failback : true
创建服务时没有使用failback ,即使 modify 时增加了failback 选项,该failback 属性也不会成功
[oracle@ractst2h1 ~]$ srvctl modify service -db test -s testapp -modifyconfig -preferred test_1 -available test_2 -failback YES
[oracle@ractst2h1 ~]$ srvctl config service -db test -s testapp | grep Fail
Failover type:
Failover method:
Failover retries:
Failover delay:
Failover restore: NONE