検索

3.2. SAP HANA srConnectionChanged() フックの有効化

download PDF

SAP の Implementing a HA/DR Provider に記載されているように、SAP HANA の最新バージョンでは、SAP HANA が特定のイベントの通知を送信できるようにするいわゆる "hooks" が提供されています。srConnectionChanged() フックを使用すると、HA クラスターのアクションを必要とする SAP HANA システムレプリケーションのステータスの変更が発生したことを検出する HA クラスターの機能を向上させ、偶発的なテイクオーバーが回避すべき状況でトリガーされないようにすることで、データ損失/データ破損を避けることができます。

注記

SAP HANA 2.0 SPS0 以降、および srConnectionChanged() フックをサポートするコンポーネントを提供する resource-agents-sap-hana パッケージのバージョンを使用する場合は、HA クラスターのセットアップを続行する前にフックを有効にすることが必須となります。

3.2.1. resource-agents-sap-hana パッケージのバージョンの確認

RHEL 8 のバージョンで srConnectionChanged() フックを有効にするために必要なコンポーネントを提供する resource-agents-sap-hana パッケージの正しいバージョンがインストールされていることを確認してください。詳細は、ソリューション記事 How can the srConnectionChanged() hook be used to improve the detection of situations where a takeover is required, in a Red Hat Pacemaker cluster managing HANA Scale-up or Scale-out System Replication?

3.2.2. すべての SAP HANA インスタンスで srConnectionChanged() フックのアクティブ化

注記

srConnectionChanged() フックをアクティブ化する手順は、すべての HA クラスターノード上の SAP HANA インスタンスごとに実行する必要があります。

  1. 両方のノードの HA クラスターを停止します (このコマンドは 1 つの HA クラスターノードでのみ実行する必要があります)。

    [root]# pcs cluster stop --all

    すべての SAP HANA インスタンスが完全に停止していることを確認します。

  2. 各 SAP HANA インスタンスの /hana/shared/myHooks ディレクトリーにフックスクリプトをインストールし、すべてのノードで正しい所有権があることを確認します (rh1adm をSAP HANA インスタンスの管理ユーザーのユーザー名に置き換えます)。

    [root]# mkdir -p /hana/shared/myHooks
    [root]# cp /usr/share/SAPHanaSR/srHook/SAPHanaSR.py /hana/shared/myHooks
    [root]# chown -R rh1adm:sapsys /hana/shared/myHooks
  3. 各ノードの SAP HANA global.ini ファイルを更新して、(ファイル /hana/shared/RH1/global/hdb/custom/config/global.ini などの) 両方の SAP HANA インスタンスでフックスクリプトを使用できるようにします。

    [ha_dr_provider_SAPHanaSR]
    provider = SAPHanaSR
    path = /hana/shared/myHooks
    execution_order = 1
    
    [trace]
    ha_dr_saphanasr = info
  4. 各 HA クラスターノードで、次のコマンドを実行し、以下のコンテンツを追加することで、ファイル /etc/sudoers.d/20-saphana を作成し、srConnectionChanged() フックが呼び出された際にフックスクリプトがノード属性を更新できるようにします。

    [root]# visudo -f /etc/sudoers.d/20-saphana
    
    Cmnd_Alias DC1_SOK = /usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC1 -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias DC1_SFAIL = /usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC1 -v SFAIL -t crm_config -s SAPHanaSR
    Cmnd_Alias DC2_SOK = /usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2 -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias DC2_SFAIL = /usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2 -v SFAIL -t crm_config -s SAPHanaSR
    rh1adm ALL=(ALL) NOPASSWD: DC1_SOK, DC1_SFAIL, DC2_SOK, DC2_SFAIL
    Defaults!DC1_SOK, DC1_SFAIL, DC2_SOK, DC2_SFAIL !requiretty

    rh1 をSAP HANA インストールの小文字の SID に置き換え、DC1DC2 を SAP HANA サイト名に置き換えます。

    Defaults 設定が必要な理由の詳細は、The srHook attribute is set to SFAIL in a Pacemaker cluster managing SAP HANA system replication, even though replication is in a healthy state を参照してください。

  5. HA クラスターを起動せずに、両方の HA クラスターノードで SAP HANA インスタンスを手動で起動します。

    [rh1adm]$ HDB start
  6. フックスクリプトが期待どおりに動作していることを確認します。SAP HANA インスタンスを停止するなど、フックをトリガーするための何らかのアクションを実行します。次に、以下のような方法を使用して、フックが何かを記録したかどうかを確認します。

    [rh1adm]$ cdtrace
    [rh1adm]$ awk '/ha_dr_SAPHanaSR.*crm_attribute/ { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_*
    2018-05-04 12:34:04.476445 ha_dr_SAPHanaSR SFAIL
     2018-05-04 12:53:06.316973 ha_dr_SAPHanaSR SOK
    [rh1adm]# grep ha_dr_ *
    注記

    SAP HANA フックが正しく動作していることを確認する方法の詳細は、SAP ドキュメント Install and Configure a HA/DR Provider Script 参照してください。

  7. フックの機能が確認されたら、HA クラスターを再度起動できます。

    [root]# pcs cluster start --all
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.