使用 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 | |

    1. 将 MySQL-1 的相关信息写入到 中:

    2. 在终端中执行下面的命令,使用 tiup dmctl 将 MySQL-1 的数据源配置加载到 DM 集群中:

      1. 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 是之前编辑的配置文件。

    1. tiup dmctl --master-addr 172.16.10.71:8261 start-task ./task.yaml
    • 如果执行该命令后返回的结果如下,则表明任务已成功启动。

    • 如果任务启动失败,可根据返回结果的提示进行配置变更后执行 start-task task.yaml 命令重新启动任务。

    第 6 步:查询任务

    如需了解 DM 集群中是否存在正在运行的迁移任务及任务状态等信息,可使用 tiup dmctl 执行以下命令进行查询:

    1. 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}