本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SAP HANA 服务控制
修改 SAP HANA 服务的管理方式以启用集群接管和操作。
将 sidadm 添加到客户群组
pacemaker 软件会创建一个 haclient 操作系统组。为确保正确的群集访问权限,请在所有群集节点上将 sidadm 用户添加到该组中。以 root 用户身份运行以下命令:
# usermod -a -G haclient hdbadm
修改 HANA 的 SAP 配置文件
要防止 SAP 启动框架在实例重启时自动启动 SAP HANA,请修改所有节点上的 SAP HANA 实例配置文件。这些配置文件位于/usr/sap/<SID>/SYS/profile/
。
作为 <sid>adm,编辑 SAP HANA 配置文件<SID>_HDB<hana_sys_nr>_<hostname>
并修改或添加自动启动参数,确保将其设置为 0:
Autostart = 0
配置 SAPHana SR 集群挂钩以优化集群响应
如果系统复制失败, SAPHanaSR 挂钩会立即通知群集,从而补充了标准的群集轮询机制。这种优化可以显著缩短故障转移响应时间。
按照以下步骤配置 SAPHana SR 挂钩:
-
验证集群 Package
挂钩配置因使用的资源代理而异(有关详细信息,请参阅部署指南)。
-
确认挂钩位置
默认情况下,软件包安装在
/usr/share/sap-hana-ha/
或中/usr/share/SAPHanaSR/srHook
。我们建议使用默认位置,但您可以选择将其复制到自定义目录;例如,/hana/share/myHooks
。该挂钩必须在所有 SAP HANA 集群节点上可用。 -
配置 global.ini
更新位于每个 SAP HANA 群集节点
/hana/shared/<SID>/global/hdb/custom/config/
上的global.ini
文件。在继续操作之前,请先制作一份备份副本。 -
配置 Sudo 权限
SAPHanaSR Python 挂钩需要 su <sid>do 权限才能让管理员用户访问集群属性:
-
例如,在中以 root 用户身份创建新的 sudoers 文件
/etc/sudoers.d/
60-SAPHanaSR-hook
-
使用 visudo 安全地编辑新文件
visudo /etc/sudoers.d/60-SAPHanaSR-hook
-
添加以下配置,<sid>替换为小写系统 ID 和<SID>大写系统 ID:
Cmnd_Alias SITE_SOK = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_[a-zA-Z0-9_]* -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SITE_SFAIL = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_[a-zA-Z0-9_]* -v SFAIL -t crm_config -s SAPHanaSR Cmnd_Alias HOOK_HELPER = /usr/sbin/SAPHanaSR-hookHelper --sid=<SID> --case=checkTakeover hdbadm ALL=(ALL) NOPASSWD: SITE_SOK, SITE_SFAIL, HOOK_HELPER
例如:
Cmnd_Alias SITE_SOK = /usr/sbin/crm_attribute -n hana_hdb_site_srHook_[a-zA-Z0-9_]* -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SITE_SFAIL = /usr/sbin/crm_attribute -n hana_hdb_site_srHook_[a-zA-Z0-9_]* -v SFAIL -t crm_config -s SAPHanaSR Cmnd_Alias HOOK_HELPER = /usr/sbin/SAPHanaSR-hookHelper --sid=HDB --case=checkTakeover hdbadm ALL=(ALL) NOPASSWD: SITE_SOK, SITE_SFAIL, HOOK_HELPER
注意
该语法使用 glob 表达式,允许它适应不同的 HSR 站点名称,同时避免使用通配符。这确保了灵活性和安全性。如果 SID 发生变化,仍需要进行修改。将替换为
<sid>
与您的安装相匹配的小写字母sid
和<SID>
大写字母SID
。
-
-
重新加载配置
在 <sid>adm 重新加载时,
global.ini
使用 HANA 重启或命令重新加载更改:hdbadm> hdbnsutil -reconfig
-
验证挂钩配置
以 <sid>adm 的身份验证挂钩是否已加载:
hdbadm> cdtrace hdbadm> grep "loading HA/DR Provider" nameserver*
-
将配置复制到辅助设备
-
确认 global.ini 更改已复制到辅助系统
-
在辅助系统上创建相应的 sudoers.d 文件
-
(可选)配置快速启动选项
尽管超出了本文档的范围,但 SAP HANA 快速重启选项使用 tmpfs 文件系统来保留和重复使用主数据片段,以加快 SAP HANA 的重启速度。这在操作系统未重新启动(包括索引服务器的本地重启)的情况下有效。
Fast Start Option 可能是 susChkSrv 挂钩的替代方案。
有关更多信息,请参阅 SAP 文档:SAP HANA 快速重启选项
查看系统集成
查看 HANA 版本和 systemd 版本以确定 systemd 的先决条件是否可用:
sidadm> systemctl --version
操作系统版本
-
红帽企业 Linux 8(系统版本 239)
SAP HANA 修订版
-
SAP HANA SPS07 修订版 70
在使用具有 systemd 集成的 SAP HANA 版本(SPS07 及更高版本)时,您必须运行以下步骤,以防止在故意停止亚马逊 EC2 实例时节点被屏蔽。参见 Note 3189534-Linux:sapstartsrv 和 SAP HANA 的系统集成
-
验证 SAP HANA 是否已与 systemd 集成。如果已集成,则会出现一个 systemd 服务名称,例如 SAP <SID>_ <hana_sys_nr>.service。例如,对于 SID HDB 和实例编号 00,saphdb_00.service 是服务名称。
以 root 用户身份使用以下命令查找 SAP systemd 服务:
# systemctl list-unit-files | grep -i sap
-
创建起搏器服务插件文件:
# mkdir -p /etc/systemd/system/pacemaker.service.d/
-
创建包含以下内容
/etc/systemd/system/pacemaker.service.d/50-saphana.conf
的文件:[Unit] Description=pacemaker needs SAP instance service Documentation=man:SAPHanaSR_basic_cluster(7) Wants=SAP<SID>_<hana_sys_nr>.service After=SAP<SID>_<hana_sys_nr>.service
-
通过重新加载 systemd 来启用插入式文件:
# systemctl daemon-reload
-
验证更改是否处于活动状态:
# systemctl show pacemaker.service | grep SAP<SID>_<hana_sys_nr>
例如,对于 SID HDB 和实例编号 00,预计会有以下输出:
# systemctl show pacemaker.service | grep SAPHDB_00 Wants=SAPHDB_00.service resource-agents-deps.target dbus.service After=system.slice network.target corosync.service resource-agents-deps.target basic.target rsyslog.service SAPHDB_00.service systemd-journald.socket sysinit.target time-sync.target dbus.service sbd.service