暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T gs_om

墨天轮 2019-09-28
1725

gs_om

GaussDB 100提供了gs_om工具帮助对集群的运行状态进行监控,包括启动集群、停止集群、启动节点、停止节点、启动单az、查询集群状态、启动etcd、停止etcd、切换主备实例、修改IP、显示帮助信息和显示版本号信息等功能。

语法

  • 启动集群
    gs_om -t start [ -h HOSTNAME ] [-I INSTANCENAME ] [-g GROUPNAME] [--az=AZNAME] [-l LOGFILE]
  • 停止集群
    gs_om -t stop [ -h HOSTNAME ] [-I INSTANCENAME ] [-g GROUPNAME] [-l LOGFILE]
  • 查询集群状态
    gs_om -t status [-h HOSTNAME | --az=AZNAME] [-o OUTPUT] [-l LOGFILE]
  • 切换主备实例
    gs_om -t switch -h HOSTNAME -I DBNAME [-l LOGFILE]
  • 手动拉起ETCD
    gs_om -t startetcd [-l LOGFILE]
  • 手动停止ETCD
    gs_om -t stopetcd [-l LOGFILE]
  • 修改IP
    gs_om -t changeip -X XMLFILE [--rollback] [-l LOGFILE]
  • 查询集群esn编号
    gs_om -t esn
  • 显示帮助信息
    gs_om -? | --help
  • 显示版本号信息
    gs_om -V | --version

参数说明

gs_om参数可以分为如下几类:
  • 通用参数:
    • -t

      gs_om命令的类型。

      取值范围:start、stop、status、switch、startetcd、stopetcd、changeip、esn。

      说明:
      • switch执行过程中不可以使用Ctrl+C中断切换过程,否则,需要手动释放CM锁后,方可执行下次switch命令。
      • 进行过主备切换后,如果当前集群状态中balanced字段为false,在继续执行重启etcd、单AZ拉起,集群状态中balanced字段会显示为true,但实际集群DN主备状态并未改变。
      • “gs_om -t changeip”暂不支安装有GTS的集群。
      • “gs_om -t start”、“gs_om -t stop”、“gs_om -t switch”命令不支持ETCD实例。
    • -l

      指定日志文件及存放路径。

      默认值:$GAUSSLOG/om/gs_om-YYYY-MM-DD_hhmmss.log

    • -?,--help

      显示帮助信息。

    • -V,--version

      显示版本号信息。

  • 启动集群参数:
    • -h

      指定需要启动的服务器名称。一次只能启动一个服务器。

      取值范围:服务器名称。

      不指定服务器名称时,表示启动整个集群。

    • -I

      指定要启动的实例名称。可启动的实例类型有CM、CN、DN、GTS,不支持启动ETCD。

    • -g

      指定需要启动的group名称。

    • --az

      指定需要启动的az。暂不支持启动安装有GTS集群的az。注:一个az中可能部署有多个节点。

  • 停止集群参数:
    • -h

      指定需要停止实例所在的服务器名称。一次只能停止一个服务器。

      取值范围:实例所在的服务器名称。

      不指定服务器名称时,表示停止整个集群。

    • -I

      指定要停止的实例名称。可停止的实例类型有CM、CN、DN、GTS,不支持启动ETCD。

    • -g

      指定需要启动的group名称。

  • 查询状态参数:
    集群状态显示结果的参数说明请参见状态说明。
    • -h

      指定需要待查询的服务器名称。

      取值范围:服务器名称。

      不指定服务器时,表示查询整个集群。

      --az

      指定需要待查询的AZ名称。

      取值范围:AZ1,AZ2,AZ3。

      不指定AZ时,表示查询整个集群。

    • -o

      输出到指定的output文件中。

      如果不指定,直接显示在屏幕上。

  • 切换主备实例参数:
    • -h

      指定需要切换实例的服务器名称。

      取值范围:实例所在服务器名称。

    • -I

      指定的实例名称。

  • 修改IP参数:
    • -X

      新的集群配置文件路径。

      取值范围:clusterconfigchangeip.xml的路径。

    • --rollback

      当自动回滚失败时,用户排除错误后,输入该参数执行手动回滚操作。

