3.数据重分布
数据rebalance重分布部分参考文档《GBase 8a MPP Cluster产品手册》4.4.1.5 rebalance章节。
rebalance命令是把表从一个distribution转换到另一个distribution的异步执行命令。在coordinator上使用gccli执行rebalance命令后,rebalance任务会被加入到gclusterdb.rebalancing_status集群表中。coordinator集群会从gclusterdb.rebalancing_status中选取优先级最高的gcluster_rebalancing_concurrent_count(默认值为5)个表进行rebalance。coordinator集群中只会有一个coordinator节点负责后台执行表rebalance。
rebalance任务执行状态需要从gclusterdb.rebalancing_status表中查询。
1)数据重分布
按表级进行重分布
语法格式
rebalance table[database_name.] table_name [to distribution_id]
按库级进行重分布
语法格式
rebalance database database_name [to distribution_id]
2)查询表的rebalance状态
gbase> select index_name, status, percentage from gclusterdb.rebalancing_status;
3)暂停表重分布
pause rebalance table
如果table_name处于STARTING或者RUNNING状态,可以使用pause rebalance table命令暂停table_name的rebalance操作。如果pause rebalance table命令返回影响行数为1,则table_name暂停成功;如果返回影响行数为0,则table_name暂停不生效。
语法格式
pause rebalance table [database_name.]table_name
4)继续表重分布
continue rebalance table
语法格式 continue rebalance table [database_name.]table_name
命令说明
如果 table_name处于 PAUSED状态,可以使用 continue rebalance table继续 rebalance
查询表的rebalance状态
gbase> select index_name, status, percentage from gclusterdb.rebalancing_status;

4.清理旧distribution
当所有表的重分布完成,即满足以下2个条件时
1)gclusterdb.rebalancing_status系统表中所有表status= COMPLETED, percentage=100, distribution_id=最新的distribution_id。
2)gbase.table_distribution系统表中,data_distribution_id全部等于最新的distribution_id。
此时,可以移除旧的distribution
[gbase@lz-node-0 ~]$ gcadmin rmdistribution 1
cluster distribution ID [1]
it will be removed now
please ensure this is ok, input y or n: y
gcadmin remove distribution [1] success




