GBase 8a
适配迁移
文章

集群间的逻辑迁移(一)

发表于2026-04-13 18:02:4419次浏览7个评论

一、适用场景

对于gbase 8a 集群之间的数据迁移,传输同步已经有了成熟的工具RsyncTool和GVR,但是两者都有一定的限制,比如两个集群必须是同一版本,分片拓扑必须相同,vcname必须相同等。但是对于实际情况,需要进行数据同步和迁移的两个集群不一定都能满足此要求,只能通过select … into outfile … 的方式从源库导出逻辑数据,再通过load data的方式导入目标库,对于多库多表的场景下,为了减少人工操作,编写了一套脚本来进行表的批量迁移,具体介绍如下。

二、表迁移脚本介绍

脚本主要分为四个部分,分别为t_medata(迁移表结构),t_data(迁移表数据),t_truncate(删除目标表结构或数据),t_check(检查迁移后源库目标库表数据行数是否相同)

20260325
├── t_check
│   ├── check.sh
│   └── tb_name.list
├── t_data
│   └── migrate.sh
├── t_medata
│   ├── export.sh
│   ├── import.sh
│   └── tb_name.list
└── t_truncate
    ├── tb_name.list
    └── truncate.sh

对于每个部分的脚本具体解释和使用办法,请查看博主集群间的逻辑迁移的后续章节

三、迁移集群架构信息

为了更好的介绍迁移脚本的使用,准备了两套集群,分为源库集群和目标库集群,具体架构如下

1. 源库:版本为9.5.2.46.6,兼容模式,单节点(管理节点和数据节点皆为192.168.10.1 )

2.目标库:版本为9.5.3.27.21_patch.35.1,多vc模式,我们准备将数据迁移至vc1中,vc1单节点(管理节点和数据节点皆为172.16.9.176 )

四、迁移用户准备

为了减少对源库集群的影响,需要执行权限最小化原则,只需要赋予迁移库(testdb)只读权限即可,用以下语句创建对应用户和授权。

###迁移源库为testdb###
gccli -uroot -p******
create user s_migrate_user identified by 'source_20260326';
grant select on testdb.* to s_migrate_user ;
grant file on *.* to s_migrate_user ;

对于目标库集群,需要目标库的所有权限,用以下语句创建对应用户和权限

###迁移目标库为testdb###
gccli -uroot -p******
create user t_migrate_user identified by 'target_20260326';
grant all on testdb.* to t_migrate_user ;
grant file on *.*.* to t_migrate_user ;
set default_vc for t_migrate_user=vc1;

评论

登录后才可以发表评论
GBase用户47954发表于 3个月前
感谢作者的精彩分享!
GBase用户21182发表于 3个月前
优秀
GBase用户21182发表于 3个月前
每个参数都写的很清楚
GBase用户21182发表于 3个月前
感谢您分享
曾浩轩发表于 2个月前
厉害了
用户头像
山佳发表于 2个月前
闪闪发光
菲菲发表于 2个月前
来了