状态说明

  • 集群状态详解

    集群状态如表1所示。

    表1 集群状态说明

    字段

    字段含义

    字段值

    az_state

    az状态

    • fine:正常状态。
    • cm_stopped:表示cm没有启动无法写入az状态。
    • split_brain:脑裂状态,主备AZ断网,其他正常。
    • single_az_down:主或备站点不可用。
    • static_first:仲裁站点不可用。
    • single_az:仅主站点可用。
    • unknown:表示出现未知错误。

    cluster_state

    集群状态

    • Normal:表示集群可用,CN、DN主全部在线。
    • Unavailable:表示集群不可用,某Group的DN无主,CN全部掉线;或者某Group中online的节点个数小于等于该Group节点总数的一半(节点总数不包含Passive节点)。
    • Degraded:表示集群可用,但数据没有冗余备份,某Group的DN裸奔(Group只有一个主运行,备全部停止运行且无法启动)/CN裸奔(CN仅有一台online)。
    • Abnormal:表示集群中CN、DN中某台机器状态不是online。

    balanced

    显示是否有集群实例发生过主备切换。

    • true:集群DN分布与load/reload时保持一致。
    • false:不一致。
  • AZ Status状态详解

    每一行表示一个AZ状态,每个AZ状态包含3个字段:AZ,ROLE,STATUS

    表2 AZ状态说明

    字段

    字段含义

    字段值

    AZ

    站点名称

    配置文件中的命名。

    ROLE

    站点角色

    分为3种角色:主、备、仲裁,对应primary,standby,quorum。

    STATUS

    站点状态

    • ONLINE:站点中至少有一个主机在线。
    • OFFLINE:站点上所有主机掉线。
  • Host Status状态详解

    每一行表示一个Host状态,每个Host包含HOST、AZ、STATUS、IP信息。

    表3 Host状态说明

    字段

    字段含义

    字段值

    HOST

    主机名称

    配置文件中的命名,一般是主机名。

    AZ

    站点名称

    配置文件中的命名,主机所在的站点名。

    STATUS

    主机状态

    • ONLINE:主机在线。
    • OFFLINE:主机掉线。
    • STOPPED:实例从未上线或者用户手动停止该实例。

    IP

    主机IP

    主机的IP。

  • 实例详解

    实例包含CM/ETCD/CN/DN/GTS。

    其中静态信息:INSTANCE,ID,HOST,PORT,DataDir,字段值含义针对不同实例基本相同。

    动态信息:STATUS,ROLE,字段值含义针对不同实例有所区别。

    说明:

    当配置文件不配置GTS实例时,可以正常安装集群,只是集群状态中不会显示GTS的实例信息。

    表4 实例静态信息说明

    字段

    字段含义

    字段值

    INSTANCE

    实例名称

    配置文件中的实例命令。

    ID

    实例ID

    实例ID。

    HOST

    主机名称

    实例所在的主机名。

    PORT

    端口

    CM不涉及端口,所以不显示;

    ETCD显示的是Client Port;

    CN、DB Group显示提供服务的端口。

    DataDir

    各实例存储数据的目录

    CM不存储本地信息,不涉及,所以不显示。

    表5 CM动态信息说明

    字段

    字段含义

    字段值

    STATUS

    实例状态

    • ONLINE:实例在线。
    • OFFLINE:实例掉线。
    • STOPPED:实例从未上线或者用户手动停止该实例。

    ROLE

    实例角色

    • primary:主CM。
    • slave:备CM。
    • 空:表示所有CM都不在线,无人抢主。
    表6 ETCD动态信息说明

    字段

    字段含义

    字段值

    STATUS

    实例状态

    • ONLINE:实例在线。
    • OFFLINE:实例掉线。
    • STOPPED:实例从未上线或者用户手动停止该实例。

    ROLE

    实例角色

    • leader:主etcd。
    • follower:从etcd。
    • backup:不在etcd集群中,备用。
    表7 CN动态信息说明

    字段

    字段含义

    字段值

    STATUS

    实例状态

    • ONLINE:实例在线。
    • OFFLINE:实例掉线。
    • STOPPED:实例从未上线或者用户手动停止该实例。
    • NEED_REPAIR:出现故障需要修复。
    • DELETED:实例由于出现故障被隔离。

    ROLE

    实例角色

    no role:CN不分主备,所以没有角色。

    表8 DN(DB Group)动态信息说明

    字段

    字段含义

    字段值

    STATUS

    实例状态

    • ONLINE:实例在线。
    • OFFLINE:实例掉线。
    • STOPPED:实例从未上线或者用户手动停止该实例。
    • DISCONNECTED:备机与主机失联。
    • NEED_REPAIR:出现故障需要修复。
    • BUILDING:正在building。
    • UNSTABLE:DB在某种不稳定状态,比如磁盘满等。

    ROLE

    实例角色

    • primary:主DB。
    • standby:备DB。
    • passive:passiveDB。
    表9 GTS动态信息说明

    字段

    字段含义

    字段值

    STATUS

    实例状态

    • ONLINE:实例在线。
    • OFFLINE:实例掉线。
    • STOPPED:实例从未上线或者用户手动停止该实例。
    • NEED_REPAIR:出现故障需要修复。
    • UNSTABLE:GTS在某种不稳定状态,比如磁盘满等。

    ROLE

    实例角色

    • primary:主GTS。
    • slave:备GTS。
  • 管理IP详解

    每一行表示一个主机上配置的管理IP,管理平面通过管理IP登录主机。

    表10 管理IP信息说明

    字段

    字段含义

    字段值

    HOST

    主机名称

    配置文件中的命名,一般是主机名。

    IP

    管理平面登录主机所使用的IP

    配置文件中innerManageIp1的参数值。如果未配置该参数,则使用backIP。一个主机上可配置多个管理IP。

