Ignite-GridGain社区版8.8.10能否导出Cache/Table DDL跨集群导入
GridGain Community 8.8.10 跨集群Cache/Table迁移方案
你当前使用的3节点VM部署架构下,不管是只导结构,还是连同数据一起迁移,都有原生可行方案,不需要额外引入第三方工具:
核心需求:仅导出导入Cache/Table结构(元数据)
- 方法1:用内置控制脚本批量迁移
直接用集群自带的control.sh(Windows环境用control.bat)脚本操作,支持全量或者指定Cache导出,操作路径最短:- 登录源集群任意节点,进入GridGain的bin目录,执行导出命令:
- 全量导出所有Cache/Table结构:
./control.sh --meta export --file /opt/gridgain/meta_export - 导出指定Cache/Table结构(多个对象用逗号分隔):
./control.sh --meta export --caches user_cache,order_table --file /opt/gridgain/meta_export
- 全量导出所有Cache/Table结构:
- 把导出的元数据文件夹整个拷贝到目标集群任意节点的可访问路径下
- 登录目标集群对应节点,执行导入命令:
./control.sh --meta import --file /path/to/copied/meta_export
导入前确认目标集群没有同名Cache/Table,避免配置冲突导致导入失败。
- 登录源集群任意节点,进入GridGain的bin目录,执行导出命令:
- 方法2:SQL DDL手动导出
如果要迁移的是开启了SQL访问的Table,可以直接用自带的sqlline客户端连接源集群,对需要迁移的表执行SHOW CREATE TABLE 你的表名;,把返回的建表语句存成SQL文件,再到目标集群的sqlline里批量执行即可,适合迁移少量SQL表的场景,灵活度更高。
可选需求:连同数据一起导出导入
- 方法1:用内置集群快照功能迁移
8.8.10社区版自带全量快照能力,迁移一致性最高,适合数据量较大的场景:- 源集群低峰期执行快照创建:
- 全量快照:
./control.sh --snapshot create migrate_snapshot_001 - 指定Cache快照:
./control.sh --snapshot create migrate_snapshot_001 --caches user_cache,order_table
- 全量快照:
- 快照默认生成在每个节点的
work/snapshots目录下,把3个节点上对应快照ID的文件夹,分别拷贝到目标集群3个节点的相同work/snapshots路径下,保证文件权限和GridGain运行用户一致 - 目标集群执行恢复命令:
./control.sh --snapshot restore migrate_snapshot_001,恢复完成后会自动创建对应Cache/Table的结构并写入数据,不需要额外导入元数据。
- 源集群低峰期执行快照创建:
- 方法2:客户端流式迁移
如果迁移数据量很小,可以直接写一个轻量Java/Python瘦客户端程序,同时连接源集群和目标集群,遍历需要迁移的Cache,按批量读取源端数据写入目标端即可,不需要跨节点拷贝文件,适合临时小批量迁移场景。
注意:所有迁移操作建议在业务低峰期执行,快照拷贝完成后可以先校验3个节点的快照文件大小、文件数是否一致,避免恢复时因为文件缺失报错。
内容的提问来源于stack exchange,提问作者Raghavendra H
相关产品推荐
相关产品推荐

