gcadmin 为管理员提供管理集群的操作, 包括生成、删除 distribution,查看集群状态、 distribution 信息等常用功能。
gcadmin 命令在 DBA 用户(即安装时指定的 dbaUser) 下进行操作, 支持的
选项如下:
# gcadmin --help Usage: gcadmin <command> [arg1[, arg2...]] 1. gcadmin distribution <gcChangeInfo.xml> <p num> [d num] [pattern 1|2] [db_pwd password]: generate distribution, db_root_pwd shall input if changed and new distribution data nodes more than old distribution 2. gcadmin rmdistribution [ID]: remove distribution 3. gcadmin addnodes gcChangeInfo.xml: add nodes 4. gcadmin rmnodes gcChangeInfo.xml: remove nodes 5. gcadmin showdistribution [node]: show cluster distribution, or segments on nodes when use parameter node 6. gcadmin switchmode <mode>: switch cluster mode,mode take value in: {normal|readonly|recovery} 7. gcadmin showlock: show current cluster lock information, include lock name, lock owner ip address, etc 8. gcadmin showddlevent [<tablename segname nodeip> | <tablename nodeip> | <max_fevent_num>]: show current cluster ddl fail event, replicated table segname is [n0] 9. gcadmin showdmlevent [<tablename segname nodeip> | <max_fevent_num>]: show current cluster dml fail event, replicated table segname is [n0] 10. gcadmin showdmlstorageevent [table ID segname nodeip] | <max_fevent_num>]: show current cluster dml storage fail event, replicated table segname is [n0] 11. gcadmin showcluster [c | d | f]: show current cluster information, include all nodes, cluster state and cluster node information 12. gcadmin getdistribution <ID> <distribution_info.xml> : get distribution information
13. gcadmin setnodestate ip <state>: set one node state,state take value in: unavailable 14. gcadmin --help: show help info 15. gcadmin -V,--version: show version info
distribution 命令
语法:
gcadmin distribution <gcChangeInfo.xml> <p number> [d number][pattern 1|2] [db_root_pwd password]
功能:
安装完集群, 生成 distribution 时, 需要使用该命令进行操作。
注: 此命令需要切换到 dbaUser 用户下, 才能正确执行。若使用其它用户执行生成 distribution命令, 将提示用户切换到dbaUser用户执行该命令, 并报错退出。
gcChangeInfo.xml:生成 distribution 的 gnode 节点信息文件。集群安装成功后,在执行安装操作命令的节点上的安装包目录下, 会生成一个gcChangeInfo.xml 文件。该文件为 xml 格式, 其根标签为<servers>, 描述生成distribution的 gnode节点信息; 子标签为<rack>, 即机架, 描述的是机架与gnode节点对应关系。安装后生成的 gcChangeInfo.xml中仅有一个<rack>,
其中包含集群中的所有 gnode 节点信息,在使用 pattern 1 模式生成distribution 时,可按机器部署情况插入多个<rack>标签,将 gnode节点信息插入到对应的<rack>标签下。
p number:每个数据主节点存放的分片数量,最小值为 1, p值乘数据节点数不大于 65535,即集群总分片数不大于 65535,否则 gcadmin 将报错退出。
d number:每个分片的备份数量,取值为 0, 1 或 2。若不输入参数 d,默认值为 1。
pattern number:生成distribution所使用模式,取值为 1或2, pattern1 为负载均衡模式, pattern 2 为高可用模式。若不输入参数 pattern,默认使用 pattern 1 生成 distribution。
db_root_pwd:生成新 distribution, 并且新旧 distribution 的数据节点不完全相同时输入。 如果数据库 root 用户密码不为空,需要在执行命令的过程中,传入数据库 root 用户密码。 目前密码中不支持单引 号,其它特殊符号用单引号包围。
示例:
生成 distribution 有 pattern 1, pattern 2 和编写 distribution 配置信息文件三种模式。使用编写 distribution 配置信息文件方式生成distribution 时,需手工编写一个配置文件,描述每个分片及其备份分片存放的节点信息。
pattern 1 为负载均衡模式,此模式下 gcChangeInfo.xml 中的每个 rack中的节点为一组,每个 rack 中的节点上主分片的备份分片 1 存放到gcChangeInfo.xml 中下一个 rack 中的节点上,备份分片 2 存放到
gcChangeInfo.xml 中上一个 rack 中的节点上。 gcChangeInfo.xml 中的第一个rack 的上一个 rack 为最后一个 rack,最后一个 rack 的下一个 rack 为第一个
rack。
使用 pattern 1 模式生成 distribution,每节点主分片数(即参数 p)必须小于每个 rack 的节点数,以此来保证备份分片分布均匀。每个 rack 包含的节点数尽可能相同,若 gcChangeInfo.xml 文件中有多余 1 个 rack 的节点数与其它 rack 不同, gcadmin将会提示用户系统性能可能会下降,需用户确认后才能生成 distribution。
在安装好集群后,在执行安装操作的节点上,安装包目录下会生成一个包含所有 gnode 节点信息的 gcChangeInfo.xml 文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<servers> <rack> <node ip="192.168.153.128"/> <node ip="192.168.153.129"/> <node ip="192.168.153.133"/> <node ip="192.168.153.134"/> <node ip="192.168.153.130"/> <node ip="192.168.88.137"/> </rack> </servers>
gcChangeInfo.xml 文件
根据实际机架和机器部署情况,在该文件中插入<rack>标签,如下所示:
<?xml version="1.0" encoding="utf-8"?> <servers> <rack> <node ip="192.168.153.128"/> <node ip="192.168.153.129"/> </rack> <rack> <node ip="192.168.153.133"/> <node ip="192.168.153.134"/> </rack> <rack> <node ip="192.168.153.130"/> <node ip="192.168.88.137"/> </rack>
</servers>
<rack>标签
使用 pattern 1 和该修改后的 gcChangeInfo.xml 文件生成 distribution。
如下所示:
$ gcadmin distribution gcChangeInfo.xml p 1 d 2 pattern 1
gcadmin generate distribution ... NOTE: node [192.168.153.129] is coordinator node, it shall be data node too NOTE: node [192.168.153.130] is coordinator node, it shall be data node too gcadmin generate distribution successful
生成 distribution
生成 distribution 后, 可使用 gcadmin showdistribution 和 gcadminshowdistribution node 命令查看生成的 distribution 信息, 如下所示:
$ gcadmin showdistribution
Distribution ID: 1 | State: new | Total segment num: 6
Primary Segment Node IP Segment ID Duplicate Segment node IP
===============================================================================
| 192.168.153.128 | 1 | 192.168.153.134 | 192.168.88.137
-------------------------------------------------------------------------------
| 192.168.153.129 | 2 | 192.168.153.133 | 192.168.153.130
-------------------------------------------------------------------------------
| 192.168.153.133 | 3 | 192.168.88.137 | 192.168.153.129
-------------------------------------------------------------------------------
| 192.168.153.134 | 4 | 192.168.153.130 | 192.168.153.128
-------------------------------------------------------------------------------
| 192.168.153.130 | 5 | 192.168.153.129 | 192.168.153.134
-------------------------------------------------------------------------------
| 192.168.188.137 | 6 | 192.168.153.128 | 192.168.153.133
===============================================================================
gcadmin showdistribution
$ gcadmin showdistribution node Distribution ID: 1 | State: new | Total segment num: 5
=============================================================================== |nodes|192.168.153.128|192.168.153.129|192.168.153.133|192.168.153.134|192.168. 153.130|192.168.88.137| ------------------------------------------------------------------------------- |primary| 1 | 2 | 3 | 4 | 5 | 6 | |segments| | | | | | | ------------------------------------------------------------------------------- |duplicate | 6 | 5 | 2 | 1 | 4 | 3 | |segments 1| | | | | | | ------------------------------------------------------------------------------- |duplicate | 4 | 5 | 6 | 5 | 2 | 1 | |segments 2| | | | | | | ===============================================================================
gcadmin showdistribution node
pattern 2 模式为高可用模式, 此模式下生成的 distribution 将每个 data节点的备份分片 1 存放到下一个 data 节点上, 备份分片 2 存放到上一个 data节点上。使用 pattern 2 模式配置文件gcChangeInfo.xml 中仅需一个 rack 即可,有多个 rack 也作为一个 rack 处理。
生成 distribution 的配置文件如下所示
<?xml version="1.0" encoding="utf-8"?> <servers> <rack> <node ip="192.168.153.128"/> <node ip="192.168.153.129"/> <node ip="192.168.153.133"/> </rack> <rack> <node ip="192.168.153.134"/> <node ip="192.168.153.130"/> <node ip="192.168.88.137"/>
</rack> </servers>
生成 distribution 的配置文件
使用 pattern 2 和该配置文件生成 distribution 如下所示
$ gcadmin distribution gcChangeInfo.xml p 2 d 2 pattern 2
gcadmin generate distribution ...
gcadmin generate distribution successful
生成 distribution
生成 distribution 后, 可使用 showdistribution 和 showdistribution node 命令查看生成的 distribution 信息, 如下所示:
$ gcadmin showdistribution Distribution ID: 21 | State: new | Total segment num: 12 Primary Segment Node IP Segment ID Duplicate Segment node IP =============================================================================== | 192.168.153.128 | 1 | 192.168.153.129 | 192.168.88.137 ------------------------------------------------------------------------------- | 192.168.153.129 | 2 | 192.168.153.133 | 192.168.153.128 ------------------------------------------------------------------------------- | 192.168.153.133 | 3 | 192.168.153.134 | 192.168.153.129 ------------------------------------------------------------------------------- | 192.168.153.134 | 4 | 192.168.153.130 | 192.168.153.133 ------------------------------------------------------------------------------- | 192.168.153.130 | 5 | 192.168.88.137 | 192.168.153.134 ------------------------------------------------------------------------------- | 192.168.188.137 | 6 | 192.168.153.128 | 192.168.153.130 ------------------------------------------------------------------------------- | 192.168.153.128 | 7 | 192.168.153.129 | 192.168.88.137
-------------------------------------------------------------------------------
| 192.168.153.129 | 8 | 192.168.153.133 | 192.168.153.128 ------------------------------------------------------------------------------- | 192.168.153.133 | 9 | 192.168.153.134 | 192.168.153.129 ------------------------------------------------------------------------------- | 192.168.153.134 | 10 | 192.168.153.130 | 192.168.153.133 ------------------------------------------------------------------------------- | 192.168.153.130 | 11 | 192.168.88.137 | 192.168.153.134 ------------------------------------------------------------------------------- | 192.168.188.137 | 12 | 192.168.153.128 | 192.168.153.130 ===============================================================================
gcadmin showdistribution 命令
$ gcadmin showdistribution node
Distribution ID: 21 | State: new | Total segment num: 12
===============================================================================
|nodes|192.168.153.128|192.168.153.129|192.168.153.133|192.168.153.134|192.168.
153.130|192.168.88.137|
-------------------------------------------------------------------------------
|primary| 1 | 2 | 3 | 4 | 5 | 6 |
|segments| 7 | 8 | 9 | 10 | 11 | 12 |
-------------------------------------------------------------------------------
|duplicate| 6 | 1 | 2 | 3 | 4 | 5 |
|segments 1| 12 | 7 | 8 | 9 | 10 | 11 |
-------------------------------------------------------------------------------
|duplicate| 2 | 3 | 4 | 5 | 6 | 1 |
|segments 2| 8 | 9 | 10 | 11 | 12 | 7 |
===============================================================================
gcadmin showdistribution node 命令
编写 distribution 配置信息文件模式需手工编写一个 distribution 分片配置的 xml 文件, 在文件中指明每个分片的主/备分片存放的节点。使用该方式生成 distribution 无需输入参数 p, d 和 pattern。生成 distribution 的gcChangeInfo.xml 文件如下所示
<?xml version="1.0" encoding="utf-8"?>
<servers> <cfgFile file="distribution.xml"/> </servers>
gcChangeInfo.xml 文件
distribution 分片配置信息文件 distribution.xml 如下所示
<?xml version='1.0' encoding="utf-8"?>
distributions>
<distribution>
<segments>
<segment>
<primarynode ip="192.168.153.125"/>
<duplicatenodes>
<duplicatenode ip="192.168.153.126"/>
<duplicatenode ip="192.168.153.127"/>
</duplicatenodes>
</segment>
<segment>
<primarynode ip="192.168.153.128"/>
<duplicatenodes>
<duplicatenode ip="192.168.153.129"/>
</duplicatenodes>
</segment>
</segments>
</distribution>
</distributions>
分片配置信息文件 distribution.xml
使用编写 distribution 信息文件模式生成 distribution 如下所示
$ gcadmin distribution gcChangeInfo.xml
gcadmin generate distribution ... gcadmin generate distribution successful
生成 distribution
$ gcadmin showdistribution
Distribution ID: 3 | State: new | Total segment num: 2
Primary Segment Node IP Segment ID Duplicate Segment node
IP
===========================================================================
=========
| 192.168.153.125 | 1 | 192.168.153.126
|
| | | 192.168.153.137
|
---------------------------------------------------------------------------
---------
| 192.168.153.128 | 2 | 192.168.153.129
|
===========================================================================
=========
showdistribution