【TiDB 4.0 PCTA 学习笔记】- 3.6.3 Data migration from Aurora(如何将数据从 Aurora 迁移到 TiDB) @2班+李响

课程名称:3.6.3 Data migration from Aurora(如何将数据从 Aurora 迁移到 TiDB)

学习时长:

20分钟

课程收获:

了解分库分表架构下数据库数据如何迁移至 TiDB

课程内容:

DM工具支持上游数据库分库分表、数据合并和单库数据库同步至TiDB的功能

一、DM架构

  1. dmctl是用来控制DM集群的命令行工具,负责创建、更新删除数据迁移任务;查看数据迁移状态;处理数据迁移错误;以及校验数据迁移任务配置的正确性
  2. DM-master是管理节点,负责管理和调度数据迁移的各项工作;保存DM集群的拓扑信息;监控DM-worker的集群及数据迁移任务的运行状态;提供数据迁移管理的统一入口;以及分库分表场景下各个实例分表的DDL迁移
  3. DM-worker是工作节点,负责执行具体的数据迁移任务;将Binlog持久化保存至本地;保存数据迁移子任务的数据信息;编排数据迁移子任务的运行;监控迁移子任务的运行状况

二、DM工具同步流程

  1. 两种数据迁移模式
  • Full全量模式
  • Incremental增量模式
  1. DM All工作流
  • DM数据导出并全量导入(只用于首次初始化)
  • 全量导入完成DM自动根据位置点位拉取上游MySQL数据库binlog日志存储至本地的Relay log通过DM binlog replication消费到下游

三、示例

  1. 注意及检测事项
  • Aurora读取器不能开启Binlog,不能作为DM迁移上游数据库Master Server,基于GTID的数据迁移需要MySQL5.7、Aurora2.0.4.1或更高版本
  • DM增量同步阶段需要ROW格式的Binlog,未开启ROW格式Binlog及设置正确的Binlog格式,则不能正常使用DM进行数据同步。
  • 上下游数据库实例用户相关同步权限需要单独设置
  • 上游数据库实例与TiDB表兼容性需要额外检查,比如外键、字符集等
  • 上游分库分表一致性以及自增组件检查,包括冲突组件检查

四、DM迁移

  1. 注意:上游数据库密码需要加密,以及是否需要通过GTID模式同步
  2. DM常用维护操作
  • 确认互信和tidb用户状态
    ansible -i inventory.ini all -m shell -a ‘whoami’ && ansible -i inventory.ini all -m shell -a ‘whoami’
  • 集群部署
    ansible-playbook deploy.yml
  • 启动
    ansible-playbook start.yml
  • 停止
    ansible-playbook stop.yml

五、task配置

  1. 示例:Aurora1和Aurora2实例Test DB库中的test_table表全量加增量同步到下游TiDB中的Test DB库中的test_table表
  2. Task任务配置好后需要通过dmctl工具启动
  • 启动dmctl
    $ ./dmctl -master-addr 172.16.10.71:8261
  • 启动task任务
    start-task ./task.yaml
  • 查看task状态
    query-status

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!