示例

  • 启动集群。
    omm@plat1:~> gs_om -t start Starting cluster ========================================= cluster_state : Normal Successfully started cluster. ========================================= End started cluster.
  • 启动集群中单个主机。
    omm@plat1:~> gs_om -t start -h plat1 Starting node. ========================================= Successfully started node. ========================================= End started node.
  • 启动集群中指定实例。
    omm@plat1:~> gs_om -t start -h plat1 -I DB1_1 Starting instance ========================================= Successfully started instance. ========================================= End started instance.
  • 启动集群中某个group
    omm@plat1:~> gs_om -t start -g group_1 Starting group ========================================= Successfully started group. ========================================= End started group.
  • 启动集群中单个AZ,分两种场景:使用Zenith_HA内核和使用Zenith_Zpaxos内核的单AZ拉起。
    • 使用Zenith_HA内核的单AZ拉起:
      omm@plat1:~> gs_om -t start --az=AZ3 Starting az ========================================= Starting specified az in the cluster. Clean old cm and etcd for specified AZ. Successfully clean old cm and etcd for specified AZ. Restarting etcd for specified AZ. Successfully restarted etcd for specified AZ. Checking the etcd status. Successfully checked the etcd status. Restarting cmAgent for specified AZ. Successfully restarted cmAgent for specified AZ. start the specified az in the cluster. ....................80s ====================================================================== Finish to start the specified az in the cluster.
    • 使用Zenith_Zpaxos内核的单AZ拉起:
      omm@plat1:~> gs_om -t start --az=AZ3 Starting az ========================================= Starting specified az in the cluster. Clean old cm and etcd for specified AZ. Successfully clean old cm and etcd for specified AZ. Restarting etcd for specified AZ. Successfully restarted etcd for specified AZ. Checking the etcd status. Successfully checked the etcd status. Generating new json for specified az. Successfully generate new json for specified az. Changing the instances config for specified az. Successfully changed the instances config for specified az. Restarting cmAgent for specified AZ. Successfully restarted cmAgent for specified AZ. Stop the specified az in the cluster. Successfully stop the specified az in the cluster. start the specified az in the cluster. ....................80s ====================================================================== Finish to start the specified az in the cluster. Updating cn dn data_node$ for specified. Successfully updating cn dn data_node$ for specified. Deleting the tmp files for specified az. Successfully deleting the tmp files for specified az. Successfully starting specified az in the cluster.
  • 停止集群。
    omm@plat1:~> gs_om -t stop Stopping cluster. ========================================= Successfully stopped cluster. ========================================= End stop cluster.
  • 停止集群中单个主机。
    omm@plat1:~> gs_om -t stop -h plat1 Stopping node. ========================================= Successfully stopped node. ========================================= End stop node.
  • 停止集群中指定实例。
    omm@plat1:~> gs_om -t stop -h plat1 -I DB1_1 Stopping instance. ========================================= Successfully stopped instance. ========================================= End stop instance.
  • 停止集群中某个group
    omm@plat1:~> gs_om -t stop -g group_1 Stopping group ========================================= Successfully stopped group. ========================================= End stop group.
  • 手动拉起ETCD。
    omm@plat1:~> gs_om -t startetcd Restarting etcd in the cluster. Clean old cm and etcd for cluster. Successfully clean old cm and etcd for cluster. Restart etcd for cluster. Restart cmAgent for cluster. Successfully restarting etcds in the cluster.
    说明:

    使用“gs_om -t startetcd”命令拉起ETCD后,集群中的CM server仍处于STOPPED状态,此时需要使用“gs_om -t start”命令手动重启集群才可恢复CM server到正常状态。

  • 手动停止ETCD。
    omm@plat1:~> gs_om -t stopetcd Stop etcd is a high-risk operation. Are you sure you want to continue (yes/no)?yes Checking the cluster condition for stopping etcd. Checking the inst process on every node for stoppig etcd. Successfully checked the inst process on every node for stopping etcd. Successfully checked the cluster condition for stopping etcd. Stopping etcd in the cluster. Clean old cm and etcd for cluster. Successfully clean old cm and etcd for cluster. Successfully stopped etcd in the cluster.
  • 查看集群详细状态信息,含实例状态信息。
    omm@plat1:~> gs_om -t status Set output to terminal. --------------------------------------------------------------------Cluster Status-------------------------------------------------------------------- az_state : fine cluster_state : Normal balanced : true ----------------------------------------------------------------------AZ Status----------------------------------------------------------------------- AZ:AZ1 ROLE:primary STATUS:ONLINE AZ:AZ2 ROLE:standby STATUS:ONLINE AZ:AZ3 ROLE:quorum STATUS:ONLINE ---------------------------------------------------------------------Host Status---------------------------------------------------------------------- HOST:plat1 AZ:AZ1 STATUS:ONLINE IP:10.10.0.11 HOST:plat2 AZ:AZ2 STATUS:ONLINE IP:10.10.0.12 HOST:plat3 AZ:AZ3 STATUS:ONLINE IP:10.10.0.13 ----------------------------------------------------------------Cluster Manager Status---------------------------------------------------------------- INSTANCE:CM1 ROLE:primary STATUS:ONLINE HOST:plat1 ID:1 INSTANCE:CM2 ROLE:slave STATUS:ONLINE HOST:plat2 ID:2 INSTANCE:CM3 ROLE:slave STATUS:ONLINE HOST:plat3 ID:3 ---------------------------------------------------------------------ETCD Status---------------------------------------------------------------------- INSTANCE:ETCD1 ROLE:follower STATUS:ONLINE HOST:plat1 ID:7001 PORT:22231 DataDir:/guassdb/data/data_etcd INSTANCE:ETCD2 ROLE:follower STATUS:ONLINE HOST:plat2 ID:7002 PORT:22231 DataDir:/guassdb/data/data_etcd INSTANCE:ETCD3 ROLE:leader STATUS:ONLINE HOST:plat3 ID:7003 PORT:22231 DataDir:/guassdb/data/data_etcd ----------------------------------------------------------------------CN Status----------------------------------------------------------------------- INSTANCE:cn_5001 ROLE:no role STATUS:ONLINE HOST:plat1 ID:5001 PORT:9079 DataDir:/gaussdb/data/data_cn1 ----------------------------------------------------------Instances Status in Group (group1)---------------------------------------------------------- INSTANCE:DB1_1 ROLE:primary STATUS:ONLINE HOST:plat1 ID:6001 PORT:15431 DataDir:/gaussdb/data/data_dn INSTANCE:DB2_1 ROLE:standby STATUS:ONLINE HOST:plat2 ID:6002 PORT:15431 DataDir:/gaussdb/data/data_dn ---------------------------------------------------------------------Manage IP------------------------------------------------------------------------ HOST:plat3 IP:10.10.0.19 HOST:plat2 IP:10.10.0.22 HOST:plat1 IP:10.10.0.24
  • DB2_1备实例所在主机plat2,以切换备DB2_1为例,执行命令。
    omm@plat1:~>gs_om -t switch -h plat2 -I DB2_1 Switching instances. Successfully switched cluster.
  • 通过集群状态中balanced字段值为true或false来判断是否切换过实例,true表示集群已处于平衡状态,false表示集群状态不平衡。
    omm@plat1:~> gs_om -t status Set output to terminal. --------------------------------------------------------------------Cluster Status-------------------------------------------------------------------- az_state : fine cluster_state : Normal balanced : false ----------------------------------------------------------------------AZ Status----------------------------------------------------------------------- AZ:AZ1 ROLE:primary STATUS:ONLINE AZ:AZ2 ROLE:standby STATUS:ONLINE AZ:AZ3 ROLE:quorum STATUS:ONLINE ---------------------------------------------------------------------Host Status---------------------------------------------------------------------- HOST:plat1 AZ:AZ1 STATUS:ONLINE IP:10.10.0.11 HOST:plat2 AZ:AZ2 STATUS:ONLINE IP:10.10.0.12 HOST:plat3 AZ:AZ3 STATUS:ONLINE IP:10.10.0.13 ----------------------------------------------------------------Cluster Manager Status---------------------------------------------------------------- INSTANCE:CM1 ROLE:primary STATUS:ONLINE HOST:plat1 ID:1 INSTANCE:CM2 ROLE:slave STATUS:ONLINE HOST:plat2 ID:2 INSTANCE:CM3 ROLE:slave STATUS:ONLINE HOST:plat3 ID:3 ---------------------------------------------------------------------ETCD Status---------------------------------------------------------------------- INSTANCE:ETCD1 ROLE:follower STATUS:ONLINE HOST:plat1 ID:7001 PORT:22231 DataDir:/guassdb/data/data_etcd INSTANCE:ETCD2 ROLE:follower STATUS:ONLINE HOST:plat2 ID:7002 PORT:22231 DataDir:/guassdb/data/data_etcd INSTANCE:ETCD3 ROLE:leader STATUS:ONLINE HOST:plat3 ID:7003 PORT:22231 DataDir:/guassdb/data/data_etcd ----------------------------------------------------------------------CN Status----------------------------------------------------------------------- INSTANCE:cn_5001 ROLE:no role STATUS:ONLINE HOST:plat1 ID:5001 PORT:9079 DataDir:/gaussdb/data/data_cn1 ----------------------------------------------------------Instances Status in Group (group1)---------------------------------------------------------- INSTANCE:DB1_1 ROLE:standby STATUS:ONLINE HOST:plat1 ID:6001 PORT:15431 DataDir:/gaussdb/data/data_dn INSTANCE:DB2_1 ROLE:primary STATUS:ONLINE HOST:plat2 ID:6002 PORT:15431 DataDir:/gaussdb/data/data_dn ---------------------------------------------------------------------Manage IP------------------------------------------------------------------------ HOST:plat3 IP:10.10.0.19 HOST:plat2 IP:10.10.0.22 HOST:plat1 IP:10.10.0.24
  • 停止集群,修改IP。
    omm@plat1:~> gs_om -t changeip -X /opt/software/gaussdb/clusterconfigchangeip.xml Distributing files to all nodes. Successfully distributed files. Checking the cluster configuration differences. Creating the backup directory. Successfully created backup directory. Backup cluster configuration. Successfully backup cluster configuration. Modifying instance configuration files. Successfully modified instance configuration files. Restart Etcd cluster for changing Ip. Clean old cm and etcd for cluster. Successfully clean old cm and etcd for cluster. Restart etcd for cluster. Successfully restart Etcd cluster for changing Ip. Starting the cluster. Successfully started the cluster. Updating cluster node info. Successfully updated cluster node info. Checking the cluster status. Successfully checked the cluster status. Successfully changed cluster's IP addresses.
  • 查询集群esn编号。
    omm@plat1:~> gs_om -t esn GS1FFFFFCFFA163E5DCE185D3E6851
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论