数据迁移概述

本文档介绍了 TiDB 提供的数据迁移工具,以及不同迁移场景下如何选择迁移工具,从而将数据从 MySQL 或 CSV 数据源迁移到 TiDB。

迁移工具

在上述数据迁移过程中会用到如下工具:

  • Mydumper:用于从 MySQL 导出数据。建议使用 Mydumper,而非 mysqldump。
  • Loader:用于将 Mydumper 导出格式的数据导入到 TiDB。
  • Syncer:用于将数据从 MySQL 增量同步到 TiDB。
  • DM (Data Migration):集成了 Mydumper、Loader、Syncer 的功能,支持 MySQL 数据的全量导出和到 TiDB 的全量导入,还支持 MySQL binlog 数据到 TiDB 的增量同步。
  • TiDB-Lightning:用于将全量数据高速导入到 TiDB 集群。例如,如果要导入超过 1TiB 的数据,使用 Loader 往往需花费几十个小时,而使用 TiDB-Lighting 的导入速度至少是 Loader 的三倍。

迁移场景

本小节将通过几个示例场景来说明如何选择和使用 TiDB 的迁移工具。

MySQL 数据的全量迁移

要将数据从 MySQL 全量迁移至 TiDB,可以采用以下三种方案中一种:

  • Mydumper + Loader:先使用 Mydumper 将数据从 MySQL 导出,然后使用 Loader 将数据导入至 TiDB。
  • Mydumper + TiDB-Lightning:先使用 Mydumper 将数据从 MySQL 导出,然后使用 TiDB-Lightning 将数据导入至 TiDB。
  • DM:直接使用 DM 将数据从 MySQL 导出,然后将数据导入至 TiDB。

详细操作参见 MySQL 数据到 TiDB 的全量迁移。

MySQL 数据的全量迁移和增量同步

  • Mydumper + Loader + Syncer:先使用 Mydumper 将数据从 MySQL 导出,然后使用 Loader 将数据导入至 TiDB,再使用 Syncer 将 MySQL binlog 数据增量同步至 TiDB。
  • Mydumper + TiDB-Lightning + Syncer:先使用 Mydumper 将数据从 MySQL 导出,然后使用 TiDB-Lightning 将数据导入至 TiDB,再使用 Syncer 将 MySQL binlog 数据增量同步至 TiDB。
  • DM:先使用 DM 将数据从 MySQL 全量迁移至 TiDB,然后使用 DM 将 MySQL binlog 数据增量同步至 TiDB。

详细操作参见 MySQL 数据到 TiDB 的增量同步。

注意:

在将 MySQL binlog 数据增量同步至 TiDB 前,需要在 MySQL 中开启 binlog 功能,并且 binlog 必须使用 ROW 格式

非 MySQL 数据源的数据迁移

如果源数据库不是 MySQL,建议采用以下步骤进行数据迁移:

  1. 将数据导出为 CSV 格式。
  2. 使用 TiDB-Lightning 将 CSV 格式的数据导入 TiDB。

详细操作参见使用 TiDB-Lightning 迁移 CSV 数据。

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""