すべてのプロダクト
Search
ドキュメントセンター

SAP:SAP 高可用性環境メンテナンスガイド

最終更新日:May 01, 2025

バージョン管理

バージョン

改訂日

説明

リリース日

1.0

2019/4/15

1.1

2019/7/30

1. 障害カウントの説明が更新されました。

2. 起動およびシャットダウンシーケンスの説明が更新されました。

2019/7/30

SAP 高可用性環境メンテナンスの概要

このトピックは、SUSE HAE 12 クラスタデプロイメントまたは SAP HANA Elastic Compute Service (ECS) インスタンスに基づく SAP システムアプリケーションのメンテナンス操作が必要なシナリオに適用されます。たとえば、ECS インスタンスの仕様のスケールアップまたはスケールダウン、SAP アプリケーションまたはデータベースのアップグレード、プライマリノードとセカンダリノードの定期メンテナンスの実行、ノードフェールオーバーシナリオの前処理と後処理の処理などです。

SUSE HAE によって管理される SAP システムの場合、クラスタノードでメンテナンスタスクを実行する必要がある場合は、ノードで実行されているリソースを停止するか、リソースを移動するか、ノードをシャットダウンまたは再起動する必要があります。さらに、クラスタ内のリソースの制御を一時的に引き継ぐ必要がある場合があります。

このトピックで提供されるシナリオでは、SAP HANA 高可用性を例として使用していますが、同様のメンテナンス操作が SAP アプリケーション高可用性にも適用されます。

重要

このトピックは、SUSE および SAP が提供する標準のインストールおよび管理ドキュメントの代わりになるものではありません。高可用性環境のメンテナンス方法の詳細については、SUSE および SAP の公式ドキュメントを参照してください。

SUSE HAE 操作ガイド:

SAP HANA HSR 構成ガイド:

SAP 高可用性環境メンテナンスのシナリオ

SUSE Pacemaker は、さまざまなメンテナンスニーズに対応するさまざまなオプションを提供します。

クラスタのモードをメンテナンスに設定する

グローバルクラスタプロパティ maintenance-mode を使用して、すべてのリソースを一度にメンテナンス状態に切り替えることができます。その後、クラスタはリソースの監視を停止します。

ノードのモードをメンテナンスに設定する

指定されたノードで実行されているすべてのリソースを一度にメンテナンス状態に切り替えることができます。その後、クラスタはリソースの監視を停止します。

ノードのモードをスタンバイに設定する

スタンバイモードのノードはリソースを実行できません。リソースを実行できる他のノードがない場合、ノードで実行されているすべてのリソースが削除または停止されます。さらに、ロールが Stopped に設定されている操作を除き、ノードのすべての監視操作も停止されます。

別のノードで実行されているサービスの提供を継続しながら、クラスタ内のノードを停止する必要がある場合は、このオプションを使用できます。

リソースのモードをメンテナンスに設定する

リソースをメンテナンスモードに切り替えると、リソースに対して監視アクションはトリガーされません。このリソースによって管理されているサービスを手動で変更する必要があり、変更中にクラスタがリソースで監視操作を実行しないようにする場合は、このオプションを使用できます。

リソースを非管理モードに設定する

is-managed プロパティを使用して、クラスタスタック管理からリソースを一時的に解放できます。これは、リソースによって管理されているサービスを手動で変更できることを意味します。ただし、クラスタは引き続きリソースを監視し、エラーを報告します。クラスタがリソースの監視を停止するようにするには、リソースごとのメンテナンスモードを使用します。

1. プライマリノードの例外のトラブルシューティング

重要

プライマリノードで例外が発生すると、HAE はフェールオーバーをトリガーして、セカンダリノード (ノード B) をプライマリロールに昇格させます。ただし、元のプライマリノード (ノード A) は引き続きプライマリロールを保持します。したがって、修復後に元のプライマリノード (ノード A) で Pacemaker サービスを再起動する前に、HANA System Replication (HSR) を手動で再構成して、ノード A をセカンダリノードとして登録する必要があります。

説明

この例では、元のプライマリノードは saphana-01 で、セカンダリノードは saphana-02 です。

