数据迁移原理(从 MySQL 5.7/8.0 迁移到 StoneDB 2.0)及技术答疑 | StoneDB 使用教程 #3

原创
01/17 18:20
阅读数 11

迁移(Mysql5.7/8.0-> StoneDB2.0)原理


1. 迁移工具
全量迁移工具:
StoneDB_Tools_All_Export(STEXP)
StoneDB_Tools _Import(STIMP)

增量数据迁移工具:
StoneDB_Tools_CDC(STCDC)

2. 迁移原理
基于日志(Binlog)分析,我们的同步分为两个阶段,全量和增量。
全量阶段:读取现有数据文件;
增量阶段:分析日志(Binlog);
实现原理:基于去解析日志和数据文件,将数据文件和日志解析成SQL语句后进行加密传输,然后再在目标库进行装载;下面是原理图:

3. 内部实现流程
开始数据同步时,有两个进程:
  • 一个进程去分析全量数据(现存数据); 同时,另一 个进程 开始解析日志(Binlo g),并把分析的数据缓存;
  • 当全量数据发送完成后,会开始发送增量数据,在装载时,程序会维护全量数据和增量数据的映射关系,保证数据的一致性,直到业务切换;
  • 在同步的过程中,无需暂停业务;
  • 其中, 存量数据和增量数据,都会先解析成DDL 和D ML ,再到目标端装载。

技术答疑

1. 是否有批量化部署方案?
答:有批量部署方案的。

2. 是否有数据校验?
答:支持数据效验,但是效验的话,就是库到库的效验。 可以比对条数,对比内容,对比主键,或者按需对比都可以; 最严格的校验是计算每行CRC的值, 来匹配是否一致。

3. 是否通过配置化来实现?
答:是的。

4. 工具是否可以私有化部署?
答:云上或是私有化部署都可以。

5. 如何实现上百套的批量化迁移?
答:有批量化部署的方案。 我们工具可以支持多个数据源端对应多个目的端的数据迁移; 一对多或是多对一都可以; 可以同时控制一 个或多个进程的启停,初始化、暂停、恢复、刷新字典、新增表等功能以及增量DDL整合功能,实现批量控制源端程序的同时满足多对一DDL合并的同步。 但是具体需要调研一下实际环境和需求,才好配置具体的批量方案。

6. 数据库本地是否需要做部署工具?
答:不需要。源数据库需要开启Binlog,需要建账号并赋予相应权限才可以。

如果您在使用StoneDB的过程中需要进行数据迁移操作,或者获取迁移工具,欢迎添加小助手微信咨询。


加入StoneDB社区
Github:https://github.com/stoneatom/stonedb
Gitee:https://gitee.com/StoneDB/stonedb
社区官网:https://stonedb.io/
哔哩哔哩:https://space.bilibili.com/1154290084
Twitter:https://twitter.com/StoneDataBase
Linkedin:https://www.linkedin.com/in/stonedb/

加入社群

数据库人的聚集地

加入微信群(左):添加社区助理-小石侠;加入钉钉群(右):扫描下方钉钉群二维码。


点击阅读原文,给 StoneDB 点个 Star 鼓励一下吧~

本文分享自微信公众号 - StoneDB(StoneDB2021)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部