「スプリットブレイン」シナリオは、SAP HANAデータベースが実行され、複数のクラスターノードでSAP HANAのプライマリレプリケーションサイトとして構成されている場合に発生します。スプリットブレインが発生した場合、LifeKeeperは、データベース管理者が問題を手動で解決するまで、すべてのHANAデータベースの監視を一時停止します。
SAP HANAリソース階層で発生する可能性のある一般的なスプリットブレインシナリオは、2種類あります。
- LifeKeeper HANAリソースのスプリットブレイン: HANAリソースは、複数のクラスターノード上のLifeKeeperでアクティブ(ISP)です。この状態は通常、クラスターノード間のコミュニケーションパスに影響を与える一時的なネットワーク障害が原因です。
- SAP HANAシステムレプリケーションのスプリットブレイン: HANAリソースは、LifeKeeperのプライマリノードでアクティブ(ISP)、バックアップノードでスタンバイ(OSU)ですが、データベースは両方のノードでプライマリレプリケーションサイトとして実行および登録されています。この状態は通常、フェイルオーバー中に以前のプライマリノードでデータベースを停止できなかった、データベースのAutostartが有効になっている、またはLifeKeeperの外部のセカンダリレプリケーションサイトでデータベース管理者が "hdbnsutil -sr_takeover" を手動で実行したことが原因です。
各タイプのスプリットブレインシナリオを解決するための推奨事項を以下に示します。
LifeKeeper HANAリソースのスプリットブレインの解決
このスプリットブレインシナリオでは以下のようなメッセージがログに出力され、問題が解決されるまでquickCheckの間隔(デフォルトでは2分)ごとに、開いているすべてのコンソールに表示されます。
EMERG:hana:quickCheck:HANA-SPS_HDB00:136363:WARNING: A temporary communication failure has occurred between servers hana2-1 and hana2-2. Manual intervention is required in order to minimize the risk of data loss. To resolve this situation, please take one of the following resource hierarchies out of service: HANA-SPS_HDB00 on hana2-1 or HANA-SPS_HDB00 on hana2-2. The server that the resource hierarchy is taken out of service on will become the secondary SAP HANA System Replication site.
推奨される解決方法:
- 各クラスターノードでデータベースを調査し、どのインスタンスに最新のデータまたは関連データが含まれているかを確認します。この確認は、データに精通している適任なデータベース管理者が行う必要があります。
- 保持する必要があるデータを含むノードのHANAリソースはLifeKeeperでアクティブ(ISP)のままであり、セカンダリレプリケーションサイトとして再登録されるノードのHANAリソース階層は、LifeKeeperで完全にOut of Serviceになります。階層のサービスを停止するノード上のHANAリソース階層の各リーフリソースを右クリックし、 [Out of Service …] をクリックします。
- SAP HANAリソース階層のサービスがOut of Serviceになると、LifeKeeperは次のquickCheck間隔(デフォルトでは2分)の間にセカンダリノードをセカンダリレプリケーションサイトとして再登録します。レプリケーションが再開されると、アクティブノードに存在しないスタンバイノードのデータは失われます。スタンバイノードがセカンダリレプリケーションサイトとして再登録されると、SAP HANA階層は高い可用性が保たれた状態に戻ります。
SAP HANAシステムレプリケーションのスプリットブレインの解決
このスプリットブレインシナリオでは、次のようなメッセージがログに出力され、問題が解決されるまで、quickCheckの間隔(デフォルトでは2分)ごとに、開いているすべてのコンソールに表示されます。
EMERG:hana:quickCheck:HANA-SPS_HDB00:136234:WARNING: SAP HANA database HDB00 is running and registered as primary master on the following servers: hana2-2, hana2-1. Manual intervention is required in order to minimize the risk of data loss. To resolve this situation, please stop database HDB00 on the standby server by running the command ‘su – spsadm -c “sapcontrol -nr 00 -function StopWait 600 5”’ on that server, allow LifeKeeper to register the standby server as a secondary replication site, then use LifeKeeper to bring resource HANA-SPS_HDB00 in-service on the intended primary replication site.
推奨される解決方法:
- 各クラスターノードでデータベースを調査して、スタンバイノードにアクティブノードには存在しない重要なデータが存在するかどうかを確認します。スプリットブレイン状態の間に重要なデータがスタンバイノードのデータベースにコミットされた場合、データをアクティブノードに手動でコピーする必要があります。これは、データに精通している適任なデータベース管理者が行う必要があります。
- 不足しているデータがスタンバイノード上のデータベースからアクティブノードにコピーされたら、LifeKeeper警告メッセージに示されているコマンドを実行して、スタンバイノード上のデータベースを停止します。
su – <sid>adm -c “sapcontrol -nr <Inst#> -function StopWait 600 5”
<sid> はHANAインストール時の小文字のSAPシステムIDで、 <Inst#> はHDBインスタンスのインスタンス番号です(例:インスタンスHDB00のインスタンス番号は00)。
- データベースが正常に停止したら、LifeKeeperは次のquickCheck間隔(デフォルトでは2分)の間にスタンバイノードをセカンダリレプリケーションサイトとして再登録します。レプリケーションが再開されると、アクティブノードに存在しないスタンバイノードのデータは失われます。スタンバイノードがセカンダリレプリケーションサイトとして再登録されると、SAP HANA階層は高い可用性が保たれた状態に戻り、クラスター内の任意のサーバーでIn Service になります。
このトピックへフィードバック