forked from pingcap/docs-cn
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
reference: refine the ecosystem tools user guide (pingcap#3497)
- Loading branch information
1 parent
befa364
commit 5b41392
Showing
3 changed files
with
86 additions
and
146 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,185 +1,85 @@ | ||
--- | ||
title: TiDB 生态工具使用指南 | ||
title: TiDB 生态工具功能概览 | ||
category: reference | ||
aliases: ['/docs-cn/dev/reference/tools/user-guide/','/docs-cn/dev/how-to/migrate/from-mysql/', '/docs-cn/dev/how-to/migrate/incrementally-from-mysql/', '/docs-cn/dev/how-to/migrate/overview/', '/docs-cn/dev/reference/tools/use-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 的增量迁移模式进行替代。 |