南大通用GBase 8a V95通过SQL获得集群服务状态

GBase 8a 数据库集群,从V95开始,可以通过SQL查询系统元数据表来获得集群各个服务的状态,每个节点的内存,磁盘使用情况等。

元数据表

都在information_schema库下。

其中状态类:0=不可用(不包含此服务),1=正常,2=异常;

数据类,0=不可用(不包含此服务,或者服务进程异常,需要根据状态类区分),其它是实际占用的值(单位G,有2位小数)。

当gcluster和gnode在相同主机的目录下时,其磁盘使用量是相同的。

cluster_monit_info 集群所有节点

字段名称字段类型说明
HOSTvarchar(256)服务器IP
GCWARE_STATEvarchar(24)GCWARE服务状态,1:OPEN, 2:CLOSE, 0:本节点不含GCWARE服务
GCLUSTER_STATEvarchar(24)GCLUSTER服务状态,1:OPEN, 2:CLOSE, 0:本节点不含GCLUSTER服务
GNODE_STATEvarchar(24)GNODE服务状态,1:OPEN, 2:CLOSE, 0:本节点不含GNODE服务
SYNCSERVER_STATEvarchar(24)SYNCSERVER服务状态,1:OPEN, 2:CLOSE, 0:本节点不含SYNCSERVER服务
COORSERVER_DATA_STATUSvarchar(24)coordinator节点的DataState状态,1:正常,2:异常, 0:本节点不是coordinator节点
DATASERVER_DATA_STATUSvarchar(24)node节点的DataState状态,1:正常,2:异常, 0:本节点不是node节点
GCLUSTER_VMSIZEvarchar(24)gclusterd进程使用的虚拟内存大小(GB), 0:本节点不含gclusterd进程
GCLUSTER_VMRSSvarchar(24)gclusterd进程使用的物理内存大小(GB), 0:本节点不含gclusterd进程
GCLUSTER_DISK_AVAIL_PERCENTvarchar(24)$GCLUSTER_HOME/userdata/gcluster目录对应挂载磁盘的可用空间百分比, 0:本节点不含gclusterd进程
GCLUSTER_DISK_AVAIL_SIZEvarchar(24)$GCLUSTER_HOME/userdata/gcluster目录对应挂载磁盘的可用剩余空间(GB), 0:本节点不含gclusterd进程
GNODE_VMSIZEvarchar(24)gbased进程使用的虚拟内存大小(GB), 0:本节点不含gbased进程
GNODE_VMRSSvarchar(24)gnode进程使用的物理内存大小(GB), 0:本节点不含gbased进程
GNODE_DISK_AVAIL_PERCENTvarchar(24)$GBASE_HOME/userdata/gbase目录对应挂载磁盘的可用空间百分比, 0:本节点不含gbased进程
GNODE_DISK_AVAIL_SIZEvarchar(24)$GBASE_HOME/userdata/gbase目录对应挂载磁盘的可用剩余空间(GB), 0:本节点不含gbased进程
CLUSTER_STATUSvarchar(24)集群状态,1:ACTIVE
CLUSTER_MODEvarchar(24)集群模式,1:NORMAL,2:READONLY, 3:RECOVERY

monit_info 当前节点

字段名称字段类型说明
VMSIZEvarchar(24)gclusterd或gbased进程使用的虚拟内存大小(GB)
VMRSSvarchar(24)Gclusterd或gbased进程使用的物理内存大小(GB)
DISK_AVAIL_SIZEvarchar(24)$GCLUSTER_HOME/userdata/gcluster或$GBASE_HOME/userdata/gbase目录对应挂载磁盘的剩余空间(GB)
DISK_AVAIL_PERCENTvarchar(24)$GCLUSTER_HOME/userdata/gcluster或$GBASE_HOME/userdata/gbase目录对应挂载磁盘的使用百分比

注意事项

由于该调用将访问gcware层,强行获得当前节点状态,所以会重新检查所有节点。在gcware刷新期间,不对外提供新的服务,新的请求将阻塞,直到gcware刷新完毕。

如果集群所有节点都正常,影响不大。但当部分节点繁忙,比如CPU,网络卡顿时,会导致节点返回时间边长,当主机OFFLINE,比如断电等,会需要等待timeout。

如果调用非常频繁,会影响现有业务执行,如果有节点离线,影响会放大。

建议频率最高每隔15分钟检查一次即可。

查询样例

[gbase@gbase_rh7_001 ~]$ gcadmin
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

================================================================
|            GBASE COORDINATOR CLUSTER INFORMATION             |
================================================================
|   NodeName   |   IpAddress   | gcware | gcluster | DataState |
----------------------------------------------------------------
| coordinator1 | gbase_rh7_001 |  OPEN  |   OPEN   |     0     |
----------------------------------------------------------------
=========================================================================================================
|                                    GBASE DATA CLUSTER INFORMATION                                     |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |              gbase_rh7_001               |       2        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------
gbase> select * from cluster_monit_info\G
*************************** 1. row ***************************
                       HOST: gbase_rh7_001
               GCWARE_STATE: 1
             GCLUSTER_STATE: 1
                GNODE_STATE: 1
           SYNCSERVER_STATE: 1
     COORSERVER_DATA_STATUS: 1
     DATASERVER_DATA_STATUS: 1
            GCLUSTER_VMSIZE: 1.69
             GCLUSTER_VMRSS: 0.06
   GCLUSTER_DISK_AVAIL_SIZE: 22.35
GCLUSTER_DISK_AVAIL_PERCENT: 80.00
               GNODE_VMSIZE: 1.90
                GNODE_VMRSS: 0.06
      GNODE_DISK_AVAIL_SIZE: 22.35
   GNODE_DISK_AVAIL_PERCENT: 80.00
             CLUSTER_STATUS: 1
               CLUSTER_MODE: 1
1 row in set (Elapsed: 00:00:00.83)
gbase> select * from monit_info\G
*************************** 1. row ***************************
            VMSIZE: 1.71
             VMRSS: 0.07
   DISK_AVAIL_SIZE: 22.35
DISK_AVAIL_PERCENT: 80.00
1 row in set (Elapsed: 00:00:00.00)