第 6 章 测试设置
在为生产环境工作负载启用之前,测试您的新 HANA HA 集群。
根据您的具体要求增强基本示例测试情况。
6.1. 检测系统复制状态更改 复制链接链接已复制到粘贴板!
在中断系统复制时,您必须监控日志和集群属性的同步状态信息,以测试 HanaSR
HA/DR 供应商的正确功能。
在此测试中,主实例用于监控系统复制状态并验证日志消息。二级实例冻结二级实例 indexserver 进程,在主实例保持不变时模拟复制问题。
先决条件
-
您已配置了强制的
HanaSR
HA/DR 供应商。 - 您的 HANA 实例在所有集群节点上都处于健康状态,系统复制处于同步状态。
流程
以 &
lt;sid>adm
的身份进入 主 实例上的 HANA Python 目录,并检查当前的系统复制状态。验证它是ACTIVE
并完全同步:rh1adm $ cdpy; python systemReplicationStatus.py
rh1adm $ cdpy; python systemReplicationStatus.py
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
srHook
和srPoll
集群属性在二级节点的属性摘要中都是SOK
。以root
用户身份在独立终端中的任意节点上运行这个命令,以跟踪属性更改:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
watch
命令在默认间隔为 2 秒的循环中运行以下命令。在 二级实例上,获取
hdbindexserver
进程的进程 ID (PID
),例如,从HDB
info 输出的PID
列中,以 <sid>adm 的身份
获取:rh1adm $ HDB info
rh1adm $ HDB info
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 辅助实例上,通过将
STOP
信号发送到进程来模拟挂起hdbindexserver
进程。这会冻结进程,并阻止它在节点间通信和同步实例。确保在二级实例上执行此操作,因为在主实例上完成时结果不同:rh1adm $ kill -STOP <PID>
rh1adm $ kill -STOP <PID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在主实例上,监视更改的系统复制状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在位后,复制状态会变为 indexserver 服务的
ERROR
。可能需要稍等片刻才能对空闲实例做出反应,等待一分钟或更长时间。在主 实例上,以 <
;sid>adm
用户身份检查相关消息的 HANA 名称服务器日志:rh1adm $ cdtrace; grep -he 'HanaSR.srConnectionChanged.*' nameserver_* ha_dr_provider PythonProxyImpl.cpp(01113) : calling HA/DR provider HanaSR.hookDRConnectionChanged(hostname=node1, port=34203, volume=3, service_name=indexserver, database=RH1, status=11, database_status=11, system_status=11, timestamp=*****, is_in_sync=0, system_is_in_sync=0, reason=, siteName=DC2) ha_dr_HanaSR HanaSR.py(00056) : HanaSR 1.001.1 HanaSR.srConnectionChanged method called with Dict={'hostname': 'node1', 'port': '34203', 'volume': 3, 'service_name': 'indexserver', 'database': 'RH1', 'status': 11, 'database_status': 11, 'system_status': 11, 'timestamp': '*****', 'is_in_sync': False, 'system_is_in_sync': False, 'reason': '', 'siteName': 'DC2'} ha_dr_HanaSR HanaSR.py(00065) : HanaSR HanaSR.srConnectionChanged system_status=11 SID=RH1 in_sync=False reason= ha_dr_HanaSR HanaSR.py(00091) : HanaSR.srConnectionChanged() CALLING CRM: <sudo /usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2 -v SFAIL -t crm_config -s SAPHanaSR> ret_code=0
rh1adm $ cdtrace; grep -he 'HanaSR.srConnectionChanged.*' nameserver_* ha_dr_provider PythonProxyImpl.cpp(01113) : calling HA/DR provider HanaSR.hookDRConnectionChanged(hostname=node1, port=34203, volume=3, service_name=indexserver, database=RH1, status=11, database_status=11, system_status=11, timestamp=*****, is_in_sync=0, system_is_in_sync=0, reason=, siteName=DC2) ha_dr_HanaSR HanaSR.py(00056) : HanaSR 1.001.1 HanaSR.srConnectionChanged method called with Dict={'hostname': 'node1', 'port': '34203', 'volume': 3, 'service_name': 'indexserver', 'database': 'RH1', 'status': 11, 'database_status': 11, 'system_status': 11, 'timestamp': '*****', 'is_in_sync': False, 'system_is_in_sync': False, 'reason': '', 'siteName': 'DC2'} ha_dr_HanaSR HanaSR.py(00065) : HanaSR HanaSR.srConnectionChanged system_status=11 SID=RH1 in_sync=False reason= ha_dr_HanaSR HanaSR.py(00091) : HanaSR.srConnectionChanged() CALLING CRM: <sudo /usr/sbin/crm_attribute -n hana_rh1_site_srHook_DC2 -v SFAIL -t crm_config -s SAPHanaSR> ret_code=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 名称服务器日志包含 HANA 触发器及详细信息的事件。它还包括
HanaSR
hook 脚本运行的sudo
命令,以更新srHook
集群属性。验证系统复制状态
srHook
和srPoll
的集群属性,显示次要的SFAIL
状态。以root
用户身份在任何节点上运行,或使用流程步骤 3 中的打开终端来观察更改:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在二级实例上,取消阻塞之前 frozen
hdbindexserver
PID
来再次启用它:rh1adm $ kill -CONT <PID>
rh1adm $ kill -CONT <PID>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重复步骤 1-3,以验证系统复制是否在位后完全恢复。集群不会在此测试期间触发任何操作,因为资源仍在运行。