主要的知识点:
集群管理工具使用
gcadmin 用于对集群进行管理和监控,和数据库一起安装,目录在 gcware/bin 目录.
# 获取帮助
$ gcadmin --help
# 版本
$gcadmin -V
复制代码
1.查看集群状态
gcadmin showcluster [c] [d] [f]
参数说明:
[gbase@localhost ~]$ gcadmin showcluster
CLUSTER STATE: ACTIVE
VIRTUAL CLUSTER MODE: NORMAL
==================================================================
| GBASE COORDINATOR CLUSTER INFORMATION |
==================================================================
| NodeName | IpAddress | gcware | gcluster | DataState |
------------------------------------------------------------------
| coordinator1 | 192.168.176.120 | OPEN | OPEN | 0 |
------------------------------------------------------------------
| coordinator2 | 192.168.176.121 | OPEN | OPEN | 0 |
------------------------------------------------------------------
| coordinator3 | 192.168.176.122 | OPEN | OPEN | 0 |
------------------------------------------------------------------
=========================================================================================================
| GBASE DATA CLUSTER INFORMATION |
=========================================================================================================
| NodeName | IpAddress | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
| node1 | 192.168.176.120 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node2 | 192.168.176.121 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node3 | 192.168.176.122 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
复制代码
集群工作状态说明(VIRTUAL CLUSTER MODE)
集群工作状态有三种: normal /readonly /recovery
normal:正常模式,可以执行常规操作
readonly:只读模式,只能进行 sql 查询.不能进行 DDL\DML\Loader 操作.(比如在进行扩容\替换\数据备份时候,进群会有一段时间处于只读模式
recovery: 备份恢复模式,一般在执行集群数据恢复或者其他特殊场景使用.该模式下不可进行 SQL 操作.
管理员可以手动切换这些模式:
语法: gcadmin switchmodes ['normal', 'readonly' or 'recovery']
2.模组进程
模组进程也有三种状态: open/close/offline
open:模组正常
offline:模组进程下线,一般为硬件故障,修复后,重启相关进程即可.
close: 模组进程启动失败或意外关闭. (比如端口占用\配置文件错误等.)
模组进程介绍
Coordinator node:
gclusterj 进程名: gclusterd
gcware 进程名: gcware
自动恢复进程名: gcrevover
DataNode:
监控工具名:gcmonit / gcmmoint
模组监控工具
语法:
gcmonit < —start|—stop|—restart|–status[=<prog_name>]|-–help|–version>
gcmmonit < —start|—stop|—restart|–status[=<prog_name>]|-–help|–version>
[gbase@localhost ~]$ gcmonit --status
+-------------------------------------------------+
|SEG_NAME PROG_NAME STATUS PID |
+-------------------------------------------------+
|gcluster gclusterd Running 64461 |
|gcware gcware Running 4255 |
|gcrecover gcrecover Running 4404 |
|gcmmonit gcmmonit Running 4601 |
|gbase gbased Running 64506 |
|syncserver gc_sync_server Running 4593 |
+-------------------------------------------------+
复制代码
Note:
gcmmonit 和 gcmonit 实现的功能完全一致,只是检测范围不同
gcmmonit 只负责检测 gcmonit 程序的运行情况
gcmonit 负责检测各个服务和 gcmmonit 程序的运行情况
当集群中的 coordinator 节点的 Online 个数≤coordinator 节点总数的 1/2 时候,集群为了保证数据安全,相关的 gcware 服务会停用,禁止数据库操作.
模组启停
语法:
gcluster_services <gcware|gcluster|gcrecover|gbase|syncserver|all> <start|stop [--force]|restart [--force]|info>
参数说明:
# demo
[gbase@localhost ~]$ gcluster_services all info
gcware is running
gcluster is running
gcrecover is running
gbase is running
syncserver is running
复制代码
3.数据一致性状态
系统自动恢复: gcrecover 先恢复 DDL 操作,然后调用同步服务 gc_sync_server 恢复数据.恢复后,系统将状态转为 0. (原理:当某个节点执行命令失败后,数据恢复工具监控到错误日志,然后调用同步工具,自动修复节点数据不一致的情况,确保各节点数据的一致性.)
4.集群日志管理
错误日志
DDL event 日志
在 DDL 语句执行成功的情况下,记录执行过程中出现异常造成主备分片不一致的节点信息
语法:
command shall be: gcadmin showddlevent [<tablename segname nodeip> | <tablename nodeip> | <max_fevent_num>] [f] [vc vc_name]
参数:
表名: 库名.表名
段名: 表分片的名字.
节点 ip
最大返回数:默认返回 16 条,超过部分将不显示
DML event 日志:
在 DML 语句执行成功的情况下,记录造成主备分片不一致的异常节点的信息。
语法:
gcadmin showdmlevent [<tablename segname nodeip> | <max_fevent_num>] [f] [vc vc_name]
参数:和上面的一样
DMLstorageevent 日志:
执行 DML 成功的情况下,记录识别出的数据或元数据文件损坏的异常节点信息。
语法:
gcadmin showdmlstorageevent [[table ID segname nodeip] | <max_fevent_num>] [f] [vc vc_name]
参数:和上面一致
故障日志
Failover 日志:当执行某 SQL 的管理节点出现故障,无法正常完成 SQL 操作时,接管节点将读取记录于 gcware 中的 SQL 执行信息继续执行。该过程就是管理节点的 failover 机制。
gcadmin showfailover
Failover 信息记录的内容:Commit id ,Database 名,Table 名,Scn 号,Type, Create time,State,original node,takeover node,Takeover 接管次数。
显示详细信息:
gcadmin showfailoverdetail <commitid> [ xml_file_name ]
参数:
5.分布信息管理
也就是对 distribution 表的管理.gcadmin 工具提供对 distribution 表的创建\删除\导出等操作.
distribution 表:用于记录分片和节点对应关系的表.
分片的分布规则:
按照模板生成分片备份:
pattern 1 (rack 高可用+负载均衡)
pattern 2 (节点高可用(
手动指定
自定义模式(需要自己写 xml 分片配置文件)
生成 distribution 表
gcadmin distribution <gcChangeInfo.xml> <p num> [d num] [extension] [pattern 1|2] [db_user user_name] [db_pwd password] [vc vc_name]
复制代码
参数说明:
gcChangeInfo.xml: 是描述集群内节点和 rack(机柜)对应关系的文件。
p:每个数据节点存放的主分片数量。注:pattern 1 模式下,p 的取值范围为:1<=p<rack 内节点数。
d:每个主分片的备份数量,取值为 0,1 或 2。默认值为 1。
pattern:描述分片备份规则的模板。1 为 rack 高可用,2 为节点高可用。默认为 1。
导出 distribution:
gcadmin getdistribution <ID> <distribution_info.xml>
#嗯.内容类似这样
<?xml version='1.0' encoding="utf-8"?>
<distributions>
<distribution>
<segments>
<segment>
<primarynode ip="192.168.176.120"/>
<duplicatenodes>
<duplicatenode ip="192.168.176.121"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.176.121"/>
<duplicatenodes>
<duplicatenode ip="192.168.176.122"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.176.122"/>
<duplicatenodes>
<duplicatenode ip="192.168.176.120"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.176.120"/>
<duplicatenodes>
<duplicatenode ip="192.168.176.122"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.176.121"/>
<duplicatenodes>
<duplicatenode ip="192.168.176.120"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.176.122"/>
<duplicatenodes>
<duplicatenode ip="192.168.176.121"/>
</duplicatenodes>
</segment>
</segments>
</distribution>
</distributions>
复制代码
查看 distribution
gcadmin showdistribution [node | f]
Distribution ID: 1 | State: new | Total segment num: 6
============================================================
| nodes |192.168.176.120|192.168.176.121|192.168.176.122|
------------------------------------------------------------
| primary | 1 | 2 | 3 |
| segments | 4 | 5 | 6 |
------------------------------------------------------------
|duplicate | 3 | 1 | 2 |
|segments 1| 5 | 6 | 4 |
============================================================
复制代码
删除 distribution
gcadmin rmdistribution [ID]
评论