GBase 8a
其他
文章

gn节点数据重分布

发表于2025-01-01 10:46:1022次浏览1个评论

之前做了重分布一段时间后停掉了

重分布之前
USE vc vc_ggjc;
select count(*) from gclusterdb.rebalancing_status;
select status,count(*) from gclusterdb.rebalancing_status group by status;
--发现只有COMPLETED,可以删除rebalancing_status表
truncate gclusterdb.rebalancing_status;

 

use vc vc_ggjc;
rebalance instance to 9;

cancel rebalance instance;
取消当前集群下所有处于starting,running,paused状态表的rebalance操作
返回的影响行数是取消掉的rebalance任务数

select * from gclusterdb.rebalancing_status;
-查看同步

select count(*)  from gbase.table_distribution;
select count(*)  from gbase.table_distribution where data_distribution_id =2;
-查看表分布


优先迁移复制表
use vc vc_ggjc;

对所有的表执行update操作
select tbName from gbase.table_distribution where dbname='db1' and isReplicate='YES' and data_distribution_id =2 into outfile '/tmp/0918.txt';

# cat 0918.txt |awk -F '' '{print "update gclusterdb.rebalancing_status set priority =1 where table_name = \47" $0 "\47 and db_name = \47db1\47;"}' > 22.txt

gccli -uroot -Dvc_sjxt.hds_temp < 22.txt

确认修改成功
select count(1) from rebalancing_status where priority=1 and distribution_id =13;

确认复制表都已经迁过去了
gbase> select count(1) from gclusterdb.rebalancing_status where priority=1 and distribution_id =13;
--0
select count(1) from gclusterdb.rebalancing_status where priority=1 and distribution_id =15;

监控同步情况
gccli -ugbase -pgbase20110531 -Dvc1.gclusterdb -e"select status,count(1) from gclusterdb.rebalancing_status group by status;"

gccli -ugbase -pgbase20110531 -Dvc1.gclusterdb -e"select * from gclusterdb.rebalancing_status where status='RUNNING';"

----------------------------
rebalance做完,新建表会建在新的disid。
select count(*) from gbase.table_distribution where data_distribution_id =2;
select count(*) from gbase.table_distribution where data_distribution_id =9;

删除旧分片信息要保证老的disid查询没有表
(1)删除hashmap
gbase> use vc vc_sjxt;
gbase> refreshnodedatamap drop 13;

(2)删除distribution
gcadmin rmdistribution 1 vc vc1

 

评论

登录后才可以发表评论
崔哥发表于 5个月前
苏溪亭上草漫漫,谁倚东风十二阑。燕子不归春事晚,一汀烟雨杏花寒。