ITPub博客

首页 > 数据库 > > cm-cm ctl

cm-cm ctl

作者:GaussDB_数据库 时间:2020-01-10 14:45:56 0 删除 编辑

cm ctl是GaussDB 100提供的用来控制集群服务的工具。该工具主要供OM调用,及集群服务自恢复时使用。

功能介绍

  • cm ctl query命令用于查询集群状态、集群中各实例的状态。
  • cm ctl reload命令用于重新加载集群配置,在需要改变集群成员等场景下使用。

    cm ctl reload命令导入的新的配置文件不需要包含全部的配置信息,但是需要将所有的修改信息呈现在新json中。

    在新json中需要注意以下几点:

    • GlobalConfig参数必须要有,且里面的参数值要和系统中现存的值完全一致。
    • 若要删除某个实例,需要在新json中将该实例字段中的内容置为空。若删除的实例是数据库,需要在新json中将该实例所在的group中删除该实例。
    • 若要删除的某一节点,要保证该节点中没有正常工作的主数据库,将该节点的“IP”字段设为“REMOVE”,将节点中数据库从所在的Group中删掉。
      新json的示例文件如下所示,该示例是删除Euler3服务器中的一个数据库实例,该实例属于GROUP2。
      "GlobalConfig": {
      "BuildAfterStartFailed": 1,
      "BuildCommandTimeout": 1800,
      "CMLogLevel": "debug",
      "CMVersion": 1,
      "CheckAZTimeout": 20,
      "CheckCommandTimeout": 10,
      "CheckInterval": 6,
      "CommandRetryCount": 3,
      "CommandRetryInterval": 5,
      "CommonCommandTimeout": 60,
      "DBGroupLSNGap": 10,
      "HostStatusTTL": 15,
      "InstanceRestartCount": 25,
      "KillETCDInstance": 1
      },
      "Layouts": [
      {
      "AZName": "AZ1",
      "Hosts": {
      "Euler3": {
      "IP": "10.185.181.229",
      "Instances": {
      }
      }
      }
      }
      ],
      "Groups": {
      "GROUP2": {
      "GroupType": "gaussdbV1R3",
      "Instances": {
      "AZ1/Euler4/DB4_2": {
      "ParentNode": "",
      "Role": "primary"
      },
      "AZ2/Euler10/DB10_2":{
      "ParentNode":"AZ1/Euler4/DB4_2",
      "Role":"standby"
      }
      }
      }
      }
      }
  • cm ctl start命令用于启动集群服务,启动单个服务器上除etcd之外的所有实例或单独启动某个实例进程。
  • cm ctl stop命令用户停止集群服务,停止单个服务器上除etcd之外的所有实例或单独停止某个实例进程。
  • cm ctl switchover命令用于主备倒换,将指定备数据库转换为主数据库。
  • cm ctl updateCNSwitchCmd命令用于指定主备倒换后,是否更新CN访问DN的路由系统表。
  • cm ctl build命令用于重建DN备。
  • cm ctl list命令用于列出CM模块内部使用的所有全局变量,该值可以由cm ctl set -p xxx -v xxx命令修改,重启集群后生效。
  • cm ctl set命令用于设置集群的一些全局参数,例如探测时间CheckInterval、CommandRetryCount、CheckAZTimeOut、KillETCDInstance、CN故障隔离CoordinatorHearbeatTimeout等。
  • cm ctl querySubhealth用于查询集群各节点某个时刻CPU使用率、内存使用率、磁盘IO使用率、网络延迟、磁盘占用量的当前值,用于CM内部调试。

