SAP HANAリソースの restore が、データの不整合や古いデータのために失敗する

SAP HANA Recovery Kit は、一貫性のないデータまたは古いデータを持つ可能性のあるシステムで SAP HANA リソース (データベース) を in-service にすることを許可しません。 データの一貫性を維持するために、次のフラグが使用されます。

フラグ名 説明
!HANA_DATA_OUT_OF_SYNC_<tag> このフラグは、システム上のデータが最新でないか、または矛盾している可能性があることを判断するために、使用されます。 このフラグは、リソースがシステム上で in-service になると、すべてのスタンバイシステムで作成されます。 このフラグは、レプリケーションが確立され、そのシステムの HSR ステータスが “ACTIVE” になると削除されます。
!HANA_LAST_OWNER_<tag> このフラグは、データが in-service (Primary) であり、同期されていない可能性があるデータの場所を示すために、使用されます。 このフラグは、 in-service のリソースを持つシステムで作成されます。 システム上でリソースが停止 (out-of-service) され、すべてのスタンバイシステムが同期している (HSR ステータスが “ACTIVE” ) 場合、フラグは削除されます。
!HANA_DATA_CONSISTENCY_UNKNOWN_<tag> このフラグは、システム上のデータが最新かどうかを判断できない場合に、使用されます。このフラグは、いずれかのシステムが稼働中か、またはいずれかのシステムが LAST_OWNER フラグを持っている場合、起動時にシステムに作成されます。 LifeKeeper の起動時に、他のすべてのシステムがアクセス可能であり、 in-service となっているシステムがなく、LAST_OWNER フラグが設定されているシステムがない場合、すべてのシステムで DATA_CONSISTENCY_UNKNOWN フラグが削除されます。このフラグは、スタンバイシステムへのレプリケーションが確立されるため、復元中に削除されます。
!HANA_STARTUP_DONE_<tag> このフラグは、スタートアップルーチンと in-service 操作との間の競合を回避するために使用されます。このフラグは、起動スクリプトが完了して、LifeKeeper の初期化が行われている間に in-service を許可するときに作成されます。 in-service 操作が完了すると、このフラグは削除されます。

LifeKeeper の起動時に、SAP HANA Recovery Kit はクラスター内の各システムのリソースステータスをチェックします。

  • いずれかのシステムで SAP HANA リソースが in-service の場合、起動すると、稼働中のシステムの quickCheck プロセスがデータを同期します。
  • クラスター内のいずれかのシステムが起動時に応答しない場合、SAP HANA Recovery Kit は、すべてのシステムが使用可能になるまで待機してから、SAP HANA リソースを in-service にする前にデータの一貫性を判断します。
    • すべてのシステムがクラスターに再参加すると、LifeKeeper は自動的に起動するように設定された(AUTORES_ISP が設定されている)システムでリソースを in-service にします。複数のサーバーが自動的に restore するように設定されている場合、システム管理者はリソースを強制的に in-service にするシステムを決定する必要があります。
    • すべてのシステムが適したタイミングでクラスターに再参加できない場合、管理者は SAP HANA リソースを強制的に in-service にすることを選択できます。 WARNING: これはダウンしたシステムに非同期の変更がないことを管理者が認識している場合、またはそれらの変更を意図的に失う場合にのみ行う必要があります。
  • 同期されていないデータを持つシステムが 2 つ以上ある場合、システム管理者は、最新のデータを持つシステムを決定し、リソースを強制的に稼働させる必要があります。 これによりすべてのシステムが、強制的に in-service となったシステム上のデータと同期されます。

関連メッセージ

“last owner” に同期されていないデータがあるときに HANA を開始する

ERROR:hana:restore:HANA-SPS_HDB00:136280:The resource HANA-SPS_HDB00 protecting SAP HANA database HDB00 has the last owner flag on node1 indicating there are changes on node1 that have not replicated to all systems.  The resource should be brought in-service on node1 to allow the data to replicate to all systems.

この状況は、すべてのデータがクラスター内のすべてのシステムと同期されていないときに、node1 上の SAP HANA リソースが out-of-service になった場合に発生する可能性があります。 システム node2 は、リソースが out-of-service となった時に起動され、そのデータが最新かどうかを判断できませんでした。 node1 でリソースを in-service にして、node2 とデータを同期する必要があります。

