第 6 章 测试设置


在为生产环境工作负载启用之前,测试您的新 HANA HA 集群。

根据您的具体要求增强基本示例测试情况。

6.1. 检测系统复制状态更改

在中断系统复制时,您必须监控日志和集群属性的同步状态信息,以测试 HanaSR HA/DR 供应商的正确功能。

在此测试中,主实例用于监控系统复制状态并验证日志消息。二级实例冻结二级实例 indexserver 进程,在主实例保持不变时模拟复制问题。

先决条件

  • 您已配置了强制的 HanaSR HA/DR 供应商。
  • 您的 HANA 实例在所有集群节点上都处于健康状态,系统复制处于同步状态。

流程

  1. 以 & lt;sid>adm 的身份进入 实例上的 HANA Python 目录,并检查当前的系统复制状态。验证它是 ACTIVE 并完全同步:

    rh1adm $ cdpy; python systemReplicationStatus.py
    Copy to Clipboard Toggle word wrap
  2. 验证 srHooksrPoll 集群属性在二级节点的属性摘要中都是 SOK。以 root 用户身份在独立终端中的任意节点上运行这个命令,以跟踪属性更改:

    [root]# watch SAPHanaSR-showAttr
    ...
    Site lpt        lss mns   opMode    srHook srMode srPoll srr
    -------------------------------------------------------------
    DC2  10         4   node2 logreplay SOK    sync   SOK    S
    DC1  1745833771 4   node1 logreplay PRIM   sync   PRIM   P
    ...
    Copy to Clipboard Toggle word wrap

    使用 watch 命令在默认间隔为 2 秒的循环中运行以下命令。

  3. 二级实例上,获取 hdbindexserver 进程的进程 ID (PID),例如,从 HDB info 输出的 PID 列中,以 < sid>adm 的身份 获取:

    rh1adm $ HDB info
    Copy to Clipboard Toggle word wrap
  4. 辅助实例上,通过将 STOP 信号发送到进程来模拟挂起 hdbindexserver 进程。这会冻结进程,并阻止它在节点间通信和同步实例。确保在二级实例上执行此操作,因为在主实例上完成时结果不同:

    rh1adm $ kill -STOP <PID>
    Copy to Clipboard Toggle word wrap

验证

  1. 在主实例上,监视更改的系统复制状态:

    rh1adm $ cdpy; watch python systemReplicationStatus.py
    ...
    |Database |Host  |Port  |Service Name |...|Secondary     |Replication |Replication |Replication                   |Secondary    |
    |         |      |      |             |...|Active Status |Mode        |Status      |Status Details                |Fully Synced |
    |-------- |----- |----- |------------ |...|------------- |----------- |----------- |----------------------------- |------------ |
    |SYSTEMDB |node1 |30201 |nameserver   |...|YES           |SYNC        |ACTIVE      |                              |        True |
    |RH1      |node1 |30207 |xsengine     |...|YES           |SYNC        |ACTIVE      |                              |        True |
    |RH1      |node1 |30203 |indexserver  |...|YES           |SYNC        |ERROR       |Log shipping timeout occurred |       False |
    
    status system replication site "2": ERROR
    overall system replication status: ERROR
    
    ...
    Copy to Clipboard Toggle word wrap

    在位后,复制状态会变为 indexserver 服务的 ERROR。可能需要稍等片刻才能对空闲实例做出反应,等待一分钟或更长时间。

  2. 在主 实例上,以 &lt ;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
    Copy to Clipboard Toggle word wrap

    名称服务器日志包含 HANA 触发器及详细信息的事件。它还包括 HanaSR hook 脚本运行的 sudo 命令,以更新 srHook 集群属性。

  3. 验证系统复制状态 srHooksrPoll 的集群属性,显示次要的 SFAIL 状态。以 root 用户身份在任何节点上运行,或使用流程步骤 3 中的打开终端来观察更改:

    [root]# SAPHanaSR-showAttr
    ...
    Site lpt        lss mns   opMode    srHook srMode srPoll srr
    -------------------------------------------------------------
    DC2  10         4   node2 logreplay SFAIL  sync   SFAIL  S
    DC1  1745833771 4   node1 logreplay PRIM   sync   PRIM   P
    ...
    Copy to Clipboard Toggle word wrap
  4. 在二级实例上,取消阻塞之前 frozen hdbindexserver PID 来再次启用它:

    rh1adm $ kill -CONT <PID>
    Copy to Clipboard Toggle word wrap
  5. 重复步骤 1-3,以验证系统复制是否在位后完全恢复。集群不会在此测试期间触发任何操作,因为资源仍在运行。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat