SAP HANA リソースのスイッチオーバー
プライマリーデータベースインスタンスのスイッチオーバーが開始されると、SAP HANA Recovery Kit は次の手順を実行します。
- データベースインスタンスを以前のプライマリーノードで停止します。
- 新しいプライマリーノード(以前のセカンダリーノード)でSAP HANA システムレプリケーションのテイクオーバーを実行します。
- 各スタンバイノード(以前のプライマリーノードを含む)は、新しいプライマリーサイトに SAP HANA System Replication のセカンダリーサイトとして再登録されます。
- データベースインスタンスを、以前のプライマリーノードで起動します。
ERROR:hana:restore:HANA-SPS_HDB00:136266:The contents of SAP HANA database $instance may not be in sync on $me. To protect the data, LifeKeeper will not restore $tag. Please restore the resource on the previous source server to allow the resync to complete. To force the resource in-service use “lkcli hana force --sys $me --tag $tag” or the GUI option “Force In Service”.
SAP HANA リソースを in-service にしているときにこのメッセージが表示された場合、プライマリーデータベースインスタンスが停止したときに、SAP HANA システムレプリケーションが同期していなかったことを意味します。 したがって、セカンダリーデータベースサーバーにまだ複製されていないデータがプライマリーデータベースサーバーに存在する可能性があります。このため、LifeKeeperはセカンダリーサーバーがプライマリーレプリケーションの役割を引き継ぐことを許可しません。この場合、SAP HANA リソース階層を以前のプライマリーサーバーで In Service に戻し、再同期を完了することを推奨します。
以前のプライマリーサーバーがダウンして回復できない場合、詳細は SAP HANA 階層の restore 失敗 を参照してください。
SAP HANA データベースの Takeover with Handshake
“Takeover with handshake” は、SAP HANA 2.0 SPS04 以降に追加された機能で、新しいデータベースホスト上で SAP HANA システムレプリケーションの引き継ぎを行う前にプライマリーデータベースを (完全に停止するのではなく)一時停止することで、スイッチオーバー時のプライマリーデータベースのダウンタイムを抑えます。SAP HANA Recovery Kit で “Takeover with handshake” を実施する場合は、 Takeover with Handshake を参照してください。
SAP HANA データベースの停止
LifeKeeper で SAP HANA リソースが Out of Service になると、プライマリーデータベースインスタンスのみが停止します。セカンダリーデータベースインスタンスは、HANAリソース階層のスイッチオーバーまたはフェイルオーバー中のダウンタイムを最小限に抑えるために引き続き実行されます。
例外的な動作を引き起こす2つの特別なケースがあります。
- SAP HANA リソースが Out of Service になっているシステム上において、LifeKeeper フラグ !volatile!hana_leave_db_running_<HANA Tag> が設定されている場合は、LifeKeeper は Out of Service の操作中にデータベースインスタンスを停止しません。このフラグが意図せず設定されている場合は、下記のコマンドを使用して削除することができます。:
/opt/LifeKeeper/bin/flg_remove -f ‘!volatile!hana_leave_db_running_<HANA Tag>’
- SAP HANA リソースが Out of Service になっているシステムにおいてデータベースが一時停止している場合、LifeKeeper は Out of Service の操作中にデータベースインスタンスを停止しません。一時停止されたデータベースインスタンスを起動し続けることで、必要に応じて再開するオプションを残しておくことができます。このシナリオは、LifeKeeper の外部でデータベース管理者による “Takeover with handshake” が手動で行われた際に最も発生しやくなります。必要に応じて一時停止されたデータベースインスタンスは下記のコマンドを使用して手動で停止することが可能です。:
su – <sid>adm -c “sapcontrol -nr <InstNum> -function StopWait 600 5”
<sid> はHANAインストール時に使用した小文字のSAPシステムID、<InstNum> はHDBインスタンス番号です。
すべての SAP HANA データベースの停止(メンテナンスモード)
このオプションを選択すると、プライマリー HANA リソースが Out of Service になり、HANA リソースクラスター内のすべての HANA データベースインスタンスが停止します。このオプションにより、バックアップマシンにすぐにフェイルオーバー/スイッチオーバーされる可能性があるため、細心の注意を払って実行する必要があります。 注記: このオプションは、メンテナンス期間中など、セカンダリーデータベースインスタンスも停止する必要がある場合にのみ選択してください。
このオプションを使用するには、HANA リソース階層で次の手順を実行します
- 左パネルの下の HANA リソースまたは In Service のサーバーのいずれかを右クリックして、 [Out of Service – Stop HDB on All Nodes] オプションを選択します。
- HANA リソースを確認し、ダイアログボックスに表示される指示に従います。 [Stop All SAP HANA DBs] をクリックしてプロセスを開始します。
- プロセスが終了したら、 [Finish] をクリックしてプロセスを完了します。
- SAP HANA リソースの最終状態は次のように表示されます。
- すべてのメンテナンス作業が完了したら、最後のプライマリーシステムで SAP HANA リソース階層を In Service にしてください。
保護対象の SAP HANA データーベースは、SAP HANA リソースが現在 In Service (ISP) になっているサーバー上で次のコマンドを実行することで クラスター内の全てのサーバー上で停止することもできます。
/opt/LifeKeeper/bin/hana_stop_all_dbs -t <HANA Resource Tag>
このトピックへフィードバック