课程名称:(301)3.6.3 Data migration from Aurora(如何将数据从 Aurora 迁移到 TiDB)
学习时长:10min
课程收获:了解分库分表架构下数据库数据如何迁移至 TiDB
课程内容:DM
Prometheus:采集任务监控数据,以便被 Grafana 展示
dmctl:控制 DM 集群的命令行工具。创建、更新或删除数据迁移任务;查看数据迁移任务状态;处理数据迁移任务错误;校验数据迁移任务配置的正确性
DM-master :管理和调度数据迁移任务的各项操作。保存 DM 集群的拓扑信息;监控 DM-worker 进程的运行状态;监控数据迁移任务的运行状态;提供数据迁移任务管理的统一入口;协调分库分表时各实例分表的 DDL 迁移
DM-worker:执行具体的数据迁移任务。将 binlog 数据持久化保存在本地;保存迁移子任务的配置信息;编排数据迁移子任务;监控迁移子任务状态
支持版本:5.5 < MySQL 版本 < 8.0;MariaDB 版本 >= 10.1.2
目前仅支持 TiDB parser 支持的 DDL 语法。
DM 遇到不兼容的 DDL 语句时会报错,需要使用 dmctl 手动处理,跳过该 DDL 语句,或用指定的 DDL 语句来替换它。
分库分表:存在数据冲突,用自增主键来解决。
DM-worker 重启后不能自动恢复数据迁移任务,需要使用 dmctl 手动执行 start-task
当 DM-worker 通过虚拟VIP连接到 MySQL 且要切换 VIP 指向的 MySQL 实例时,对 DM 手动执行变更。
DM 集群停启:
ansible -i inventory.ini all -m shell -a ‘whoami’
ansible -i inventory.ini all -m shell -a ‘whoami’ -b
ansible-playbook deploy.yml
ansible-playbook start.yml
ansible-playbook stop.yml
任务配置文件示例
交互模式,与 DM-master 进行交互:
./dmctl -master-addr 172.16.30.14:8261
./dmctl -master-addr 172.16.30.14:8261
start-task [ -w “172.16.30.15:8262”] ./task.yaml
query-status
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2:
学习过程中参考的其他资料
无