TiDB Data Migration 简介
- 与 TiDB 同样保持 MySQL 兼容性。高度兼容 MySQL 5.7 协议、MySQL 5.7 常用的功能及语法。
- 支持 DML & DDL 事件同步。支持解析和同步 binlog 中的 DML 和 DDL 事件。
- 内置多种过滤器以灵活适应不同场景。支持以预定义事件类型、正则表达式、SQL 表达式等多种方式在数据同步过程中对 MySQL binlog 事件进行过滤。
- 集中管理。DM 支持上千个节点的集群规模,可同时运行并集中管理大量数据迁移同步任务。
- 对第三方 Online Schema Change 工具变更过程的同步优化。在 MySQL 生态中,gh-ost 与 pt-osc 等工具被广泛使用,DM 对其变更过程进行了特殊的优化,以避免对不必要的中间数据进行迁移。详细信息可参考 。
- 高可用。支持迁移任务在不同节点自由调度,少量工作节点宕机并不会影响进行中的任务。
快速安装
在使用 DM 工具之前,需了解以下限制:
数据库版本要求
MySQL 版本 5.5 ~ 5.7
MySQL 版本 = 8.0 (实验特性)
MariaDB 版本 >= 10.1.2 (实验特性)
如果上游 MySQL/MariaDB servers 间构成主从复制结构,则需要 MySQL 版本高于 5.7.1 或者 MariaDB 版本等于或高于 10.1.3。
DDL 语法兼容性限制
DM 遇到不兼容的 DDL 语句时会报错。要解决此报错,需要使用 dmctl 手动处理,要么跳过该 DDL 语句,要么用指定的 DDL 语句来替换它。详见如何处理不兼容的 DDL 语句。
DM 不会将视图的 DDL 语句同步到下游的 TiDB 集群,也不会将针对视图的 DML 语句同步到下游。在该场景下,建议用户在下游 TiDB 集群中自行创建视图。
GBK 字符集兼容性限制
- DM 在 v5.4.0 之前不支持将 的表迁移到 TiDB。
Contributing
您可以通过在线文档了解和使用 DM,如果您遇到无法解决的问题,可以选择以下途径之一联系我们。
License
DM 遵循 Apache 2.0 协议,在 LICENSE 了解更多信息。
在 v5.4 之前,DM 工具的文档独立于 TiDB 文档。要访问这些早期版本的 DM 文档,请点击以下链接:
注意
- 在较早版本中(v1.0 和 v2.0),DM 采用独立于 TiDB 的版本号。从 DM v5.3 起,DM 采用与 TiDB 相同的版本号。DM v2.0 的下一个版本为 DM v5.3。DM v2.0 到 v5.3 无兼容性变更,升级过程与正常升级无差异。
要快速了解 DM 的原理架构、适用场景,建议先观看下面的培训视频。注意本视频只作为学习参考,具体操作步骤和最新功能,请以文档内容为准。