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


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

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

如果在此期间,不等待这个长时间运行的重启,这会带来数据一致性的风险,ChkSrv.py hook 脚本可以响应该情况,并停止 HANA 实例以加快恢复速度。在启用了自动故障切换的设置中,如果次要节点处于健康状态,则实例停止会导致启动接管。否则,恢复会在本地进行,但强制的实例重启会加快它。

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

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

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

请注意,停止和终止操作都会导致一个已停止的 HANA 实例,终止在结束速度较快。

此时,集群会注意到 HANA 资源的故障,并按配置的方式对资源做出反应;通常,它重新启动实例,如果启用,它也会处理接管。

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

当主 HANA 实例的 hdbindexserver 进程挂起/崩溃时,验证是否已安装 resource-agents-sap-hana 软件包的正确版本,以便在主 HANA 实例的 hdbindexserver 进程挂起/崩溃时不会触发 HANA System Replication

注意

需要在所有 HA 集群节点上激活 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 (default: 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 操作中使用 kill_signal 作为 HDB kill-<signal&gt; 命令的一部分。
  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