1.1 SUSE HAE の通常状態のクエリ

ノードにログインし、crm status コマンドを実行して、HAE の通常状態をクエリします。

# crm status
/* HAE のステータスを表示 */

プライマリノードで例外が発生した後、HAE はセカンダリノードをプライマリノードに自動的に昇格させます。

# crm status
/* HAE のステータスを表示 */

1.2 HSR を再度登録して、元のプライマリノードの障害を修正する

警告

HSR を再構成する前に、正しいプライマリノードとセカンダリノードを使用していることを確認してください。そうしないと、データが上書きされたり失われたりする可能性があります。

元のプライマリノードに SAP HANA インスタンスユーザーとしてログインし、HSR を構成します。

h01adm@saphana-01:/usr/sap/H01/HDB00> hdbnsutil -sr_register --remoteHost=saphana-02 --remoteInstance=00 --replicationMode=syncmem --name=saphana-01 --operationMode=logreplay
/* サイトを追加 */
/* 非アクティブなネームサーバーを確認 */
/* ネームサーバー saphana-01:30001 が応答していません。 */
/* 情報を収集 */
/* ローカル ini ファイルを更新 */
/* 完了 */

1.3 SBD のステータスを確認する

ノードスロットが clear 状態ではない場合は、ステータスを clear に切り替える必要があります。

# sbd -d /dev/vdc list
/* SBD のステータスを表示 */
# sbd -d /dev/vdc message saphana-01 clear
# sbd -d /dev/vdc message saphana-02 clear

# sbd -d /dev/vdc list
/* SBD のステータスをクリア */

1.4 Pacemaker を起動する

Pacemaker を起動するには、次のコマンドを実行します。Pacemaker が起動すると、HAE は SAP HANA を自動的に起動します。

# systemctl start pacemaker
/* Pacemaker を起動 */

この場合、元のセカンダリノードがプライマリノードになります。次のコードは、HAE のステータスを示しています。

# crm status
/* HAE のステータスを表示 */

1.5 SAP HANA HSR のステータスを確認する

  • SAP HANA の次の python スクリプトを使用します。

    プライマリノードに SAP HANA インスタンスユーザーとしてログインします。すべての SAP HANA プロセスの レプリケーション状態アクティブ が に設定されていることを確認します。

    saphana-02:~ # su - h01adm
    h01adm@saphana-02:/usr/sap/H01/HDB00> cdpy
    h01adm@saphana-02:/usr/sap/H01/HDB00/exe/python_support> python systemReplicationStatus.py 
    /* システムレプリケーションステータスを表示 */
    
  • SUSE が提供する SAP HAN SR ツールを使用してレプリケーションステータスを確認し、セカンダリノードの sync_stateSOK であることを確認します。

    saphana-02:~ # SAPHanaSR-showAttr
    /* システムレプリケーション属性を表示 */
    

1.6 (オプション) 障害カウントをリセットする

リソースに障害が発生した場合、リソースは自動的に再起動されますが、障害が発生するたびにリソースの障害カウントが増加します。リソースに migration-threshold を構成した場合、障害の数がしきい値に達するまで、ノードはリソースを実行できません。したがって、障害カウントを手動でクリアする必要があります。

次のコマンドを実行して、障害カウントをクリアできます。

# crm resource cleanup [リソース名] [ノード]
/* リソースの障害カウントをクリア */

たとえば、ノード saphana-01 のリソース rsc_SAPHana_HDB が修正されたとします。この場合、次のコマンドを実行して、リソースの監視アラートをクリーンアップする必要があります。

crm resource cleanup rsc_SAPHana_HDB saphana-01
/* リソース rsc_SAPHana_HDB の saphana-01 ノードの障害カウントをクリア */

2. セカンダリノードの例外のトラブルシューティング

重要

セカンダリノードでエラーが発生した場合、プライマリノードは影響を受けず、プライマリセカンダリスイッチオーバーはトリガーされません。セカンダリノードが障害から回復し、Pacemaker が起動すると、SAP HANA が起動されます。プライマリロールとセカンダリロールは変更されず、手動による介入は必要ありません。

説明

この例では、元のプライマリノードは saphana-02 で、セカンダリノードは saphana-01 です。

