MySQL数据实时增量迁移方案
MySQL篇(三)MySQL数据实时增量迁移方案
【摘要】MySQL数据实时增量迁移方案。
大家好,我是小盒子。上次推文:MySQL篇(二)MySQL数据迁移、热备份及冷还原。通过实践详细阐述了MySQL数据迁移及热备份方式。
今天的主题:MySQL篇(三):MySQL数据增量迁移方案。
一、前言
前面我们盘点了一些MySQL数据迁移方案方案,但是它的备份都是一次性的,虽然XtraBackup有增量备份,但是都无法做到实时增量,对应有些零级项目来说,我们需要零停机在线迁移数据库。这几天发现了一个小工具叫DBMotion,可以实现零停机在线迁移数据。
二、DBMotion概述
Squids DBMotion是一款数据库迁移/同步/订阅工具,支持迁移预检查,支持全量、增量的数据同步,支持对象和数据的校验。DBMotion致力于数据库的丝滑迁移,也可用于数据库容灾或多活场景,采用异步多线程模式,目前支持MySQL to MySQL、MongoDB to MongoDB、MySQL to ClickHouse的迁移,并在增加更多数据库的支持。支持本地化部署,默认社区办有5个免费新建任务。
如何零停机在线迁移数据库?
“来自https://squids.cn/官网
”
DBMotion的主要特性:
-
简单易用:用户仅需提供源端/目标信息,点击鼠标即可完成结构,数据,增量,校验全流程操作。
-
并发高性能:全量,增量,校验过程均采用多线程模式处理,提升并行性能。
-
零停机:采用后台初始化全量+实时增量捕获并应用模式,将整个迁移割接过程缩短至秒级,实现零停机业务切换。
-
端到端加密:整个迁移传输链路端到端加密,保证公网数据安全。
三、下载DBMotion
官网下载docker-compose文件,如下:
https://squids.cn/product/dbmotion
其内容如下:
version: '3.0'
services:
dts-mysql:
image: mysql:latest
container_name: dts-mysql
environment:
MYSQL_ROOT_PASSWORD: dbmotion
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', --default-time-zone=UTC]
dts-api-server:
image: squids/dbmotion-community:latest
container_name: dts-api-server
environment:
- SERVER_MODE=DOCKER
- MYSQL_URI=root:dbmotion@(dts-mysql)/dbmotion
depends_on:
- dts-mysql
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/dbmotion:/dbmotion/log
privileged: true
dts-ui:
image: squids/dbmotion-ui-community:latest
container_name: dts-ui
ports:
- "30000:80"
depends_on:
- dts-mysql
- dts-api-server
采用自定义网关,增加以下内容:
networks:
- pkulaw_net
networks:
pkulaw_net:
external: true
自定义网络:
docker network create --driver bridge --subnet 10.128.0.0/16 --gateway 10.128.0.1 pkulaw_net
部署:
docker-compose -f docker-compose.yaml up -d
四、DBMotion实战
4.1 访问测试
浏览器访问http://192.168.10.128:30000/,如下图所示:
4.2 添加任务
4.3 选择要迁移的数据库
“会自动检查数据库的设置、权限等。
”
4.4 创建任务,开始迁移
“状态是Finished,表示已经迁移完成,但是任务并没有结束,因为勾选了增量同步。只有结束增量同步,该任务才会结束。
”
五、总结
经过实践DBMotion可以支持迁移预检查,这个是比较友好的,可以对比源端和目标端的数据库差异配置,支持全量、增量的数据同步。
#往期精彩内容#2、MySQL篇(一)MySQL InnoDB Cluster集群搭建
3、Elasticsearch篇(一):ES 的分片平衡问题
5、Infinispan篇(三):如何对生产的Infinispan进行调优?
· END ·
如果这篇文章对您有帮助或者有所启发的话,请帮忙三连暴击点赞、转发和在看。您的支持是我坚持更新的最大动力。
知识分享,我是认真的。