DataMover Docker 一键部署实测:35+ 数据源同步平台,从原生到容器化

实测 DataMover 的 Docker 部署方案——从一个用了两年原生版本的用户视角,记录一键安装的完整过程、踩坑总结和几个真实同步场景的验证结果。

聊聊数据同步这回事

做数据库迁移的人大概都遇到过这个场景——

新项目要上线,数据得从 A 库搬到 B 库。源库是 MySQL,目标库是 ClickHouse。或者更麻烦的:公司在做国产化替代,Oracle 的数据要迁移到达梦。又或者只是想用 Kafka 把业务变更广播出去,让下游消费。

不管哪种场景,本质上都是同一件事:让数据在异构数据库之间流动起来。听起来简单,但真做过的都知道,坑比想象的多。

以前我遇到同步需求,第一反应是:又得折腾了。

自己写脚本用 JDBC 硬拉?数据量一大就 OOM,没有断点续传,跑一半挂了得重来。用 DataX 配 JSON?功能强但配置写起来很烦,也没 Web 界面。上 Flink CDC?代码量不小,部署环境也重,小需求不值得搞这么重。无论选哪个,光环境配置就得花半天——装 JDK、配环境变量、调内存参数,还没开始同步已经累了。

DataMover 这个工具我很早就关注上了,之前一直在用原生部署版。解压、配参数、启动 Manager 和 Worker,流程熟悉了倒也不慢,但每换一台机器就得从头来一遍。

上个月逛官网的时候发现多了个 Docker 部署选项。说实话挺意外的——这工具居然出容器版了。赶紧拉下来试了一把。

这个工具到底能做什么

先快速说清楚 DataMover 是干什么的。

一个 Web 界面操作的数据迁移同步平台,支持 35+ 种数据源。全量迁移、增量同步、CDC 实时同步都支持,不写代码,配好就跑。

覆盖的数据库类型够全,基本市面上能想到的都在里面:

类别数据库
传统关系型MySQL、PostgreSQL、Oracle、SQL Server、MariaDB、Db2、Sqlite、Sybase
国产数据库达梦(DM)、GaussDB、OceanBase、Kingbase、Gbase8a/8s、PolarDB
数据仓库ClickHouse、Apache Doris、SelectDB、Hive、ODPS
NoSQLMongoDB、Redis、Elasticsearch、HBase
消息队列Kafka、RabbitMQ、RocketMQ、ActiveMQ、DataHub
文件存储FTP、SFTP、Samba、HDFS

如果你正在做实时数仓构建国产化数据库迁移多源数据融合或者 AI 数据 pipeline,基本都能用上。

三种同步模式:

我之前用原生版跑过 MySQL → MySQL 全量测试做性能摸底,25 个字段、500 万行、2GB 数据,2 分钟跑完,算下来每秒 4.17 万行。

还有个值得提的设计:如果目标表不存在,DataMover 能自动建表,DDL 转换也是内置的——SQL Server 的 nvarchar 到 MySQL 的 varchar,不用手动调。而且它默认不往已存在的目标表写入,而是输出到加后缀的临时表,防止误覆盖。

为什么从原生换到 Docker

原生部署不是不能用,但每次部署都像开盲盒——

JDK 版本对得上吗?环境变量配好了吗?端口被占了吗?MySQL 准备好了吗?一台机器配通,换台机器又得重来一遍。团队里要配多节点更麻烦,每台 Worker 都得重复操作。

Docker 部署与传统部署对比

Docker 版把这堆破事全打包了。一行命令下来,容器跑起来就完事。CentOS 也好 Ubuntu 也罢,开发机还是生产机器,跑出来的环境一模一样,没有"在我电脑上是好的"这种玄学。

环境要求

就两个:

不用装 JDK,不用配 JAVA_HOME,什么都不用。镜像从阿里云 ACR 拉取,国内服务器不用额外配加速器。

如果服务器还没有 Docker,搜一下安装教程,装好再回来,两分钟的事。

一键安装:一行命令搞定

curl -fsSL https://down.datamover.cn/install.sh | bash

Windows 走 PowerShell:

Set-ExecutionPolicy Bypass -Scope Process -Force; irm https://down.datamover.cn/install.ps1 | iex

敲完回车后脚本自动干几件事:

  1. 检查 Docker 和 Compose 环境
  2. 下载 datamover-docker.zip 并解压
  3. 从阿里云 ACR 拉取 Manager 和 Worker 镜像
  4. 用 docker-compose 启动三个容器:MySQL(元数据库)、Manager(Web 管理)、Worker(执行引擎)

一键安装脚本执行过程

第一次启动要 3-5 分钟——主要花在镜像拉取和 MySQL 初始化(Flyway 自动建表)。之后重启十几秒完事。

