暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a MPP Cluster快速扩容(搬数据分片)实战_下半场

原创 白军奎 2020-08-05
935

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;

图片3.png

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
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论