命令参考

  • 查询集群状态。
    cm ctl query -e $ETCD_ADDRESS [-l logLevel] [-L logfile]
    重新加载配置参数。
  • cm ctl reload -r reloadfile -e $ETCD_ADDRESS [-l logLevel] [-L logfile]
    启动实例。
  • cm ctl start -e $ETCD_ADDRESS  [-H hostName] [-I instanceName] [-l logLevel] [-L logfile]
    重建备DN。
  • cm ctl build -e $ETCD_ADDRESS [-H hostName] [-I instanceName] [-l logLevel] [-L logfile]
    停止实例。
  • cm ctl stop [-f] -e $ETCD_ADDRESS [-H hostName] [-I instanceName] [-l logLevel] [-L logfile]
    数据库主备倒换。
  • cm ctl switchover  -e $ETCD_ADDRESS [-H hostName] [-I instanceName] [-l logLevel] [-L logfile]
    设置参数
  • cm ctl set -p param_name -v param_value
    更新主备倒换后CN访问DN的路由系统表。
  • cm ctl updateCNSwitchCmd updateNodeRoute=OFF -e $ETCD_ADDRESS
    CN故障隔离恢复后,恢复集群中的故障CN的状态。
  • cm ctl restoreCn -e $ETCD_ADDRESS [-H hostName] [-I instanceName] [-l logLevel] [-L logfile]
    查询集群各节点某个时刻CPU使用率、内存使用率、磁盘IO使用率、网络延迟、磁盘占用量的当前值。
  • cm ctl querySubhealth
    列出CM内部使用的全局变量
  • cm ctl list [--help]
    参数说明

cm ctl参数分为:

  • 常用参数,详细请参见表1。
  • 全局参数,详细请参见表2
  • 集群常用全局参数,详细请参见表3
  • updateCNSwitchCmd参数,详细请参见表4
表1 常用参数

参数

参数说明

-h,--help

显示关于cm ctl命令行参数的帮助信息,然后退出。

-c,--localhost name string

用户设置本地主机名称。

query

查询集群状态。

start

启动集群服务,启动单个主机上所有实例或单独启动某个实例进程。

stop

停止集群服务,停止单个主机上所有实例或单独启动某个实例进程。

switchover

切换集群主备实例。

reload

reload命令用于重新加载集群配置。

build

重建备DN。

set

设置集群全局参数值。

updateCNSwitchCmd

更新主备倒换后CN访问DN的路由系统表。

restoreCn

CN故障隔离恢复后,恢复集群中的故障CN的状态。

querySubhealth

查询集群各节点某个时刻CPU使用率、内存使用率、磁盘IO使用率、网络延迟、磁盘占用量的当前值。

list

列出CM内部使用的所有全局变量。

表2 全局参数

参数

参数说明

--ca_client string

设置客户端CA文件。

--ca_member string

设置服务端成员CA文件。

--ca_server string

设置服务端CA文件。

--cert_member string

设置服务端成员的CERT文件。

--cert_server string

设置服务端CERT文件。

-e,--endpoint string

指定ETCD地址。

--key_member string

设置服务端成员KEY文件。

--key_server string

设置服务端KEY文件。

-l,--log string

设置日志级别(日志级别可选:debug、info、error、fatal)。

-L,--logfile string

设置日志文件。

-t,--seconds int

预留参数,设置不生效。

表3 集群全局参数

参数

参数说明

默认值

取值范围

BuildAfterStartFailed

实例启动失败后,build该实例。

true

false、true

BuildCommandTimeout

build命令的超时时间。

60*60*24=86400秒

[10, 1800000],单位:秒

CheckAZTimeout

AZ检查的超时时间。

20秒

[10, 1800],单位:秒

CheckCommandTimeout

check命令的超时时间。

10秒

[5, 1000],单位:秒

CheckInterval

集群正常检查的时间间隔。

5秒

[2, 180],单位:秒

ClockDiffThreshold

时钟差异阈值。

2秒

[1, 10],单位:秒

ClusterInstallTime

集群安装时间。

无

无

ClusterStartTime

集群启动时间。

无

无

CMAgentPingInterval

CM Agent间ping操作的时间间隔。

2秒

[1, 10],单位:秒

CMAgentPingTryTime

CM Agent间检查网络是否可达的尝试次数。

5次

[3, 10],单位:次

CMLogCompressMinSize

日志大小大于该值,对日志进行压缩。

16M

