更新时间: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参数说明”章节

相关文档