ローカルリカバリーポリシー
HANA システムレプリケーション(HSR)を利用した高い可用性の SAP HANA デプロイメントでは、アクティブデータベースインスタンスからのデータが、スタンバイノード上で実行中のセカンダリーデータベースインスタンスに継続的にレプリケーションされます。この実行中のセカンダリーインスタンスはウォームスタンバイとして機能し、データベースの In-Service 中に起動するという時間のかかる要件を伴わずに、SAP HANA リソースをスタンバイノードにスイッチオーバー、フェイルオーバーする機能を提供します。
このため、特に大規模なデータベースインスタンスを保護する場合、障害が検出されたときにアクティブノードでデータベースを再起動するのではなく、直ちにスタンバイノードにフェイルオーバーした方が高速に処理できる場合があります。
この動作は、SAP HANA リソースに対して LifeKeeper のローカルリカバリーポリシーを設定することで実行できます。以下で、ローカルリカバリーポリシーの設定方法をいくつか説明します。
リソース作成中のローカルリカバリーポリシーの設定
SAP HANA リソースの作成中にダイアログが表示され、リソースのローカルリカバリーを有効または無効にすることができます。リソースを作成するノード上でローカルリカバリーの試行を許可する場合は [Enable] を、そのノード上でデータベース障害が検出された場合にローカルリカバリーをすべてスキップし、リソース階層を直ちにスタンバイノードにフェイルオーバーする場合は [Disable] を選択します。
リソース拡張中のローカルリカバリーポリシーの設定
SAP HANA リソースの拡張中にダイアログが表示され、リソースのローカルリカバリーを有効または無効にすることができます。リソースが拡張されるノード上でローカルリカバリーの試行を許可する場合は [Enable] を、そのノード上でデータベース障害が検出された場合にローカルリカバリーをすべてスキップし、リソース階層を直ちにスタンバイノードにフェイルオーバーする場合は [Disable] を選択します。
LifeKeeper GUI を使用したローカルリカバリーポリシーの設定
LifeKeeper GUI で SAP HANA リソースを右クリックし、 [Enable/Disable Local Recovery…] を選択すると、選択したノード上のリソースのローカルリカバリーを有効または無効にするためのダイアログが表示されます。
LKCLI を使用したローカルリカバリーポリシーの設定
次の LKCLI コマンドを使用して、コマンドが実行されるノード上の SAP HANA リソースのローカルリカバリーを有効または無効にすることができます。コマンドの <HANA Tag> を、構成する SAP HANA リソースのタグ名に置き換えます。
# /opt/LifeKeeper/bin/lkcli resource config hana --tag <HANA Tag> --set_local_recovery_policy <enable|disable>
LKPolicy を使用したローカルリカバリーポリシーの設定
LKPolicy ユーティリティを使用して、ローカルリカバリーポリシーを作成できます。次のコマンドを実行して、コマンドが実行されるノード上の特定のリソースのローカルリカバリーを無効にします。
# /opt/LifeKeeper/bin/lkpolicy --set-policy LocalRecovery --off tag=<Resource Tag>
次のコマンドを実行して、コマンドが実行されるノード上の特定のリソースのローカルリカバリーを有効にします。
# /opt/LifeKeeper/bin/lkpolicy --set-policy LocalRecovery --on tag=<Resource Tag>
Temporal Recovery ポリシー
状況によっては、必要なデータベースプロセスがすべて正常に開始できたにもかかわらず、その後すぐにノード側の問題により障害が発生する場合があります。SAP HANA リソースに対してローカルリカバリーが有効になっている場合、このような状況では、quickCheck の失敗とローカルリカバリーの成功が延々と繰り返される可能性があります。そのため、短時間のうちに何度もローカルリカバリーを試みた場合、すべての試行が成功したとしても、ノードの問題が示唆されることがあります。
このように延々と続くローカルリカバリーサイクルを回避するために、 LKPolicy ユーティリティを使用して、各ノードにTemporal Recovery ポリシーを確立することができます。
Temporal Recovery ポリシーを使用するとY 分以内に X 回のローカルリカバリーの試行が発生した場合、LifeKeeper は障害の発生したノードからスタンバイノードにすべてのリソース階層を直ちにフェイルオーバーします(X と Y はポリシーによって設定されたパラメーターです)。
例として、次のコマンドをノードで実行することで、10分以内にそのノードで3回のローカルリカバリーを実行すると、フェイルオーバーを実行するトリガーとなる Temporal Recovery ポリシーを設定できます。
# /opt/LifeKeeper/bin/lkpolicy --set-policy TemporalRecovery --on recoverylimit=3 period=10
次のコマンドを実行すると、既存のTemporal Recovery ポリシーを削除できます。
# /opt/LifeKeeper/bin/lkpolicy --remove-policy TemporalRecovery
このトピックへフィードバック