GBase 8a数据库集群,支持从现有集群缩容操作,可以缩容多个数据节点,也可以缩容多个管理节点,当然也可以同时缩容。其中数据节点缩容要创建新的分布策略,将数据重分布到新的distribution上。本文是一个详细操作步骤。
关于缩容相反的扩容的操作,请参考 GBase 8a 扩容操作详细实例
环境
操作环境是一套V95版本的集群,共3个对等节点。本次缩容目标是将203节点从集群服务里移除。
如下是集群当前状态和数据分布策略。
[gbase@localhost ~]$ gcadmin
CLUSTER STATE: ACTIVE
VIRTUAL CLUSTER MODE: NORMAL
=============================================================
| GBASE COORDINATOR CLUSTER INFORMATION |
=============================================================
| NodeName | IpAddress | gcware | gcluster | DataState |
-------------------------------------------------------------
| coordinator1 | 10.0.2.102 | OPEN | OPEN | 0 |
-------------------------------------------------------------
| coordinator2 | 10.0.2.202 | OPEN | OPEN | 0 |
-------------------------------------------------------------
| coordinator3 | 10.0.2.203 | OPEN | OPEN | 0 |
-------------------------------------------------------------
=========================================================================================================
| GBASE DATA CLUSTER INFORMATION |
=========================================================================================================
| NodeName | IpAddress | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
| node1 | 10.0.2.102 | 3 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node2 | 10.0.2.202 | 3 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node3 | 10.0.2.203 | 3 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
编写新的分布策略配置文件
因为要缩容数据服务,所以先编写新的分布策略,不要包含要缩容的数据节点IP。本例中保留了102和202节点。
[gbase@localhost gcinstall]$ cp gcChangeInfo.xml gcChangeInfo_2node.xml
[gbase@localhost gcinstall]$ vi gcChangeInfo_2node.xml
[gbase@localhost gcinstall]$ cat gcChangeInfo_2node.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
<rack>
<node ip="10.0.2.102"/>
<node ip="10.0.2.202"/>
</rack>
</servers>
[gbase@localhost gcinstall]$
开始创建新的分布策略
原有的分布策略编号ditribution ID是3,新的是5。由于这个集群已经做过多次测试操作,ID不是连续的。一般现场首次操作都是从1开始,后面的ID是连续的。
新的分布策略里,102和202两个节点是互备的。
[gbase@localhost gcinstall]$ gcadmin distribution gcChangeInfo_2node.xml p 1 d 1
gcadmin generate distribution ...
gcadmin generate distribution successful
[gbase@localhost gcinstall]$ gcadmin showdistribution
Distribution ID: 5 | State: new | Total segment num: 2
Primary Segment Node IP Segment ID Duplicate Segment node IP
========================================================================================================================
| 10.0.2.102 | 1 |