SAP HANA リソースが in-service となっていないときに複数のサーバーが再起動する

ERROR:hana:restore:HANA-SPS_HDB00:136282:The SAP HANA database HDB00 consistency can not be determined on node2. The resource HANA-SPS_HDB00 can not be brought in-service until all servers are available to determine consistency of the data. To protect the data, LifeKeeper will not restore HANA-SPS_HDB00 on node2. To force the resource in-service use "lkcli hana force --sys node2 --tag HANA-SPS_HDB00" or the GUI option "Force In Service".

この状況は、node2 が起動し、SAP HANA リソースがどのシステムでも in-service の状態ではなく、クラスター内に応答していないシステムが 1 つ以上ある場合に発生する可能性があります。起動サーバーは、応答しないシステムに非同期の内容があるかどうかを判断できません。SAP HANA Recovery Kit は、すべてのシステムが利用可能になるまで、SAP HANA リソースが node2 で in-service となることを許可しません。Recovery Kit は、システム上のデータベースが一貫しているかどうか、または最新のデータを持っているかどうかを判断できない場合、フラグ ‘!HANA_DATA_CONSISTENCY_UNKNOWN_<Tag>’ を使用します。 一貫性が確認されると、フラグは削除されます。

リソースが起動時に自動的に開始するように設定されれいて(リソースインスタンスで AUTORES_ISP が設定されている)、起動時にこのエラーが発生した場合、クラスター内のすべてのシステムがオンラインになると、restore が自動的に行われます。

SAP HANA リソースを強制的に in-service にする

エラーメッセージに記載された lkcli コマンドを使用するか、GUI オプション “Force In Service” を使用してリソースを強制的にオンラインにすると、次のメッセージが表示されます。

ERROR:hana:restore:HANA-SPS_HDB00:136285:The SAP HANA database HDB00 consistency can not be determined on node2.
INFO:hana:restore:HANA-SPS_HDB00:136286:The resource HANA-SPS_HDB00 protecting SAP HANA database HDB00 is being forced in-service.

データが同期されていない複数のサービス

ERROR:hana:restore:HANA-SPS_HDB00:136281:The resource HANA-SPS_HDB00 protecting SAP HANA database HDB00 has the last owner flag on node1, node2 indicating there are changes on each system that were not replicated to all systems.  The resource should be brought in-service on the system with the most up-to-date data to allow the data to replicate to all systems.

この状況は、node1 のリソースが in-service の状態で、障害が発生し再起動しない場合に発生する可能性があります。リソースは node2 にフェイルオーバーし、リソースを in-service にしてしばらく動作しますが、その後失敗します。この時点で、両方のサーバーが SAP HANA リソースの “last owners” (最後の所有者) であり、変更が同期されていない可能性があります。 node1node2 が修復されて再起動されると、LifeKeeper は SAP HANA リソースを in-service にすることを許可しません。システム管理者は、最良のデータを使用してシステム上でリソースを強制的に in-service にさせる必要があります。
‘!HANA_LAST_OWNER_<Tag>’ フラグを使用して、データベースがデータベースのソースとして最後に使用された場所を特定します。 この場合、両方のシステムにこのフラグがあります。 すべてのサーバーでデータが同期しているときにリソースが停止して out-of-service になると、 “last owners” フラグが削除されます。

リソースが in-service にならないようにする

ERROR:hana:restore:HANA-SPS_HDB00:136284:To protect the data, LifeKeeper will not restore HANA-SPS_HDB00 on node1. To force the resource in-service use "lkcli hana force --sys node1 --tag HANA-SPS_HDB00" or the GUI option "Force In Service".

このメッセージは、LifeKeeper がリソースを in-service にすることが安全でないと判断した場合に表示されます。 以前のエラーメッセージは安全でない問題を示します。 メッセージに示されている指示に従って、必要に応じてリソースを強制的に in-service にしてください。

リソースを強制的に in-service にする

リソースを強制的に in-service にすると、次のメッセージが表示されます。

INFO:hana:restore:HANA-SPS_HDB00:136286:The resource HANA-SPS_HDB00 protecting SAP HANA database HDB00 is being forced in-service.

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信