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个月前
来了
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529