[1, 1024],单位:M

CMLogLevel

日志级别。

warn

panic、fatal、error、warning、info、debug

CmLogRemainSize

日志保留大小。

1024M

[1, 1024],单位:M

CmLogRemainTime

日志保留时间。

90天

[1, 180],单位:天

CMVersion

CM版本号。

1

[0, 255]

CommandRetryCount

命令失败或超时后重试的次数。

3次

[1, 10],单位:次

CommandRetryInterval

命令失败或超时后重试的时间间隔。

5秒

[2, 50],单位:秒

CommonCommandTimeout

命令的超时时间。

60秒

[10, 1000],单位:秒

CoordinatorHeartbeatTimeout

CN故障后从现有集群中隔离出来的时间。

60*5=300秒

[0, 1800000],单位:秒

CredentialsExpireAlarmTime

ETCD证书过期的告警时间。

90天

[7, 180],单位:天

DBGroupLSNGap

在一组DN内默认的LSN间隔。

10

[1, 180]

DBMSLSNGap

数据库主从最大的LSN间隔。

1000

[1, 10000]

DiskCPUThreshold

CPU告警阈值。

80

[1, 100],单位:百分比

DiskIOThreshold

IO告警阈值。

90

[1, 100],单位:百分比

DiskMemoryThreshold

内存告警阈值。

80

[1, 100],单位:百分比

DiskSurplusInfoThreshold

磁盘空间告警阈值。

80

[1, 100],单位:百分比

FailoverCommandTimeout

failover/switchover命令的超时时间。

1800秒

[10, 1800000],单位:秒

Ha2Node

是否为"two-node HA"部署模式。

false

true、false

HostStatusTTL

节点状态的超时时间,也是主机之间的心跳时间。

15秒

[12, 6000],单位:秒

InstanceRestartCount

实例掉线后重启尝试次数。

25次

[2, 50],单位:次

KillETCDInstance

当ETCD不可达时,是否kill掉该ETCD实例。

false

true、false

NetworkDelayThreshold

网络延时告警阈值。

50秒

[1, 1024],单位:秒

StartStopCommandTimeout

start/stop命令的超时时间。

3600秒

[10, 1800000],单位:秒

WhetherSetAvailableCNList

是否设置可用的CN列表。

false

true、false

WhetherSuicideWhenHbLost

心跳丢失之后是否进程自杀。

false

true、false

表4 updateCNSwitchCmd参数

参数

参数说明

默认值

取值范围

updateNodeRoute

设置CM在DN发生主备倒换后,是否更新cn访问dn的路由系统表。

ON

ON:表示CM更新cn访问dn的路由系统表

OFF:表示CM不更新cn访问dn的路由系统表

表5 CredentialsExpireAlarmTime参数

参数

参数说明

CredentialsExpireAlarmTime

设置ETCD证书即将过期的告警时间阀值。

参数取值范围:[7,180]

单位:天

默认值:90

  • CM agent每天零点(即00:00:00)检查一次ETCD证书是否过期。如果超过CredentialsExpireAlarmTime参数设置的阀值,则上报告警,DM侧获取到该告警之后触发告警,用户获取到该告警后根据实际情况手动更新ETCD证书。
  • 触发告警后,会生成对应日志
    • 在$GAUSSLOG/alarm/CM/alarm.log日志中上报如下告警信息供DM解析。
      2024-08-11 00:00:00|1103040013|EtcdCredentialsExpired|ETCD|ETCD|ETCD,ETCD,host_156_127,10.171.156.127|1
      在$GAUSSLOG/cm/cm_agent/agent.log日志中生成一条如下用于定位的告警日志。
    • time="2024-07-19T00:00:00+08:00" level=warning msg="[CheckEtcdCredentialsExpireTime] the ETCD credentials will be expired after (29) days.
      用户可使用如下命令修改CredentialsExpireAlarmTime参数的值,重启集群生效。
  • cm ctl set -p CredentialsExpireAlarmTime -v param_value

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3167403/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19433