TiDB Data Migration 1.0.x 到 2.0.x 手动升级

    有关如何自动将 DM v1.0.x 升级到 v2.0.x,请参考使用 TiUP 自动导入 DM-Ansible 部署的 1.0 集群

    下面是手动升级的具体步骤。

    准备的 v2.0.x 的配置文件包括上游数据库的配置文件以及数据迁移任务的配置文件。

    在 v2.0.x 中将从 DM-worker 的进程配置中独立了出来,因此需要根据 v1.0.x 的 DM-worker 配置拆分得到 source 配置。

    从 DM-Ansible 部署的 v1.0.x 升级

    如果 v1.0.x 是使用 DM-Ansible 部署的,且假设在 inventory.ini 中有如下 dm_worker_servers 配置:

    1. # 原 dm_worker1 对应的 source 配置,如命名为 source1.yaml
    2. server-id: 101 # 对应原 `server_id`
    3. source-id: "mysql-replica-01" # 对应原 `source_id`
    4. from:
    5. port: 3306 # 对应原 `mysql_port`
    6. user: "root" # 对应原 `mysql_user`
    7. password: "VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU=" # 对应原 `mysql_password`

    从 Binary 部署的 v1.0.x 升级

    如果 v1.0.x 是使用 Binary 部署的,且对应的 DM-worker 配置如下:

    1. log-level = "info"
    2. log-file = "dm-worker.log"
    3. worker-addr = ":8262"
    4. server-id = 101
    5. flavor = "mysql"
    6. [from]
    7. host = "172.16.10.81"
    8. user = "root"
    9. password = "VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU="
    10. port = 3306

    则可转换得到如下的一个 source 配置文件:

    数据迁移任务配置文件

    对于数据迁移任务配置向导,v2.0.x 基本与 v1.0.x 保持兼容,可直接复制 v1.0.x 的配置。

    按所需要节点数部署新的 v2.0.x 集群。

    如果原 v1.0.x 集群是使用 DM-Ansible 部署的,则使用 DM-Ansible 下线 v1.0.x 集群

    如果原 v1.0.x 集群是使用 Binary 部署,则直接停止 DM-worker 与 DM-master 进程。

    1. 更新 v1.0.x 的数据迁移任务配置文件以启动新的 v2.0.x 数据迁移任务。

      • 如 v1.0.x 的数据迁移任务配置文件为 task_v1.yaml,则将其复制一份为 task_v2.yaml
      • task_v2.yaml 进行以下修改:

        • name 修改为一个新的、不存在的名称,如 task_v2
        • task-mode 修改为 incremental
        • 根据 step.2 中获取的全局 checkpoint 信息,为各 source 设置增量复制的起始点,如:

    2. 使用 命令以 v2.0.x 的数据迁移任务配置文件启动升级后的数据迁移任务。

    如果数据迁移任务运行正常,则表明 DM 升级到 v2.0.x 的操作成功。