2.1 HAE の通常状態のクエリ

SUSE HAE の通常状態のノードにログインし、crm status コマンドを実行して、HAE の通常状態をクエリします。

# crm status
/* HAE のステータスを表示 */

2.2 Pacemaker を再起動する

セカンダリノードが障害から回復した後、SBD を確認し、Pacemaker を再起動します。

# systemctl start pacemaker
/* Pacemaker を再起動 */

HSR は元のプライマリ/セカンダリ関係を維持します。次のコードは、HAE のステータスを示しています。

# crm status
/* HAE のステータスを表示 */

2.3 SAP HANA HSR のステータスを確認する

詳細については、「1.5 SAP HANA HSR のステータスを確認する」をご参照ください。

2.4 (オプション) 障害カウントをリセットする

3. メンテナンスのためにプライマリノードとセカンダリノードを停止する

重要

クラスタのモードをメンテナンスに設定し、セカンダリノードとプライマリノードを順番にシャットダウンします。

説明

この例では、元のプライマリノードは saphana-02 で、セカンダリノードは saphana-01 です。

3.1 HAE の通常状態のクエリ

SUSE HAE の通常状態のノードにログインし、crm status コマンドを実行して、HAE の通常状態をクエリします。

# crm status
/* HAE のステータスを表示 */

3.2 クラスタとマスター/スレーブリソースセットのモードをメンテナンスに設定する

プライマリノードにログインし、クラスタのモードをメンテナンスに設定します。

# crm configure property maintenance-mode=true
/* クラスタをメンテナンスモードに設定 */

マスター/スレーブリソースセットのモードをメンテナンスに設定します。このトピックでは、rsc_SAPHana_HDB と rsc_SAPHanaTopology_HDB を使用します。

# crm resource maintenance rsc_SAPHana_HDB true
/* リソース rsc_SAPHana_HDB をメンテナンスモードに設定 */

# crm resource maintenance rsc_SAPHanaTopology_HDB true
/* リソース rsc_SAPHanaTopology_HDB をメンテナンスモードに設定 */

次のコードは、HAE のステータスを示しています。

# crm status
/* HAE のステータスを表示 */

3.3 プライマリノードとセカンダリノードの SAP HANA を停止し、ECS インスタンスを停止する

ノードに SAP HANA インスタンスユーザーとしてログインします。セカンダリノードの SAP HANA を停止してから、プライマリノードの SAP HANA を停止します。

saphana-01:~ # su - h01adm
h01adm@saphana-01:/usr/sap/H01/HDB00> HDB stop
/* セカンダリノードの SAP HANA を停止 */

saphana-02:~ # su - h01adm
h01adm@saphana-02:/usr/sap/H01/HDB00> HDB stop
/* プライマリノードの SAP HANA を停止 */

3.4 ECS インスタンスの SAP HANA プライマリノードとセカンダリノードを起動し、クラスタとリソースセットを通常モードに復元する

プライマリノードとセカンダリノードに順番にログインし、次のコマンドを実行して Pacemaker を起動します。

# systemctl start pacemaker
/* Pacemaker を起動 */

クラスタとリソースセットを通常モードに復元します。

# crm configure property maintenance-mode=false
/* クラスタを通常モードに復元 */
# crm resource maintenance rsc_SAPHana_HDB false
/* リソース rsc_SAPHana_HDB を通常モードに復元 */
# crm resource maintenance rsc_SAPHanaTopology_HDB false
/* リソース rsc_SAPHanaTopology_HDB を通常モードに復元 */

SUSE HAE クラスタは、プライマリノードとセカンダリノードの SAP HANA を自動的に起動し、元のプライマリロールとセカンダリロールをそのまま維持します。

次のコードは、HAE のステータスを示しています。

# crm status
/* HAE のステータスを表示 */

3.5 SAP HANA HSR のステータスを確認する

詳細については、「1.5 SAP HANA HSR のステータスを確認する」をご参照ください。

3.6 (オプション) 障害カウントをリセットする

詳細については、「1.6 (オプション) 障害カウントをリセットする」をご参照ください。

4. メンテナンスのためにプライマリノードを停止する

