一、862和95版本的gcadmin区别说明
862版本和953版本,存在vc管理的区别。95版本可以进行gcadmin rmfeventlog ip 操作。862是没有的
952版本和953版本也有一些参数的区别。比如gcadmin showddlevent detail,952是没有detail参数的。95328.4可以使用detail参数。这此以953为例进行说明
二、95版本的gcadmin分类说明及参数说明
A.distribution管理,包括生成集群节点的distribution,删除集群distribution。显示集群信息distribution。
gcadmin生成distribution
ü命令:
gcadmin distribution <gcChangeInfo.xml>
[d num] [extension] [pattern 1|2] [db_user user_name] [db_pwd password] [dba_os_password password] [vc vc_name]
ü参数说明:
1.参数gcChangeInfo.xml,生成distribution的gnode节点信息文件。集群安装成功后,会在安装包所在目录下生成一个名为gcChangeInfo.xml的示例文件。
2.参数p指一个节点存放主分片数量,distribution最多可存放65535个主分片,即p*node_number <= 65535。
3.参数d指每个主分片的备份分片数。目前取值为0,1或2。为0时显示警告信息。若不输入参数d,默认值为1
B.生成distribution命令
pattern为1时,负载均衡模式,node list的后一个节点为前一个节点做备份,最后一个节点的为第一节点做备份
•负载均衡模式pattern 1,此模式下gcChangeInfo.xml中的每个rack中的节点为一组,每个rack中的节点上主分片的备份分片1存放到gcChangeInfo.xml中下一个rack中的节点上,备份分片2存放到gcChangeInfo.xml中上一个rack中的节点上。gcChangeInfo.xml中的第一个rack的上一个rack为最后一个rack,最后一个rack的下一个rack为第一个rack。
•使用负载均衡模式生成distribution,每个节点主分片数(即参数p)必须小于每个rack的节点数,以此来保证备份分片分布均匀。
pattern为2时,node list的每个节点同时为前后两个节点做备份,最后一个节点和第一节点互相备份
•高可用模式 pattern 2
此模式下生成的distribution将每个data节点的备份分片1存放到下一个data节点上,备份分片2存放到上一个data节点上。使用高可用模式时,配置文件gcChangeInfo.xml中仅需一个rack即可,即使有多个rack也会作为一个rack处理。
C.获取distribution信息命令:
ü命令
gcadmin getdistribution<distribution_info.xml>
ü参数说明
获取指定ID的distribution信息,将distribution信息写入指定的distribution_info.xml文件中。用户可手工修改该文件后,使用该文件从新生成distribution。
ID
distribution ID,指定ID的distribution必须已存在。
distribution_info.xml:
用户指定的存放distribution信息的文件,若文件已存在则将其内容清空,写入distribution信息。
D.删除distribution
ü命令
gcadmin rmdistribution [ID] [vc vc_name]
ü参数说明:
[ID]:distribution id不可为空
[vc vc_name]:指定删除的distribution的vc 的名称。如果集群只有一个vc,不需要指定vcname
ü命令执行过程:
读取参数,获得要删除的distribution ID。若无参数则删除旧的distribution
检查distribution是否仍在使用,若仍在使用则报错退出。
调用gcware接口将distribution删除。
2.node管理,包括addnodes命令、rmnodes、switchmode、setnodestate
Øaddnodes命令
gcadmin addnodes gcChangeInfo.xml [vc_name | single_vc_add_to_rc]
参数说明:
gcadmin addnodes gcChangeInfo.xml vc_name:将gcChangeInfo.xml中指定数据节点添加到VC内,用于安装、扩容后freenode节点加入vc内
gcadmin addnodes gcChangeInfo.xml single_vc_add_to_rc :在兼容模式下,将新增节点添加到RootCluster(RC)中作为freenode。
Ørmnodes命令:
gcadmin rmnodes gcChangeInfo.xml [vc_name | single_vc_rm_to_rc]
gcadmin rmnodes gcChangeInfo.xml vc_name :从vc内删除节点信息
gcadmin rmnodes gcChangeInfo.xml single_vc_rm_to_rc:兼容模式下将节点从集群中移除,即将默认vc中的节点移除到root cluster中变为freenode。
改变集群状态命令:集群分为gcware、coordinator、vc(data),改变集群状态命令switchmode修改可改变vc的状态和coordinator状态集群状态:
ü命令:gcadmin switchmode [vc vc_name | coordinator]
ü参数说明
1.mode包括:[ normal | readonly | recovery ]显示在gcadmin显示VIRTUAL CLUSTER MODE
2.[vc vc_name | coordinator]:改变vc或者coor节点的状态
适用于集群备份数据,需要设置集群所有vc为readonly状态;集群恢复数据,需要设置集群所有vc为recovery状态
节点状态:
命令:gcadmin setnodestate ip
参数说明:
:failure unavailable normal
适用于集群节点替换时,需要设置节点为unavailable 状态
Øsetnodestate命令
3.vc管理,包括createvc、rmvc、renamevc、start vc和stop vc、importvc
Ø创建vc
命令:
gcadmin createvc <create_vc.xml | e example_file_name>
参数说明:
create_vc.xml参数:ip(freenode节点信息),vc_name(不能超过64个字节),comment_message
e example_file_name:生成xml示例文件
Ø删除vc
命令:
gcadmin rmvc <vc_name>
前提:
1)l删除vc前需要删除vc下的所有用户库表及其他数据库对象,删除镜像关系,删除拓扑信息。否则删除vc会报错
Ø重命名vc
命令:gcadmin renamevc oldName newName
Østartvc:启动VC即启动数据节点,如gbase、syncserver启动
gcadmin startvc <vc_name1 vc_name2 …> <os_dba_user_name> <os_dba_password>
参数说明:
vc_name1 vc_name2 :要启动的VC名,可以存在多个。
os_dba_user_name:操作系统dba用户名
os_dba_password :操作系统dba用户的密码
eg:gcadmin startvc vc1 gbase gbase
Østopvc:停止vc即停止数据节点服务,如gbase、syncserver停止
gcadmin stopvc <vc_name1 vc_name2 …> <os_dba_user_name> <os_dba_password>
参数说明:
vc_name1 vc_name2 :要启动的VC名,可以存在多个。
os_dba_user_name:操作系统dba用户名
os_dba_password :操作系统dba用户的密码
Øimportvc添加虚拟集群:不同集群间的vc(data节点)导入,成为当前集群的一个VC
ü命令:
gcadmin importvc importvc.xml
üimportvc.xml参数:
import_vc.xml:导入vc所使用的配置文件
e example_file_name:生成导入vc的示例文件
Ø镜像vc:镜像VC其实是通过对表创建镜像关系来实现的,所以所谓的镜像VC、镜像库等概念其实都是因为创建了镜像表才有的镜像关系。
1、创建镜像表命令
若表已存在,可以添加镜像关系:
alter table vc1.test.t1 create mirror to vc2 ;
若表已存在,vc2下也存在该表,可强制添加镜像关系:
alter table vc1.test.t1 create mirror to vc2 force ;
若表不存在,可以在创建表时指定:
create table t1(i int,j int)replicated mirror to vc2;
create table t1 mirror to vc2 as select * from tt;
说明:
1)只有两个vc的hashmap必须完全一致才可以创建镜像关系;所以在创建vc2时可以使用、initnodedatamap from vc1的命令进行创建,可保证vc1与vc2的;
2)vc2下的test库需要提前创建好,否则会报错;
3)force关键字,会强制删除vc2.test下已存在的表t1,重新创建与vc1.test.t1完全相同的表vc2.test.t1;
2、删除镜像表命令:alter table vc1.test.t1 delete mirror;
3、以库为单位批量创建镜像表关系:
alter database vc1.test create mirror to vc2;
alter database vc1.test create mirror to vc2 force;
说明:
1)该命令只影响test库当前已存在的表,对后续test库再新建表无影响;也就是执行完该操作后test库已存在的表均被创建了镜像关系,后续再建表若没有指定镜像关系则仍为非镜像表;
2)force关键字,会强制删除vc2.test下与vc1.test库中同名且没有镜像关系的表,重新创建与vc1.test库下完全相同的表;
4、以库为单位批量删除镜像表关系:
alter database vc1.test delete mirror;
4.集群状态管理:rmfeventlog
rmfeventlog:执行节点替换操作前,使用该命令将被替换节点(已被设置为unavailable状态)的所有fevent log(DDL fevent log、DML fevent log、DMLStorage fevent log)删除
命令:
gcadmin rmfeventlog ip
5.信息查询:showcluster、show lock、show failover、show feventlog
5.1.showddlevent
命令:
gcadmin showddlevent [detail] [ | | <max_fevent_num>] [f] [vc vc_name]
命令说明:
a.gcadmin showddlevent:查看集群所有DDL操作产生的数据恢复信息。
b.gcadmin showddlevent tablename nodeip:查看某个表在某个节点上由于DDL操作产生的数据恢复信息。
c.gcadmin showddlevent tablename segname nodeip:查看某个表的某个分片在特定节点上由于DDL操作产生的数据恢复信息。查看segname和nodeip 可使用use vc vc1;show nodes;
d.detail:增加显示4项信息(Request #59056,适用95328.4、95329.4版本)
Time:fevent产生的时间,精确到毫秒
Source:fevent来源,显示记录节点ip信息
SessionId:记录feventlog的sql执行的sessionid,sessionid为空显示为0
Cmd:执行sql类型,执行入口有三个,gcluster、gcrecover、set command
gcluster:dml如insert、delete、update、load。。。ddl如create_db,create_table,rename等
gcrecover:对于gcrecover记录的event显示为GCRecover
set command记录的event,显示为SET_OPTION
执行过程:
gcluster和gcrecovery新增四项字段信息,调用gcware接口,保存到gcware中,使用feventlog增加存储信息;
d.gcadmin showcluster nrt:
执行gcadmin showcluster默认采用实时探测机制(各个节点超时时间默认check_interval: 30);使用gcadmin showcluster nrt(Defect #59971),采用非实时探测机制,即执行gcadmin NRt只读取当前探测结果。
适用于集群内部分节点卡死后,gcadmin需要较长时间才能返回造成业务积压的问题。
测试方法:停止gclusterd或者gbased服务,执行gcadmin showcluster nrt,可以看到服务仍是正常的,如果去掉nrt参数(实时探测)可以看到服务是CLOSE状态。
注:
gcadmin showcluster nrt只是不进行节点状态的实时探测,间隔一段时间,定时探测的机制还是有效;
6.gcadmin --help、version命令