diff --git a/TOC.md b/TOC.md index 211db52a9a01..c6b6f79650b9 100644 --- a/TOC.md +++ b/TOC.md @@ -139,7 +139,8 @@ + [Load Base Split 使用文档](/configure-load-base-split.md) + [Store Limit 使用文档](/configure-store-limit.md) + TiDB 生态工具 - + [工具使用指南](/ecosystem-tool-user-guide.md) + + [功能概览](/ecosystem-tool-user-guide.md) + + [适用场景](/ecosystem-tool-user-case.md) + [工具下载](/download-ecosystem-tools.md) + Backup & Restore (BR) + [BR 常见问题](/br/backup-and-restore-faq.md) diff --git a/ecosystem-tool-user-case.md b/ecosystem-tool-user-case.md new file mode 100644 index 000000000000..02da680343fc --- /dev/null +++ b/ecosystem-tool-user-case.md @@ -0,0 +1,39 @@ +--- +title: TiDB 生态工具适用场景 +category: reference +summary: 本文档介绍 TiDB 生态工具的常见适用场景与工具选择。 +--- + +# TiDB 生态工具适用场景 + +本文档从生态工具的适用场景出发,介绍部分常见场景下的生态工具选择。 + +## 从 CSV 导入数据到 TiDB + +当需要将其他工具导出的格式兼容的 CSV files 导入到 TiDB 时,可使用 [TiDB Lightning](/tidb-lightning/migrate-from-csv-using-tidb-lightning.md)。 + +## 从 MySQL/Aurora 导入全量数据 + +当需要从 MySQL/Aurora 导入全量数据时,可先使用 [Dumpling](/export-or-backup-using-dumpling.md) 将数据导出为 SQL dump files,然后再使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 将数据导入到 TiDB 集群。 + +## 从 MySQL/Aurora 迁移数据 + +当既需要从 MySQL/Aurora 导入全量数据,又需要迁移增量数据时,可使用 [TiDB Data Migration (DM)](https://pingcap.com/docs-cn/tidb-data-migration/stable/overview/) 完成全量数据和增量数据的迁移。 + +如果全量数据量较大(TB 级别),则可先使用 [Dumpling](/export-or-backup-using-dumpling.md) 与 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 完成全量数据的迁移,再使用 DM 完成增量数据的迁移。 + +## TiDB 集群备份与恢复 + +当需要对 TiDB 集群进行备份或在之后对 TiDB 集群进行恢复时,可使用 [BR](/br/backup-and-restore-tool.md)。 + +另外,BR 也可以对 TiDB 的数据进行[增量备份](/br/backup-and-restore-tool.md#增量备份)和[增量恢复](/br/backup-and-restore-tool.md#增量恢复)。 + +## 迁出数据到 MySQL/TiDB + +当需要将 TiDB 集群的数据迁出到 MySQL 或其他 TiDB 集群时,可使用 [Dumpling](/export-or-backup-using-dumpling.md) 从 TiDB 将全量数据导出为 SQL dump files,然后再使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 将数据导入到 MySQL/TiDB。 + +如果还需要执行增量数据的迁移,则可使用 [TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md)。 + +## TiDB 增量数据订阅 + +当需要订阅 TiDB 增量数据的变更时,可使用 [TiDB Binlog](/tidb-binlog/binlog-slave-client.md)。 diff --git a/ecosystem-tool-user-guide.md b/ecosystem-tool-user-guide.md index 89e59284a88b..f7a04f1d5f1f 100644 --- a/ecosystem-tool-user-guide.md +++ b/ecosystem-tool-user-guide.md @@ -1,185 +1,85 @@ --- -title: TiDB 生态工具使用指南 +title: TiDB 生态工具功能概览 category: reference aliases: ['/docs-cn/stable/reference/tools/user-guide/'] --- -# TiDB 生态工具使用指南 +# TiDB 生态工具功能概览 -目前 TiDB 生态工具较多,有些工具之间有功能重叠,也有些属于版本迭代关系。本文档将对各个工具进行介绍,说明各个工具之间的关系,并且说明各个版本、场景下应该使用哪些工具。 +本文档从生态工具的功能出发,介绍部分生态工具的功能以及它们之间的替代关系。 -## TiDB 生态工具概览 +## 全量导出 -TiDB 生态工具可以分为几种: +[Dumpling](/export-or-backup-using-dumpling.md) 是一个用于从 MySQL/TiDB 进行全量逻辑导出的工具。 -- 数据导入类,包括全量导入工具、备份和恢复工具、增量导入工具等 -- 数据导出类,包括全量导出工具、增量导出工具等 +基本信息: -下面将分别介绍这两类工具。 - -### 数据导入类 - -#### 全量导入工具 Loader(停止维护,不推荐使用) - -[Loader](/loader-overview.md) 是一款轻量级的全量数据导入工具,数据以 SQL 的形式导入到 TiDB 中。目前这个工具正在逐步被 [TiDB Lightning](#全量导入工具-tidb-lightning) 替换掉,参见 [TiDB Lightning TiDB-backend 文档](/tidb-lightning/tidb-lightning-tidb-backend.md#从-loader-迁移到-tidb-lightning-tidb-backend)。 - -以下是 Loader 的一些基本信息: - -- Loader 的输入:Mydumper 输出的文件 -- Loader 的输出:以 SQL 形式写入 TiDB +- Dumpling 的输入:MySQL/TiDB 集群 +- Dumpling 的输出:SQL/CSV 文件 - 适用 TiDB 版本:所有版本 -- Kubernetes 支持:[备份与恢复](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/backup-and-restore-using-helm-charts/) +- Kubernetes 支持:尚未支持 -#### 全量导入工具 TiDB Lightning +## 全量导入 -[TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 是将全量数据快速导入到一个新的 TiDB 集群的工具。 +[TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 是一个用于将全量数据导入到 TiDB 集群的工具。 -注意用 TiDB Lightning 导入数据到 TiDB 的时候,有两种模式: +使用 TiDB Lightning 导入数据到 TiDB 时,有两种模式: -- 默认模式:`tikv-importer` 为后端,这种模式下导入数据过程中集群无法提供正常的服务,用于导入大量的数据(TB 级别)。 -- 第二种模式:`TiDB` 为后端(相当于 Loader 的功能),相对默认模式导入速度较慢,但是可以在线导入。 +- `importer` 模式:以 TiKV-importer 作为后端,这种模式一般用于导入大量的数据(TB 级别)到新集群,但在数据导入过程中集群无法提供正常的服务。 +- `tidb` 模式:以 TiDB/MySQL 作为后端,这种模式相比 `importer` 模式的导入速度较慢,但是可以在线导入,同时也支持将数据导入到 MySQL。 -以下是 TiDB Lightning 的一些基本信息: +基本信息: -- Lightning 的输入 - - Mydumper 输出文件 - - CSV 格式文件 +- Lightning 的输入: + - Dumpling 输出文件 + - 其他格式兼容的 CSV 文件 - 适用 TiDB 版本:v2.1 及以上 - Kubernetes 支持:[使用 TiDB Lightning 快速恢复 Kubernetes 上的 TiDB 集群数据](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/restore-data-using-tidb-lightning/) -#### 备份和恢复工具 BR +> **注意:** +> +> 原 Loader 工具已停止维护,不再推荐使用。相关场景请使用 TiDB Lightning 的 `tidb` 模式进行替代,详细信息请参考 [TiDB Lightning TiDB-backend 文档](/tidb-lightning/tidb-lightning-tidb-backend.md#从-loader-迁移到-tidb-lightning-tidb-backend)。 + +## 备份和恢复 -[BR](/br/backup-and-restore-tool.md) 是 TiDB 进行分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复。相比 Mydumper 和 Loader,BR 更适合大数据量的场景,有更高效的备份和恢复效率。 +[BR](/br/backup-and-restore-tool.md) 是一个对 TiDB 进行分布式备份和恢复的工具,可以高效地对大数据量的 TiDB 集群进行数据备份和恢复。 -以下是 BR 的一些基本信息: +基本信息: - [备份输出和恢复输入的文件类型](/br/backup-and-restore-tool.md#备份文件类型):SST + `backupmeta` 文件 - 适用 TiDB 版本:v3.1 及 v4.0 -- Kubernetes 支持:已支持,文档撰写中 - -#### 增量导入工具 Syncer(已停止维护,不推荐使用) +- Kubernetes 支持:[使用 BR 工具备份 TiDB 集群数据到兼容 S3 的存储](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/backup-to-aws-s3-using-br/), [使用 BR 工具恢复 S3 兼容存储上的备份数据](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/restore-from-aws-s3-using-br/) -[Syncer](/syncer-overview.md) 是将 MySQL/MariaDB 增量 binlog 数据实时复制导入到 TiDB 的工具。目前推荐使用 [TiDB Data Migration](#增量导入工具-tidb-data-migration) 替换该工具。 +## TiDB 增量日志同步 -以下是 Syncer 的一些基本信息: +[TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) 是收集 TiDB 的增量 binlog 数据,并提供准实时同步和备份的工具。该工具可用于 TiDB 集群间的增量数据同步,如将其中一个 TiDB 集群作为另一个 TiDB 集群的从集群。 -- Syncer 的输入:MySQL/MariaDB 的 binlog -- Syncer 的输出:以 SQL 形式写入 TiDB -- 适用 TiDB 版本:所有版本 -- Kubernetes 支持:不支持 - -#### 增量导入工具 TiDB Data Migration - -[TiDB Data Migration (DM)](https://pingcap.com/docs-cn/tidb-data-migration/stable/overview/) 是将 MySQL/MariaDB 数据迁移到 TiDB 的工具,支持全量数据和增量数据的同步。 - -以下是 DM 的一些基本信息: - -- DM 的输入:MySQL/MariaDB 的全量数据以及 binlog -- DM 的输出:以 SQL 形式写入 TiDB -- 适用 TiDB 版本:所有版本 -- Kubernetes 支持:开发中 - -### 数据导出类 - -#### 全量导出工具 Mydumper - -[Mydumper](/mydumper-overview.md) 用于对 MySQL/TiDB 进行全量逻辑备份。 - -以下是 Mydumper 的一些基本信息: - -- Mydumper 的输入:MySQL/TiDB 集群 -- Mydumper 的输出:SQL 文件 -- 适用 TiDB 版本:所有版本 -- Kubernetes 支持:[备份与恢复](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/backup-and-restore-using-helm-charts/) - -#### 增量导出工具 TiDB Binlog - -[TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) 是收集 TiDB 的 binlog,并提供准实时同步和备份的工具。 - -以下是 TiDB Binlog 的一些基本信息: +基本信息: - TiDB Binlog 的输入:TiDB 集群 -- TiDB Binlog 的输出:MySQL、TiDB、Kafka 或者增量备份文件 +- TiDB Binlog 的输出:TiDB 集群、MySQL、Kafka 或者增量备份文件 - 适用 TiDB 版本:v2.1 及以上 - Kubernetes 支持:[TiDB Binlog 运维文档](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/deploy-tidb-binlog/),[Kubernetes 上的 TiDB Binlog Drainer 配置](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/configure-tidb-binlog-drainer/) -## 工具演进路线 - -下面简单的介绍一下 TiDB 生态工具集的演进,方便大家了解工具之间的关系。 - -### TiDB 备份与恢复 - -Mydumper、Loader -> BR: - -Mydumper 和 Loader 都是在逻辑层面进行备份和恢复,效率较低;BR 使用 TiDB 的特性进行备份和恢复,适合数据量比较大的场景,备份效率大大提升。 +## 数据迁入 -### TiDB 全量恢复 +[TiDB Data Migration (DM)](https://pingcap.com/docs-cn/tidb-data-migration/stable/overview/) 是将 MySQL/MariaDB 数据迁移到 TiDB 的工具,支持全量数据和增量数据的迁移。 -Loader -> TiDB Lightning: +基本信息: -Loader 使用 SQL 的方式进行全量数据恢复,效率较低。TiDB Lightning 将数据直接导入 TiKV,大大提升了全量数据恢复的效率,适合将大量数据(TB 级别以上数据)快速导入到一个全新的 TiDB 集群中;且 TiDB Lightning 集成了 Loader 的逻辑导入数据功能,参见 [TiDB Lightning TiDB-backend 文档](/tidb-lightning/tidb-lightning-tidb-backend.md#从-loader-迁移到-tidb-lightning-tidb-backend),支持在线导入数据。 - -### MySQL 数据迁移 - -- Mydumper、Loader、Syncer -> DM: - - 使用 Mydumper、Loader、Syncer 将 MySQL 数据迁移到 TiDB,迁移过程比较繁琐。DM 提供了一体化的数据迁移方案,提高了易用性,而且 DM 还支持分库分表的合并。 - -- Loader -> TiDB Lightning: - - TiDB Lightning 集成了 Loader 的逻辑导入数据功能,参见 [TiDB Lightning TiDB-backend 文档](/tidb-lightning/tidb-lightning-tidb-backend.md#从-loader-迁移到-tidb-lightning-tidb-backend),由 TiDB Lightning 统一提供全量数据恢复功能。 - -## 数据迁移解决方案 - -针对 TiDB 的 2.1,3.0 以及 3.1 版本,下面给出典型业务场景下的数据迁移方案。 - -### TiDB 3.0 全链路数据迁移方案 - -#### MySQL 数据迁移到 TiDB - -如果 MySQL 数据量在 TB 级别以上,推荐迁移步骤如下: - -1. 使用 Mydumper 导出 MySQL 全量数据 -2. 使用 TiDB Lightning 将 MySQL 全量备份数据导入 TiDB 集群 -3. 使用 DM 同步 MySQL 增量数据到 TiDB - -如果 MySQL 数据量在 TB 级别以下,推荐直接使用 DM 迁移 MySQL 数据到 TiDB(迁移的过程包括全量导入和增量的同步)。 - -#### TiDB 集群数据的同步 - -使用 TiDB Binlog 将 TiDB 数据同步到下游 TiDB/MySQL。 - -#### TiDB 集群数据的全量备份及恢复 - -推荐步骤: - -1. 使用 Mydumper 进行全量数据的备份 -2. 使用 TiDB Lightning 将全量数据恢复到 TiDB/MySQL - -### TiDB 3.1 全链路数据迁移方案 - -#### MySQL 数据迁移到 TiDB - -如果 MySQL 数据量在 TB 级别以上,推荐迁移步骤如下: - -1. 使用 Mydumper 导出 MySQL 全量数据 -2. 使用 TiDB Lightning 将 MySQL 全量备份数据导入 TiDB 集群 -3. 使用 DM 同步 MySQL 增量数据到 TiDB - -如果 MySQL 数据量在 TB 级别以下,推荐直接使用 DM 迁移 MySQL 数据到 TiDB(迁移的过程包括全量导入和增量的同步)。 - -#### TiDB 集群数据的同步 - -使用 TiDB-Binlog 将 TiDB 数据同步到下游 TiDB/MySQL。 - -#### TiDB 集群数据的全量备份及恢复 +- DM 的输入:MySQL/MariaDB +- DM 的输出:TiDB 集群 +- 适用 TiDB 版本:所有版本 +- Kubernetes 支持:开发中 -- 恢复到 TiDB +如果数据量在 TB 级别以下,推荐直接使用 DM 迁移 MySQL/MariaDB 数据到 TiDB(迁移的过程包括全量数据的导出导入和增量数据的同步)。 - - 使用 BR 进行全量数据的备份 - - 使用 BR 进行全量数据的恢复 +如果数据量在 TB 级别,推荐的迁移步骤如下: -- 恢复到 MySQL +1. 使用 [Dumpling](/export-or-backup-using-dumpling.md) 导出 MySQL/MariaDB 全量数据。 +2. 使用 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md) 将全量导出数据导入 TiDB 集群。 +3. 使用 DM 迁移 MySQL/MariaDB 增量数据到 TiDB。 - - 使用 Mydumper 进行全量数据的备份 - - 使用 TiDB Lightning 进行全量数据的恢复 +> **注意:** +> +> - 原 Syncer 工具已停止维护,不再推荐使用,相关场景请使用 DM 的增量迁移模式进行替代。