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

cm ctl reload命令导入的新的配置文件不需要包含全部的配置信息,但是需要将所有的修改信息呈现在新json中。
在新json中需要注意以下几点:
"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 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_ADDRESSCN故障隔离恢复后,恢复集群中的故障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参数分为:
参数 | 参数说明 |
|---|---|
-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内部使用的所有全局变量。 |
参数 | 参数说明 |
|---|---|
--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 | 预留参数,设置不生效。 |
参数 | 参数说明 | 默认值 | 取值范围 |
|---|---|---|---|
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 |
参数 | 参数说明 | 默认值 | 取值范围 |
|---|---|---|---|
updateNodeRoute | 设置CM在DN发生主备倒换后,是否更新cn访问dn的路由系统表。 | ON | ON:表示CM更新cn访问dn的路由系统表 OFF:表示CM不更新cn访问dn的路由系统表 |
参数 | 参数说明 |
|---|---|
CredentialsExpireAlarmTime | 设置ETCD证书即将过期的告警时间阀值。 参数取值范围:[7,180] 单位:天 默认值:90 |

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/ ,如需转载,请注明出处,否则将追究法律责任。