重要

このセクションでは、プライマリノードのモードをスタンバイに設定します。クラスタはスイッチオーバーをトリガーします。

説明

この例では、元のプライマリノードは saphana-02 で、セカンダリノードは saphana-01 です。

4.1 SUSE HAE の通常状態のクエリ

ノードにログインし、crm status コマンドを実行して、HAE の通常状態をクエリします。

# crm status
/* HAE のステータスを表示 */

4.2 プライマリノードのモードをスタンバイに設定する

このトピックでは、プライマリノードは saphana-02 です。

# crm node standby saphana-02
/* ノード saphana-02 をスタンバイモードに設定 */

クラスタは saphana-02 の SAP HANA を停止し、saphana-01 の SAP HANA をプライマリノードとして設定します。

次のコードは、HAE のステータスを示しています。

# crm status
/* HAE のステータスを表示 */

4.3 ECS インスタンスを停止し、ダウンタイムメンテナンスタスクを実行する

4.4 メンテナンスノードを起動し、HSR を再度登録する

メンテナンスタスクを実行するノードにログインし、HSR を登録します。

# hdbnsutil -sr_register --remoteHost=saphana-01 --remoteInstance=00 --replicationMode=syncmem --name=saphana-02 --operationMode=logreplay
/* HSR を登録 */

4.5 Pacemaker を起動し、スタンバイノードをオンラインモードに復元する

# systemctl start pacemaker
/* Pacemaker を起動 */
# crm node online saphana-02
/* ノード saphana-02 をオンラインモードに復元 */

SUSE HAE クラスタは、セカンダリノードの SAP HANA を自動的に起動します。

次のコードは、HAE のステータスを示しています。

# crm status
/* HAE のステータスを表示 */

4.6 SAP HANA HSR のステータスを確認する

詳細については、「1.5 SAP HANA HSR のステータスを確認する」をご参照ください。

4.7 (オプション) 障害カウントをリセットする

詳細については、「1.6 (オプション) 障害カウントをリセットする」をご参照ください。

5. メンテナンスのためにセカンダリノードを停止する

重要

セカンダリノードのモードをメンテナンスに設定します。

説明

この例では、元のプライマリノードは saphana-02 で、セカンダリノードは saphana-01 です。

5.1 HAE の通常状態のクエリ

SUSE HAE の通常状態のノードにログインし、crm status コマンドを実行して、HAE の通常状態をクエリします。

# crm status
/* HAE のステータスを表示 */

5.2 セカンダリノードのモードをメンテナンスに設定する

# crm node maintenance saphana-01
/* ノード saphana-01 をメンテナンスモードに設定 */

設定が有効になったら、次のコードを使用して HAE のステータスを表示します。

# crm status
/* HAE のステータスを表示 */

5.3 セカンダリノードの SAP HANA を停止し、ECS インスタンスをシャットダウンして、ダウンタイムメンテナンスタスクを実行する

セカンダリノードに SAP HANA インスタンスユーザーとしてログインします。次に、セカンダリノードの SAP HANA を停止します。

saphana-01:~ # su - h01adm
h01adm@saphana-01:/usr/sap/H01/HDB00> HDB stop
/* セカンダリノードの SAP HANA を停止 */

5.4 ECS インスタンスの SAP HANA セカンダリノードを起動し、ノードを通常モードに復元する

セカンダリノードにログインし、Pacemaker を起動します。

# systemctl start pacemaker
/* Pacemaker を起動 */

セカンダリノードを通常モードに復元します。

saphana-02:~ # crm node ready saphana-01
/* ノード saphana-01 を通常モードに復元 */

SUSE HAE クラスタは、セカンダリノードの SAP HANA を自動的に起動し、元のプライマリロールとセカンダリロールをそのまま維持します。

次のコードは、HAE のステータスを示しています。

# crm status
/* HAE のステータスを表示 */

5.5 SAP HANA HSR のステータスを確認する

詳細については、「1.5 SAP HANA HSR のステータスを確認する」をご参照ください。

5.6 (オプション) 障害カウントをリセットする

詳細については、「1.6 (オプション) 障害カウントをリセットする」をご参照ください。