3.9. 为 hdbindexserver 进程失败操作启用 SAP HANA srServiceStateChanged () hook (可选)


当 HANA 检测到 indexserver 进程时,它将通过停止并通过内置在 SAP HANA 中的内置功能来自动重新启动它。

然而,在某些情况下,服务可能需要很长时间才能"停止"阶段。在此期间,System Replication 可能会不同步,而 HANA 仍继续工作并接受新的连接。最后,该服务完成 stop-and-restart 进程并恢复。

ChkSrv.py hook 脚本无法等待这个长时间运行的重启(这可能会造成数据一致性的风险),否则 ChkSrv.py hook 脚本可以响应该情况并停止 HANA 实例,以便更快地恢复。在启用了自动故障切换的设置中,如果辅助节点处于健康状态,实例会停止会导致启动。否则,恢复将在本地继续,但强制的实例重启会加快它的速度。

在 global.ini 配置文件中配置时,SAP HANA 会为实例中的任何事件调用 ChkSrv.py hook 脚本。该脚本根据它应用到事件详情的过滤器的结果处理事件并执行操作。这样,它可以区分 在从与实例关闭过程中停止相同的进程后被 HANA 停止并重新启动的 HANA 索引 进程。

以下是可以采取的不同可能的操作:

  • ignore:此操作只是将解析的事件和决策信息写入专用日志文件,这可用于验证 hook 脚本的作用。
  • stop :此操作通过 sapcontrol 命令为实例执行安全 StopSystem
  • kill:此操作使用默认的 信号 9 执行 HDB kill-& lt;signal> 命令,可以配置它。

请注意,stop 和 kill 操作都会导致已停止的 HANA 实例,但最后的终止速度会更快。

此时,集群会注意到 HANA 资源失败,并以其配置方式对其做出反应;通常是重新启动实例,如果启用,它也负责接管。

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

请验证是否安装了 RHEL 9 版本启用 srServiceStateChanged () hook 的 resource-agents-sap-hana 软件包的正确版本,因为 Pacemaker 集群在主 HANA实例的 hdbindexserver 进程挂起/crashes 时不会触发 HANA 系统复制

注意

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

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

    [ha_dr_provider_chksrv]
    provider = ChkSrv
    path = /usr/share/SAPHanaSR/srHook
    execution_order = 2
    action_on_lost = stop
    
    [trace]
    ha_dr_saphanasr = info
    ha_dr_chksrv = info
    Copy to Clipboard Toggle word wrap

    设置可选参数,如下所示:

    • action_on_lost (默认为 ignore)
    • stop_timeout (默认为 20)
    • kill_signal (默认为 9)

    以下是 action_on_lost 可用选项的说明:

    • 忽略 :这启用了该功能,但只启用日志事件。这可用于监控配置环境中的 hook 活动。
    • stop: 这会执行安全 sapcontrol -nr <nr> -function StopSystem
    • kill :这会对最快的停止执行 HDB kill-<signal >。
    • 请注意,stop_timeout 被添加到 stop 和 kill 操作的命令执行中,而 kill_signal 作为 HDB kill-<signal> 命令的一部分被使用。
  2. 通过重新载入 HA/DR 提供程序,在 HANA 运行时激活新的 hook:

    [rh1adm]$ hdbnsutil -reloadHADRProviders
    Copy to Clipboard Toggle word wrap
  3. 通过检查新的 trace 文件来验证 hook 初始化:

    [rh1adm]$ cdtrace
    [rh1adm]$ cat nameserver_chksrv.trc
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部