HANA监控、巡检与切换演练

一、监控 :关键监控指标与告警设置

监控必须覆盖架构的每一层,形成立体视图。

• 操作系统层 :

◦ 节点状态 :集群成员状态( crm_mon -1 ),确保所有节点在线。

◦ 资源状态 :所有Pacemaker资源是否运行在正确的节点且状态正常( pcs status )。

◦ STONITH配置 :确认STONITH设备配置正确且可用( pcs stonith show , pcs stonith confirm )。

◦ 系统负载 :CPU、内存、Swap使用率。HANA是内存数据库,Swap被使用通常是严重警告。

◦ 网络 :心跳网络、复制网络的丢包率、延迟和带宽使用情况。

• 存储层 :

◦ 共享存储可用性 :从每个节点检查 /hana/data 和 /hana/log 的文件系统是否正常挂载且可读写。

◦ 存储性能 :IO延迟、吞吐量。日志卷的写入延迟直接影响事务提交速度和系统复制性能。

• HANA数据库层 :

◦ 系统复制状态 :这是 最核心 的监控项。使用SQL查询: SELECT DATABASE_NAME, HOST, VOLUME_ID, REPLICATION_STATUS, REPLICATION_MODE FROM SYS.M_SERVICE_REPLICATION 。必须确保 REPLICATION_STATUS 为 ACTIVE 或 SYNCHRONIZED (取决于模式)。

◦ 复制延迟 :监控从主节点到备节点的日志传输和应用延迟(秒或日志位置差)。延迟过大意味着备节点数据严重落后,切换时数据丢失风险高或恢复时间极长。SQL: SELECT * FROM SYS.M_SERVICE_REPLICATION_DETAILS 。

◦ HANA服务状态 :所有关键服务(indexserver, nameserver, xsengine等)是否运行正常。

◦ HANA告警 :定期检查HANA自带的告警中心(Alert Monitor),处理所有Warning和Critical级别的告警。

告警设置建议 :对于 REPLICATION_STATUS 变为 ERROR 或 INITIALIZING (非计划内)、复制延迟超过预定阈值(如30秒)、集群资源发生故障转移等事件,必须配置为最高级别的实时告警(如短信、电话),并立即排查。

二、巡检: 定期巡检清单

每周或每月的定期巡检,能发现潜在风险。

  1. 集群配置一致性检查 :使用 crm_verify -L -V 检查集群配置是否有错误或警告。对比两个节点的Pacemaker配置是否一致。

  2. STONITH功能测试 :在业务低峰期, 在严格的变更窗口和回滚计划下 ,执行STONITH测试。例如,通过Pacemaker命令手动触发对备节点的隔离,观察其是否被正确关闭,以及主节点是否稳定。测试后及时恢复。

  3. 系统复制完整性测试 :在备节点上,可以临时将复制模式从 async 改为 sync (如果生产是async),观察是否能正常同步且对主节点性能影响是否在可接受范围。然后再改回。这验证了复制链路的健壮性。

  4. 故障切换演练 :这是 最重要的 巡检项目。模拟真实故障,验证整个切换流程。方法包括:

◦ 软重启主节点HANA服务 :在Pacemaker层面,将主节点的HANA资源迁移到备节点( pcs resource move )。观察业务中断时间、数据一致性。

◦ 模拟网络中断 :在主节点上,临时禁用业务网卡或心跳网卡,观察集群是否按预期触发切换。

◦ 计划内切换 :执行一次完整的、计划内的主备切换操作,记录每个步骤的时间和结果。这不仅是测试,也是为真正的硬件维护做准备。

切记:所有演练必须在预先申请好的维护窗口、有完整回滚方案、并通知业务方的情况下进行!

三 常见运维操作命令参考

掌握命令行工具是运维的基本功。

• 集群状态查看 :

复制代码
# 查看集群和资源详细状态
crm_mon -1
# 或使用pcs命令(RHEL)
pcs status
# 查看资源配置
pcs resource show
# 查看STONITH设备
pcs stonith show

• 手动资源控制 :

复制代码
# 将资源(如虚拟IP)迁移到另一个节点(常用于计划内维护)
pcs resource move <resource_name> <target_node>
# 清理资源的故障状态,允许其再次启动
pcs resource cleanup <resource_name>
# 手动启动/停止/重启某个资源
pcs resource [start|stop|restart] <resource_name>

• HANA系统复制管理 :

复制代码
# 在备节点上,以root执行,接管为主节点(需谨慎,通常由集群自动触发)
su - <sid>adm
HDB stop
hdbnsutil -sr_takeover
# 查看系统复制状态
python /usr/sap/<SID>/HDB<instance>/exe/python_support/systemReplicationStatus.py

或者

hdbnsutil -sr_state

• 故障排查 :

复制代码
# 查看集群日志(关键)
journalctl -u pacemaker -f
journalctl -u corosync -f
# 查看资源代理的详细操作日志
pcs resource debug-start <resource_name>
pcs resource debug-stop <resource_name>

#多路径状态查看
multipath -ll
相关推荐
a努力。1 小时前
四维解析Agent记忆架构:从零实战LangGraph长期记忆
java·开发语言·数据库
ss2731 小时前
PG实战笔记 | 04 PostgreSQL市场地位与实际案例
数据库·postgresql
众链网络2 小时前
Agent 重试的工程解法:幂等、断点续跑与熔断怎么落地
java·前端·数据库·人工智能
oradh2 小时前
Oracle 索引维护操作总结
数据库·oracle
for_ever_love__2 小时前
MySQL Online DDL 完全指南:INSTANT/INPLACE/COPY 三种算法、MDL 锁事故与 gh-ost 实战
数据库·mysql·ddl·online·gh-ost·锁表·加字段
for_ever_love__2 小时前
MySQL 子查询、派生表与 CTE 优化:半连接、物化和递归实战
数据库·mysql·优化·as·子查询·with·cte
DBA_G2 小时前
GBase 8c分布式数据库客户端工具 gsql
数据库·分布式
用户5611610232733 小时前
量化笔记程序代码分析,逐笔数据、五档快照和分钟行情代码分析
数据库
房开民3 小时前
通俗总结 Octree(八叉树)
java·服务器·数据库