RACサービスのフェイルオーバータイミングの違いについて
RACのサービスがフェイルオーバーするタイミング
ORACLE-RACは障害で1つのノードが停止しても、サービスが継続できるようRACサービスがフェイルオーバーする仕組みになっています。では、障害ではなくメンテナンスなどの都合でノードを停止したい場合に、フェイルオーバーしてほしい時と、してほしくないときがあると思います。
DBインスタンスを停止する際にサービス・フェイルオーバーをコントロールすることができるので、その手順を書きます。
フェイルオーバーさせずにDBインスタンスを停止する場合
DBインスタンスを通常モードで停止すればいです。計画停止と判断され、Oracleのサービスも停止されます。
ここでは、ノードserver01のDBインスタンスを停止したので、server01で稼働していたサービスは停止され、server02で稼働しているサービスは起動した状態のままになっています。
[root@server01:/orafs] srvctl stop instance -d db01 -n server01 [root@server01:/orafs]
フェイルオーバーさせてDBインスタンスを停止する場合
DBインスタンスを強制モードで停止すればいいです。計画停止ではないと判断され、Oracleのサービスがフェイルオーバーします。
[root@server01:/orafs] srvctl stop instance -d db01 -n server01 -f [root@server01:/orafs]
-f のみの違いですが、サービスのフェイルオーバーの挙動に違いがあるので、注意が必要です。