暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

StoneDB 2024-01-17
31

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

技术答疑

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,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论