3.2. 启用 SAP HANA srConnectionChanged () hook


如 SAP 实施 HA/DR 提供程序 中所述,SAP HANA 的最新版本提供了所谓的"hooks",允许 SAP HANA 向某些事件发送通知。srConnectionChanged () hook 可用于改进 HA 集群在发生 SAP HANA 系统复制状态更改时检测的能力,这需要 HA 集群采取行动,并避免数据丢失/数据损坏,防止意外接管这种情况。

注意

当使用 SAP HANA 2.0 SPS0 或更高版本以及 resource-agents-sap-hana 软件包的版本时,提供用于支持 srConnectionChanged () hook 的组件,在继续 HA 集群设置前,必须启用 hook。

3.2.1. 验证 resource-agents-sap-hana 软件包的版本

请验证是否安装了 RHEL 9 版本所需的 resource-agents-sap-hana 软件包的正确版本,以便在 Red Hat Pacemaker 集群中为 RHEL 9 启用 srConnectionChanged () hook,如 How can can can the srConnectionChanged ()hook 可用于改进需要接管的情况的检测,在 Red Hat Pacemaker 集群中,管理 HANA Scale-up 或 Scale-out 系统复制?

注意

需要为所有 HA 集群节点上的每个 SAP HANA 实例执行 srConnectionChanged () hook 的步骤。

  1. 停止两个节点上的 HA 集群(只需要在一个 HA 集群节点上运行):

    [root]# pcs cluster stop --all
    Copy to Clipboard Toggle word wrap

    验证所有 SAP HANA 实例都已完全停止。

  2. 更新每个节点上的 SAP HANA global.ini 文件,以启用 SAP HANA 实例(例如,在 /hana/shared/RH1/global/hdb/custom/config/global.ini文件中)使用 hook 脚本:

    [ha_dr_provider_SAPHanaSR]
    provider = SAPHanaSR
    path = /usr/share/SAPHanaSR/srHook
    execution_order = 1
    
    [trace]
    ha_dr_saphanasr = info
    Copy to Clipboard Toggle word wrap
  3. 在每个 HA 集群节点上,运行以下命令来创建文件 /etc/sudoers.d/20-saphana,并添加以下内容以允许 hook 脚本在调用 srConnectionChanged () hook 时更新节点属性。

    [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
    Copy to Clipboard Toggle word wrap

    rh1 替换为您的 SAP HANA 安装的小写 SID,并将 DC1DC2 替换为您的 SAP HANA 站点名称。

    有关为什么需要 Defaults 设置的更多信息,请参阅 srHook 属性在管理 SAP HANA 系统复制的 Pacemaker 集群中设置为 SFAIL,即使复制处于健康状态

  4. 在两个 HA 集群节点上手动启动 SAP HANA 实例,而无需启动 HA 集群:

    [rh1adm]$ HDB start
    Copy to Clipboard Toggle word wrap
  5. 验证 hook 脚本是否按预期工作。执行一些操作来触发 hook,如停止 SAP HANA 实例。然后,使用如下方法检查 hook 是否记录任何内容:

    [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_ *
    Copy to Clipboard Toggle word wrap
    注意

    有关如何验证 SAP HANA hook 是否正常工作的更多信息,请参阅 SAP 文档: 安装和配置 HA/DR 提供程序脚本

  6. 验证 hook 的功能后,可以再次启动 HA 集群。

    [root]# pcs cluster start --all
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat