兼容模式修改为多vc模式
一、缩容
1、创建新的distribution,仅填写保留节点
修改配置文件
原文件
<?xml version="1.0" encoding="utf-8"?>
<servers>
<rack>
<node ip="192.168.18.13"/>
<node ip="192.168.18.11"/>
<node ip="192.168.18.14"/>
</rack>
</servers>
修改后
<?xml version="1.0" encoding="utf-8"?>
<servers>
<rack>
<node ip="192.168.18.13"/>
</rack>
</servers>
[gbase@gbaseman gcinstall]$ gcadmin distribution gcChangeInfo.xml p 2 d 0 pattern 2
gcadmin generate distribution ...
gcadmin generate distribution successful
2.初始化hashmap并进行数据重分布
gbase> initnodedatamap;
Query OK, 0 rows affected, 10 warnings (Elapsed: 00:00:00.30)
gbase> rebalance instance;
Query OK, 19 rows affected (Elapsed: 00:00:00.59)
gbase> select index_name, status, percentage from
gclusterdb.rebalancing_status;
+---------------+-----------+------------+
| index_name | status | percentage |
+---------------+-----------+------------+
| test.t17 | COMPLETED | 100 |
| test.t_user | COMPLETED | 100 |
| test.t11 | COMPLETED | 100 |
+---------------+-----------+------------+
19 rows in set (Elapsed: 00:00:00.03)
查看表分布
gbase> select index_name,data_distribution_id from gbase.table_distribution;
+-------------------------------+----------------------+
| index_name | data_distribution_id |
+-------------------------------+----------------------+
| gclusterdb.dual | 14 |
| test.t16 | 14 |
| test.test2 | 14 |
| test.t17 | 14 |
| test.t9 | 14 |
3.删除旧的distribution
[gbase@gbaseman gcinstall]$ gcadmin rmdistribution 5;
cluster distribution ID [5]
it will be removed now
please ensure this is ok, input [Y,y] or [N,n]: y
select count(*) from gbase.nodedatamap where data_distribution_id=5 result is not 0
refreshnodedatamap drop 5 success
gcadmin remove distribution [5] success
4.将缩容节点从vc中删除,变为freenode
[gbase@gbaseman gcinstall]$ cat rmnode.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
<rack>
<node ip="192.168.18.11"/>
</rack>
<rack>
<node ip="192.168.18.14"/>
</rack>
</servers>
删除节点,将节点变为freenode状态
[gbase@gbasedata1 gcinstall]$ gcadmin rmnodes rmnode.xml single_vc_rm_to_rc
gcadmin remove nodes ...
gcadmin rmnodes from cluster success
创建vc2,vc3
[gbase@gbasedata1 gcinstall]$ cat vc.xml
<?xml version='1.0' encoding="utf-8"?>
<servers>
<rack>
<node ip="192.168.18.14"/>
</rack>
<vc_name name="vc3"/>
<comment message="vc3"/>
</servers>
[gbase@gbasedata1 gcinstall]$ gcadmin createvc vc2.xml
parse config file vc.xml
generate vc id: vc00004
add vc information to cluster
add nodes to vc
gcadmin create vc [vc2] successful
[gbase@gbasedata1 gcinstall]$ vim vc3.xml
[gbase@gbasedata1 gcinstall]$ gcadmin createvc vc3.xml
parse config file vc.xml
generate vc id: vc00005
add vc information to cluster
add nodes to vc
gcadmin create vc [vc3] successful
创建分片
[gbase@gbasedata1 gcinstall]$ cat gcChangeInfo_vc2.xml
<?xml version="1.0" encoding="utf-8"?>
<servers>
<rack>
<node ip="192.168.18.11"/>
</rack>
</servers>
创建vc2
[gbase@gbasedata1 gcinstall]$ gcadmin distribution gcChangeInfo_vc3.xml p 2 d 0 pattern 2 vc vc3
gcadmin generate distribution ...
[warning]: parameter [d num] is 0, the new distribution will has no segment backup
please ensure this is ok, input [Y,y] or [N,n]: y
NOTE: node [192.168.18.14] is coordinator node, it shall be data node too
copy system table to 192.168.18.14
gcadmin generate distribution successful
创建vc3
[gbase@gbasedata1 gcinstall]$ gcadmin distribution gcChangeInfo_vc2.xml p 2 d 0 pattern 2 vc vc2
gcadmin generate distribution ...
[warning]: parameter [d num] is 0, the new distribution will has no segment backup
please ensure this is ok, input [Y,y] or [N,n]: y
NOTE: node [192.168.18.11] is coordinator node, it shall be data node too
copy system table to 192.168.18.11
gcadmin generate distribution successful
初始化元数据
[gbase@gbasedata1 gcinstall]$ gccli
GBase client 9.5.3.26.5dad792a. Copyright (c) 2004-2022, GBase. All Rights Reserved.
gbase> use vc vc2;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> initnodedatamap;
Query OK, 0 rows affected, 1 warning (Elapsed: 00:00:00.22)
gbase> use vc vc3;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> initnodedatamap;
Query OK, 0 rows affected, 1 warning (Elapsed: 00:00:00.19)
设置默认vc
gbase> set default_vc for gbase=vc1;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)
•给用户设置 DEFAULT_VC 权限后,用户连接集群时就默认登录到该 VC;
•该VC的数据库对象访问权限需要另外分配;