代码改变世界

4 Gbase 8a 集群管理工具

2021-08-25 20:11  那个,我  阅读(606)  评论(0编辑  收藏  举报

集群管理工具

/gcware/bin/gcadmin

- 集群管理:集群状态、集群模式、帮助、版本
-  VC管理:创建VC/删除VC/启停VC/导入VC
- 节点管理:添加节点、删除节点、替换节点、设置节点
- 分布信息:创建分布表、删除分布表、查看分布表、导出分布表
- 日志管理:DDL/DML/feventlog/failover

gcadmin --help
gcadmin -V
gcadmin
gcadmin showcluster c d f
gcadmin 

集群状态管理

集群状态

ACTIVE    正常状态。当coordinator节点1/2以上故障时,gcware服务停用,状态异常。

集群模式

NORMAL      正常模式
READONLY    扩容,替换,数据备份时集群会有一段时间只读。
Recovery    数据恢复等特殊场景,该模式不能执行任何SQL操作

集群模式切换

gcadmin switchmode readonly

模组进程状态

- open: 正常状态
- offline: 一般为硬件故障,修复后需重启相关进程
- close: 启动失败或意外关闭。需查看日志修复后重启相关进程

模组进程

Coordinator Node
    gcware       数据共享和同步
    gclusterd    SQL解析,优化,生成执行计划,下发SQL给DataNode
    gcrecover    数据不一致下的修复
Data Cluster
    gnode:gbased    数据本地计算和存取
    syncserver:gc_sync_server    数据同步和一致性检查.gcware发现数据不同步,通知sync执行同步
监控
    gcmonit    监控集群各进程且监控gcmmonit进程,并负责对应进程故障下的拉起
    gcmmonit   只监控gcmonit进程,并负责故障下拉起

    gcmonit --start/stop/restart/status/help/version

启停进程

gcluster_servics all/xxx start/stop/restart

数据一致性

DataState
    0 主备分片数据一致
    1 主备分片数据不一致。gcware先恢复DDL操作,然后调用gc_sync_recover恢复数据,恢复后自动转换状态为0.
    自动恢复原理:某节点执行命令失败后,gcware会监控错误日志,然后调用同步工具自动修复节点数据不一致的情况。

集群日志信息

DDL/DML Event:DDL/DML执行成功情况下,记录执行过程中造成主备分片不一致的节点信息

gcadmin showddlevent [<表名 段明 节点IP> | 最大返回数 ] (默认返回16条)
gcadmin showdmlevent [<表名 段明 节点IP> | 最大返回数 ] (默认返回16条)

DMLstorageevent DML执行成功情况下,记录识别出的数据或元数据文件损坏的异常节点信息

gcadmin showdmlstorageevent [<表名 段明 节点IP> | 最大返回数 ] (默认返回16条)    
状态不显示同步SCN号,出现该错误说明节点出现比较严重数据不一致,修复需要通过copy文件的方式处理

管理节点主要维护数据库的元数据
Failover日志

管理节点执行SQL时故障,接管节点会读取gcware中的SQL执行信息继续执行。该过程就是管理节点的failover机制
gcadmin showfailover
gcadmin showfailoverdetail <commitid> [xml_file_name] 显示详细信息并输出到文件

- state
    0. 初始化
    1. add_res,添加集群锁
    2. set_info 设置failover信息
    3. set_status 设置分片状态
    4. set_rebalance_info 
    5. set_rebalance_status
- takeover node
    不发生接管时显示 0.0.0.0
- takeover number
    failover接管次数,gcware通过gcluster结果后+1

分布信息管理

distribution表,用于记录节点和分片的对应关系的表

pattern 1    机架高可用
pattern 2    节点高可用
pattern 手动创建分规则,修改gcChangeInfo.xml文件。
节点内分片数要小于机架内的节点数

gcadmin distribution gcChangeInfo.xml    生成案例分片规则
gcadmin getdistribution <ID> <distribution_info.xml>    导出分布表
gcadmin showdistribution [node | f]    查看分布表。node以节点为单位,f以xml文件显示。
gcadmin rmdistribution [id] 删除分布表
    - 正在使用则无法删除,需先refreshnodedatamap drop <ID>才可删除
    - 有fevent log,需先清除才可删除
    - 删除时,需确认所有GCluster节点正常。否则删除后会产生不可恢复的fevent log