# 三分钟构建第一个任务
这篇文档只做一件事:帮助你用免费版跑通第一个数据同步任务。新版本安装后即可使用免费版,无需定期申请授权码。
建议先用两张小表验证链路,不要一开始就迁移生产大表。第一个任务跑通后,再根据数据量、字段类型、调度方式和 CDC 要求扩展到真实项目。
# 你会完成什么
完成本文后,你会得到一个可运行的普通同步任务:
- 启动 DataMover。
- 登录 Web 控制台。
- 添加源端数据源。
- 添加目标端数据源。
- 选择源表并配置字段映射。
- 启动任务并查看执行结果。
- 用 SQL 对目标库做一次基础校验。
# 第 1 步:启动 DataMover
推荐优先使用 Docker 部署。服务器已安装 Docker 时,执行一条命令即可启动 Manager、Worker 和元数据库。
macOS / Linux:
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
首次启动需要等待 MySQL 初始化和系统建表,一般需要 3-5 分钟。启动完成后访问:
http://服务器IP:8000
本机部署可以访问:
http://localhost:8000
默认账号:
| 项目 | 默认值 |
|---|---|
| 用户名 | admin |
| 密码 | admin123 |
如果不能访问页面,先查看 Docker 部署 和 常见问题-安装部署。
# 第 2 步:准备两端数据库
第一个任务建议使用测试库或样例表。源库准备一张有主键的小表,目标库准备一个空库或测试 schema。
示例源表:
CREATE TABLE dm_demo_user (
id BIGINT PRIMARY KEY,
username VARCHAR(64),
phone VARCHAR(32),
updated_at TIMESTAMP
);
INSERT INTO dm_demo_user (id, username, phone, updated_at) VALUES
(1, 'alice', '13800000001', CURRENT_TIMESTAMP),
(2, 'bob', '13800000002', CURRENT_TIMESTAMP),
(3, 'carol', '13800000003', CURRENT_TIMESTAMP);
源端账号至少需要读取表结构和读取数据的权限。目标端账号至少需要建表、写入和更新数据的权限。正式项目中请使用专门的同步账号,不建议直接使用管理员账号。
# 第 3 步:添加源端数据源
进入 数据源 页面,点击 新增。
按页面表单填写连接信息:
| 配置项 | 说明 |
|---|---|
| 数据源名称 | 例如 mysql_source_demo |
| 数据源类型 | 选择实际数据库类型,例如 MySQL、PostgreSQL、SQL Server |
| 连接地址 / 端口 | 数据库服务地址和端口 |
| 数据库名 | 要读取的库或 schema |
| 用户名 / 密码 | 源端同步账号 |
| 数据源角色 | 选择源端,或源端和目的端 |
填写后点击 测试连接。测试通过后保存。

# 第 4 步:添加目标端数据源
继续在 数据源 页面新增目标库连接。
目标端需要重点确认三件事:
| 检查项 | 为什么重要 |
|---|---|
| 写入权限 | 没有写入权限会导致任务启动后失败 |
| 建表权限 | 需要自动建表时必须具备建表权限 |
| 字符集和字段长度 | 字符集或长度不匹配可能导致写入失败 |
保存前同样点击 测试连接。源端和目标端都测试通过后,再创建任务。
# 第 5 步:创建普通同步任务
进入 任务管理,点击 新建任务。
按顺序完成配置:
- 填写任务名称,例如
demo_mysql_to_mysql。 - 任务类型选择 普通任务。
- 选择刚才添加的源端数据源。
- 选择刚才添加的目标端数据源。
- 点击 下一步 进入表映射。
进入表映射页面后:
- 在左侧源端树选择要同步的表。
- 选择或填写目标表名。
- 进入字段映射,检查字段是否自动匹配。
- 如果字段名或字段类型不一致,手动调整目标字段。
- 保存表映射。
- 根据需要配置同步策略和调度规则。
- 点击完成。

# 第 6 步:启动并查看结果
回到任务列表或任务详情页,点击 启动,选择在线的执行节点。
启动后重点看三个地方:
| 位置 | 看什么 |
|---|---|
| 任务状态 | 是否执行中、成功或失败 |
| 采集/输出行数 | 读取行数和写入行数是否符合预期 |
| 执行历史 | 每次执行的开始时间、结束时间和错误信息 |
如果任务失败,先在任务详情中下载日志,再查看 常见问题-任务执行。首次任务失败很常见,通常是字段类型、字段长度、权限、网络或目标表结构不匹配导致。
# 第 7 步:用 SQL 校验目标库
不要只看页面上的成功状态。第一个任务完成后,至少做一次目标库校验。
行数校验:
SELECT COUNT(*) FROM dm_demo_user;
主键范围校验:
SELECT MIN(id), MAX(id) FROM dm_demo_user;
抽样校验:
SELECT id, username, phone, updated_at
FROM dm_demo_user
ORDER BY id
LIMIT 10;
如果源表和目标表字段类型不同,还需要抽查时间、金额、枚举、长文本、空值等容易出问题的字段。
# 实时任务什么时候再做
第一个任务建议先用普通任务跑通。需要秒级变更同步时,再创建实时任务。
实时任务依赖源库日志能力:
| 源端 | 常见前置条件 |
|---|---|
| MySQL | 开启 binlog |
| PostgreSQL | 开启 WAL 逻辑复制 |
| SQL Server | 开启 CDC |
| Oracle | 开启 LogMiner 相关配置 |
| 达梦 | 按数据库版本配置日志捕获能力 |
实时任务可以执行快照初始化,也可以捕获插入、更新、删除事件。开启前建议先确认源库权限和日志配置,否则任务会启动失败。