使用 DM 迁移数据
推荐;也可以使用 binary 部署 DM 集群用于体验或测试。
第 2 步:检查集群信息
使用 TiUP 部署 DM 集群后,相关配置信息如下:
DM 集群相关组件配置信息
| 组件 | 主机 | 端口 | |:———|:—— |:—— | | dm_worker1 | 172.16.10.72 | 8262 | | dm_worker2 | 172.16.10.73 | 8262 | | dm_master | 172.16.10.71 | 8261 |
上下游数据库实例相关信息
| 数据库实例 | 主机 | 端口 | 用户名 | 加密密码 | |:———— |:—- | :—- | :—- | :—- | | 上游 MySQL-1 | 172.16.10.81 | 3306 | root | VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU= | | 上游 MySQL-2 | 172.16.10.82 | 3306 | root | VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU= | | 下游 TiDB | 172.16.10.83 | 4000 | root | |
将 MySQL-1 的相关信息写入到 中:
在终端中执行下面的命令,使用
tiup dmctl
将 MySQL-1 的数据源配置加载到 DM 集群中:tiup dmctl --master-addr 172.16.10.71:8261 operate-source create conf/source1.yaml
第 4 步:配置任务
假设需要将 MySQL-1 和 MySQL-2 实例的 test_db
库的 test_table
表以全量+增量的模式迁移到下游 TiDB 的 test_db
库的 test_table
表。
编辑任务配置文件 task.yaml
:
为了提前发现数据迁移任务的一些配置错误,DM 中增加了功能:
- 启动数据迁移任务时,DM 自动检查相应的权限和配置。
- 也可使用 命令手动前置检查上游的 MySQL 实例配置是否符合 DM 的配置要求。
注意:
使用 tiup dmctl
执行以下命令启动数据迁移任务。其中,task.yaml
是之前编辑的配置文件。
tiup dmctl --master-addr 172.16.10.71:8261 start-task ./task.yaml
如果执行该命令后返回的结果如下,则表明任务已成功启动。
如果任务启动失败,可根据返回结果的提示进行配置变更后执行
start-task task.yaml
命令重新启动任务。
第 6 步:查询任务
如需了解 DM 集群中是否存在正在运行的迁移任务及任务状态等信息,可使用 tiup dmctl
执行以下命令进行查询:
tiup dmctl --master-addr 172.16.10.71:8261 query-status
如果不再需要进行数据迁移,可以使用 tiup dmctl
执行以下命令停止迁移任务:
其中的 是 task.yaml
配置文件中 name
配置项设置的任务名。
第 8 步:监控任务与查看日志
如果使用 TiUP 部署 DM 集群时,正确部署了 Prometheus、Alertmanager 与 Grafana,且其地址均为 172.16.10.71
。可在浏览器中打开 进入 Alertmanager 查看 DM 告警信息;可在浏览器中打开 http://172.16.10.71:3000 进入 Grafana,选择 DM 的 dashboard 查看 DM 相关监控项。
- DM-master 日志目录:通过 DM-master 进程参数
--log-file
设置。如果使用 TiUP 部署 DM,则日志目录位于{log_dir}
。