dbmotion同步工具
mysql:8.0.27
docker-compose.yml
bash
version: '3.0'
services:
# dts-mysql:
# image: mysql:8.0
# container_name: dts-mysql
# environment:
# MYSQL_ROOT_PASSWORD: dbmotion
# command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', '--default-time-zone=UTC','--port=33306']
dts-api-server:
image: harbor.xxxxx.cn/squids/dbmotion-community:latest
container_name: dts-api-server
environment:
- SERVER_MODE=DOCKER
- MYSQL_URI=root:123@(172.17.219.116:3307)/dbmotion
# depends_on:
# - dts-mysql
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/dbmotion:/dbmotion/log
privileged: true
dts-ui:
image: harbor.xxxxx.cn/squids/dbmotion-ui-community:latest
container_name: dts-ui
ports:
- "30000:80"
depends_on:
# - dts-mysql
- dts-api-server
DBMotion 是一款用于数据库迁移、同步和校验的工具。它由沃趣科技(WoquTech)开发,旨在提供"丝滑"的数据库迁移体验,支持同构、异构数据库之间的数据流转。
✨ 核心特性
- 零停机迁移:采用"全量迁移 + 实时增量同步"的模式,可将业务停机时间缩短至秒级。
- 高性能并发 :全量、增量及校验过程均采用多线程并发处理,全量/增量同步速度可达 40MB/s。
- 数据一致性保障 :提供全量+增量迁移,确保数据完整;并通过对象校验 (精确到字段属性)和数据校验(基于Checksum分块对比)来保障数据一致性。
- 高可用与容灾 :支持反向同步 便于一键回滚,也支持双向同步以实现异地多活。
- 简单易用与安全 :提供可视化Web操作界面,整个迁移过程对源库无感知、不加锁。支持端到端加密(SSL)保障数据传输安全。
🗄️ 支持的数据库
DBMotion支持的数据库类型正在不断扩展,目前主要包括:
- MySQL 生态:支持 MySQL to MySQL(5.6、5.7、8.0版本)、以及 MySQL to ClickHouse。
- 国产数据库生态:支持向 openGauss、GaussDB等国产数据库的迁移。
- NoSQL 及其他:支持 MongoDB to MongoDB。
- 未来规划:PostgreSQL、Oracle to GaussDB等。
💰 版本与授权
DBMotion社区版免费,但不开源。
| 版本 | 特点与限制 |
|---|---|
| 社区版 (Community) | 免费,不支持双向同步和数据校验。活跃任务数限制为4个。 |
| 企业版 (Enterprise) | 付费,功能完整,通过过期时间和活跃任务数来控制授权。 |
| SaaS版 | 功能与企业版一致,公测期间免费。需在 Squids.cn 注册,源和目标库需有公网IP。 |
提示 :
活跃任务指正在运行(非暂停、非失败)的迁移或同步任务。
🚀 安装部署
DBMotion基于Docker部署,步骤简洁:
- 环境准备 :确保系统已安装 Docker 和 Docker Compose。
- 下载配置 :下载官方
docker-compose.yaml配置文件。 - 启动服务 :在文件目录下执行命令
docker-compose up -d。 - 访问界面 :通过
http://{服务器IP}:30000访问Web管理界面。
💡 使用场景
- 数据库迁移:无论是从国外商业数据库迁移到国产数据库,还是在本地IDC与公有云之间迁移,DBMotion都能提供一键式解决方案。
- 数据同步与容灾 :利用其实时增量同步能力,构建"两地三中心"或"异地多活"的容灾架构。
- 数据校验:在迁移完成后,对源端和目标端进行数据校验,确保数据一致性。
⚠️ 注意事项
- 性能影响因素 :实际同步性能受网络带宽 、源库 和目标库的性能制约。
- 社区版限制:免费版不支持数据校验和双向同步,且有任务数限制。
- 存储引擎转换 :迁移MySQL时,会自动将
ARCHIVE、MyISAM等非事务引擎转换为InnoDB。 - 内网访问:SaaS版要求数据库有公网IP。若数据库在内网,需在内网部署社区/企业版,或通过代理网关访问。
🔗 相关资源
- Docker Compose 下载 :https://squids.cn/download/dbmotion/docker-compose.yaml
- 官方产品页 :https://squids.cn/product/dbmotion