更新时间:2026-07-28 GMT+08:00
CM
简介
CM(Cluster Manager)是一款数据库资源管理与监控组件,提供高可用、自动化的实例管理和故障恢复能力,保障集群的稳定运行。
GaussDB提供了cm_ctl工具用来控制集群服务。
核心组件
- CMS(cm_server)
- 是用来进行集群管理和实例仲裁的组件。
- 功能:
- 接收各个节点上CMA发送的集群各实例状态。
- 监控实例的状态变化并进行仲裁命令的下发。
- 提供集群整体状态查询接口。
- 高可用特性:支持主备或一主多备配置,当主CMS出现故障时自动切换到备CMS接管业务继续执行。
- CMA(cm_agent)
- 是部署在集群每个主机上,用来启停和监控各个数据库实例进程的集群管理组件。
- 功能:
- 启停本机数据库实例。
- 监控实例状态并上报给CMS。
- 执行CMS下发的仲裁命令。
- OMM(om_monitor)
- 看护cm_agent的定时任务组件。
- 功能:
- 看护cm_agent进程,定时检查其运行状态。
- 在cm_agent进程停止时自动重启,确保监控不中断。
- DDB(distribute database)
- 用于CMS自仲裁选主和持久化存储仲裁数据的管理服务组件。
- CMS可以选择使用ETCD或DCC。
- ETCD:高度一致的分布式键值存储组件。
- DCC:分布式配置中心组件,基于DCF(Distributed Consensus Framework)实现,DCF采用Paxos协议来保证高可用与一致性。
作用
- 统一管理
提供集群、节点、实例的统一启停、查询、切换功能,提升管理效率。
- 实时监控
多维度监控节点、实例、网络通信、文件系统等资源的运行状态,有问题可及时发现。
- 灵活扩展
支持自定义资源监控和故障检测规则,适应不同业务场景。
- 自动化运维
提供故障自动主备切换等能力,降低人工运维负担。
- 高可用性保障
主备cm_server架构,自动故障接管,避免单点故障,提升系统可用性。
示例
- 查询集群状态。
cm_ctl query -Cvd [ CMServer State ] node instance state ------------------------------------------------------------------------------ 1 kwephis32851484 1 /var/standard/usr/local/cm/cm_server/cm_server Primary [ Cluster State ] cluster_state : Normal redistributing : No balanced : Yes current_az : AZ_ALL [ Coordinator State ] node instance state ---------------------------------------------------------- 1 kwephis32851484 5001 /var/standard/usr/local/cn Normal [ Central Coordinator State ] node instance state ---------------------------------------------------------- 1 kwephis32851484 5001 /var/standard/usr/local/cn Normal [ GTM State ] node instance state -------------------------------------------------------------- 1 kwephis32851484 1001 /var/standard/usr/local/gtm P Primary [ Datanode State ] node instance state --------------------------------------------------------------------------------------------- 1 kwephis32851484 6001 /var/standard/var/lib/engine/data1/data/datanode1 P Primary Normal 1 kwephis32851484 6002 /var/standard/var/lib/engine/data1/data/datanode2 P Primary Normal
- 检测进程运行状态。
-- 检测gaussdb进程运行状态,/var/standard/var/lib/engine/data1/data/datanode1为指定实例的数据目录,可以通过cm_ctl query -Cvd查询获得。 cm_ctl check -B gaussdb -T /var/standard/var/lib/engine/data1/data/datanode1 -- 执行如下命令,查看上一个命令的返回值,2表示进程存在。 echo $? 2
- 设置CM相关参数。
-- 设置cm_agent参数log_file_size值为20。 cm_ctl set --param --agent -k "log_file_size=20" cm_ctl: set cm_agent.conf success. -- 动态加载cm_agent参数。 cm_ctl reload --param --agent cm_ctl: reload cm_agent.conf success.
- 查询CM相关参数。
cm_ctl list --param --agent [conf of node(1)] log_dir = /var/standard/var/log/Mike/Mike/cm/cm_agent log_file_size = 20 log_min_messages = WARNING incremental_build = on security_mode = off upgrade_from = 0 alarm_component = /opt/huawei/snas/bin/snas_cm_cmd ......
另请阅读
《参考》中“日志参考 > 系统日志”章节
《参考》中“数据库运行参数说明 > CM参数说明”章节
父主题: 基础概念