5.2. 监控环境
在本节中,我们专注于在测试期间监控环境。本节仅涵盖查看更改所需的 monitor。建议从专用终端运行监控器。
在 Useful Commands 部分中,会显示更多示例。
5.2.1. 发现主节点 复制链接链接已复制到粘贴板!
您需要发现主节点来监控故障转移,或运行某些命令,它们仅在主节点上执行时提供有关复制状态的信息。
要发现主节点,您可以以 < sid>adm 用户身份运行以下命令:
% watch -n 5 'hdbnsutil -sr_stateConfiguration | egrep -e "primary masters|^mode"'
% watch -n 5 'hdbnsutil -sr_stateConfiguration | egrep -e "primary masters|^mode"'
输出示例,当 node2 是主数据库时:
mode: syncmem primary masters: node2
mode: syncmem
primary masters: node2
识别主节点的第二个方法是在集群节点上以 root 用户身份运行以下命令:
watch -n 5 'pcs status --full'
# watch -n 5 'pcs status --full'
主节点在其节点属性中有 …sync_state=PRIM 和 …clone_state=PROMOTED。watch 命令以定义的时间间隔重复运行附加的命令。在本例中,它显示集群状态,每 5 秒更新信息。这样,可以监控数据库状态的更改。建议您在单独的窗口中运行它。
5.2.2. 检查 Replication 状态 复制链接链接已复制到粘贴板!
复制状态显示主数据库节点和次要数据库节点与复制的当前状态之间的关系。
要发现复制状态,您可以以 < sid>adm 用户身份运行:
% hdbnsutil -sr_stateConfiguration
% hdbnsutil -sr_stateConfiguration
如果要监控更改,您可以使用 watch 命令。
在主节点上运行:
% watch -n 5 'python /usr/sap/${SAPSYSTEMNAME}/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py ; echo Status $?'
% watch -n 5 'python /usr/sap/${SAPSYSTEMNAME}/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py ; echo Status $?'
本例重复捕获复制状态,并决定当前的返回代码。
只要返回代码(状态)为 15,复制状态就正常。其他返回代码包括:
- 10: NoHSR
- 11: error
- 12: unknown
- 13: 初始化
- 14: 同步
- 15: active
如果注册了新次要设备,您可以在主节点上的单独窗口中运行它,您会看到复制的进度。如果要监控故障转移,您可以在旧主以及新的主数据库服务器上并行运行它。如需更多信息,请参阅 检查 SAP HANA 系统复制状态。
5.2.3. 检查 /var/log/messages 条目 复制链接链接已复制到粘贴板!
Pacemaker 将大量信息写入 /var/log/messages 文件中。在故障转移过程中,大量信息会被写入这个消息文件中。要根据 SAP HANA 资源代理只遵循重要的消息,过滤 pacemaker SAP 资源的详细活动非常有用。
例如,您可以使用这个别名:
tmsl='tail -1000f /var/log/messages | egrep -s "Setting master-rsc_SAPHana_$SAPSYSTEMNAME_HDB${TINSTANCE}|sr_register|WAITING4LPA|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED|LPT"'
# tmsl='tail -1000f /var/log/messages | egrep -s "Setting master-rsc_SAPHana_$SAPSYSTEMNAME_HDB${TINSTANCE}|sr_register|WAITING4LPA|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED|LPT"'
在单独的窗口中运行此别名以监控测试的进度。还要检查 monitor 故障切换和同步状态的示例。
5.2.4. 集群状态 复制链接链接已复制到粘贴板!
有几种方法可以检查集群状态。
检查集群是否正在运行:
-
pcs cluster status
-
检查集群和所有资源:
-
pcs status
-
检查集群、所有资源和所有节点属性:
-
pcs status --full
-
仅检查资源:
-
pcs resource
-
pcs status --full 命令将为您提供所有必要的信息。要监控更改,您可以将此命令与 watch 一起运行。
pcs status --full
# pcs status --full
可以在 Check cluster status 中找到输出示例和更多选项。
如果要查看更改,您可以在一个单独的窗口中运行,命令 会监视 :
watch pcs status --full
# watch pcs status --full
5.2.5. 发现左侧 复制链接链接已复制到粘贴板!
为确保您的环境准备好运行下一个测试,需要修复或删除之前测试中的左侧。
stonith用于隔离集群中的节点:-
detect:
! pcs stonith history -
Fix:
# pcs stonith cleanup
-
detect:
多个主数据库:
detect:
% hdbnsutil -sr_stateConfiguration | grep -i primary需要识别具有相同主的所有节点。
-
Fix:
% re-register the wrong primary with option --force_full_replica
移动导致的位置限制:
detect:
# pcs constraint location检查警告部分。
-
fix:
# pcs resource clear <clone-resource-which is moved>
二级复制关系:
-
detect: 在主数据库上运行
% python systemReplicationStatus.py - 修复:取消注册并重新注册辅助数据库。
-
detect: 在主数据库上运行
pcs 属性:
-
detect:
# pcs property config -
fix:
# pcs property set <key=value> -
clear
maintenance_mode
-
detect:
log_mode:detect:
% python systemReplicationStatus.py将响应
log_mode通常需要的复制状态。可以检测到log_mode,如 使用hdbsql检查Inifile内容 中所述。-
fix :将
log_mode更改为 normal,然后重新启动主数据库。
CIB 条目:
detect: 集群信息基础中的 SFAIL 条目。
请参阅 检查集群一致性,以查找和删除 CIB 条目。
cleanup/clear:
detect:
# pcs status --full有时它会显示错误或警告。您可以清理/清理/清理资源,如果一切正常,则不会发生。在运行下一个测试前,您可以清理您的环境。
修复示例:
# pcs resource clear <name-of-the-clone-resource># pcs resource cleanup <name-of-the-clone-resource>
如需更多信息,请参阅 用法 命令。