如果想看看包里有什么

习惯先审查一下安装包的,可以手动下载:

wget https://down.datamover.cn/datamover-docker.zip
unzip datamover-docker.zip
cd datamover-docker

目录结构很清晰:

解压后的目录结构

datamover-docker/
├── docker-compose.yml      # 容器编排
├── deploy.sh               # Linux 部署脚本
├── deploy.ps1              # Windows 部署脚本
├── .env                    # 环境配置
├── 使用说明.md
└── mysql/
    └── init/
        └── 01-grant-privileges.sql

主要配置在 .env 里。默认密码 Dm@2024#Secure!,想改直接编辑:

DM_DB_PASSWORD=你的密码

然后启动:

chmod +x deploy.sh
./deploy.sh

脚本自动检测 3306/8000/8011 端口是否被占,被占就自动换到可用端口,启动完打印实际地址。

部署脚本运行输出

跑个同步任务试试

浏览器访问 http://服务器IP:8000,看到登录界面说明成了。

DataMover 登录界面

默认管理员账号:admin / admin123

界面不复杂,左侧几个功能:数据源管理、任务管理、执行监控、节点管理。

跑一个 MySQL → MySQL 的全量同步试试:

  1. 数据源管理 → 新增,填源库信息(主机、端口、库名、账号密码),测试连接,保存
  2. 同样步骤加目标库
  3. 任务管理 → 新建任务,选源和目标数据源,选要同步的表
  4. 同步模式选全量,保存后启动

任务跑起来后,在"执行监控"能看实时的读取行数、写入行数和耗时。500 万行两分钟不到跑完——性能和原生版一样,没因为容器化打折。

Docker 架构示意图

架构上 Manager 负责调度和 Web 管理,Worker 负责数据搬运。Docker 部署把这三个组件打包到一起,开箱即用。

踩坑记录

实测遇到几个问题,写出来给大家省点时间:

1. 端口冲突

我服务器上本来就跑着 MySQL,3306 被占了。部署脚本自动检测到,把容器 MySQL 映射到了其他端口,没报错也没中断。这个自动化处理挺省心。

2. 内网环境镜像拉取

有些生产环境不能访问公网。镜像在阿里云 ACR,内网机器没法直拉。解决办法是找台公网机器拉下来再搬运:

# 公网机器拉取
./deploy.sh --pull
# 导出镜像
docker save -o datamover-images.tar datamover-manager datamover-worker
# 传到内网后导入
docker load -i datamover-images.tar

之后正常执行部署脚本就行。

3. Worker 注册不上

有次 Manager 节点管理里看不到 Worker。查日志发现 DM_LOCAL_IP 自动获取的地址不对——服务器多网卡,识别搞混了。在 .env 里手动指定本机 IP:

DM_LOCAL_IP=192.168.1.100

重启 Worker,几秒后注册成功。

4. 目标表安全机制

第一次用的时候任务显示执行成功,查目标库却发现没数据。后来才反应过来:DataMover 默认不向已有的目标表写入,而是输出到加后缀的新表。这是防止误覆盖线上数据的设计。确认数据正确后,在任务配置里勾选已有表就可以了。

总结

从原生部署换到 Docker,最直接的感受就是省心。不用操心 JDK、不用配环境变量、不用管 MySQL 初始化,一行命令全搞定。任务配置和原生版一样,性能也没损耗。

社区版永久免费,3 个同步任务、1 个执行节点。免费版包含 MySQL、Oracle、PostgreSQL、SQL Server、达梦、ClickHouse、Kafka 等 17 种核心数据源,个人开发者和中小企业够用。需要更多数据源、节点或 CDC 可升级付费版。

如果你也在做数据迁移、实时同步或者国产化替换,不妨试试。

官网下载:https://datamover.cn
文档地址:https://datamover.cn/doc/
电话咨询:18032410846

相关同步方案

除了数据迁移同步解决方案,DataMover还支持以下场景:

数据迁移同步平台异构数据库实时同步数据迁移工具推荐企业级数据同步方案免费数据迁移工具MySQL到ClickHouse数据同步Oracle到达梦数据库迁移SQL Server到MySQL数据迁移

常见问题解答

数据迁移是否支持全量和增量?

DataMover的普通任务支持全量一次性同步和基于字段的增量同步。

增量同步和实时同步有什么区别?

增量同步延迟分钟级,实时同步(CDC)可达秒级延迟,能捕获所有数据变更。

CDC同步对源数据库性能影响多大?

采用无锁读取方式,对源库性能影响极小。

免费社区版能同步多少数据?

免费社区版不限制数据量,限制3个同步任务和1个执行节点。

开始你的第一次数据同步

5分钟部署,永久免费社区版