Oracle 19c RAC新特性 : Automatic Failback of a Service
Oracle数据库服务的高可用性一直是RAC,其它关系型数据库不可匹敌的功能。应用配置TFA,当数据库实例发生故障时,以该实例为首选实例的服务将故障转移到另一个可用实例。不幸的是,实例再次启动后,服务并没有故障切换回原始实例。dba必须重新ralocate service服务。Oracle数据库19c对此进行了更改,增加了自动回归。
$ srvctl status database -db anbob Instance ANBOB1 is running on node rac1 Instance ANBOB2 is running on node rac2
让我们创建一个简单的service服务,然后增加fal选项,增加failback选项,当然可以在创建service一次性指定。
$ srvctl add service -db anbob -service anbob2_1 -preferred anbob2 -available anbob1 $ srvctl start service -db anbob -service anbob2_1 $ srvctl modify service -db anbob -service anbob2_1 -failovertype SESSION -failovermethod BASIC -failoverdelay 10 -failoverretry 3 $ srvctl modify service -db anbob -service anbob2_1 -failback YES
当我们尝试reboo实例2,或者kill实例2的核心进程,模拟一种故障。注意正常的instance shutdown并不会导致service failover.
当实例2异常终止后(kill db pmon process)
$ srvctl status service -db anbob-service anbob2_1 Service ANBOB2_1 is running on instance(s) RAC1
这是一种预期行为,之前的版本也可以做到这样,但是很快oraagent把db instance再次拉起。
$ srvctl status service -db anbob-service anbob2_1 Service ANBOB2_1 is running on instance(s) RAC2
service服务又自动回到了node2 。
对不起,这篇文章暂时关闭评论。