搜索

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

download PDF

当 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 系统复制

3.9.2. 在所有 SAP HANA 实例上激活 srServiceStateChanged () hook

注意

需要为所有 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

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

    • 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
  3. 通过检查新的 trace 文件来验证 hook 初始化:

    [rh1adm]$ cdtrace
    [rh1adm]$ cat nameserver_chksrv.trc
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.