From f074149e635cb2d0274f396838dce14310760ce6 Mon Sep 17 00:00:00 2001 From: Xuecheng Zhang Date: Fri, 5 Jun 2020 15:55:18 +0800 Subject: [PATCH 1/5] cherry pick #3497 to release-3.1 Signed-off-by: sre-bot --- TOC.md | 209 +++++++++++++++++++++++++++++++++++ ecosystem-tool-user-case.md | 39 +++++++ ecosystem-tool-user-guide.md | 190 ++++++++----------------------- 3 files changed, 293 insertions(+), 145 deletions(-) create mode 100644 ecosystem-tool-user-case.md diff --git a/TOC.md b/TOC.md index 0a8b9d63d7b5..235dd5a9e57f 100644 --- a/TOC.md +++ b/TOC.md @@ -6,6 +6,7 @@ ## 目录 + 关于 TiDB +<<<<<<< HEAD - [TiDB 简介](/overview.md) + Benchmark 测试 - [如何用 Sysbench 测试 TiDB](/benchmark/benchmark-tidb-using-sysbench.md) @@ -72,6 +73,214 @@ - [集群配置诊断](/troubleshoot-tidb-cluster.md) - [TiDB Lightning 故障诊断](/troubleshoot-tidb-lightning.md) + 参考手册 +======= + + [TiDB 简介](/overview.md) + + [基本功能](/basic-features.md) + + 兼容性 + + [与 MySQL 的兼容性](/mysql-compatibility.md) + + [使用限制](/tidb-limitations.md) + + [荣誉列表](/credits.md) ++ 快速上手 + + [快速上手指南](/quick-start-with-tidb.md) + + [SQL 基本操作](/basic-sql-operations.md) ++ 部署集群 + + [软硬件环境需求](/hardware-and-software-requirements.md) + + [环境与系统配置检查](/check-before-deployment.md) + + 配置拓扑结构 + + [最小部署拓扑结构](/minimal-deployment-topology.md) + + [TiFlash 部署拓扑](/tiflash-deployment-topology.md) + + [TiCDC 部署拓扑](/ticdc-deployment-topology.md) + + [TiDB Binlog 部署拓扑](/tidb-binlog-deployment-topology.md) + + [跨机房部署拓扑结构](/geo-distributed-deployment-topology.md) + + [混合部署拓扑结构](/hybrid-deployment-topology.md) + + 安装与启动 + + Linux 环境 + + [使用 TiUP 部署(推荐)](/production-deployment-using-tiup.md) + + [使用 TiUP 离线部署(推荐)](/production-offline-deployment-using-tiup.md) + + [使用 Ansible 部署](/online-deployment-using-ansible.md) + + [使用 Ansible 离线部署](/offline-deployment-using-ansible.md) + + [验证集群状态](/post-installation-check.md) + + 性能测试报告及重现指南 + + [如何用 Sysbench 测试 TiDB](/benchmark/benchmark-tidb-using-sysbench.md) + + [如何对 TiDB 进行 TPC-C 测试](/benchmark/benchmark-tidb-using-tpcc.md) + + [Sysbench 性能对比 - v4.0 对比 v3.0](/benchmark/benchmark-sysbench-v4-vs-v3.md) + + [TPC-H 性能对比 - v4.0 对比 v3.0](/benchmark/v4.0-performance-benchmarking-with-tpch.md) + + [TPC-C 性能对比 - v4.0 对比 v3.0](/benchmark/v4.0-performance-benchmarking-with-tpcc.md) + + [Sysbench 性能对比 - v3.0 对比 v2.1](/benchmark/v3.0-performance-benchmarking-with-sysbench.md) + + [TPC-C 性能对比 - v3.0 对比 v2.1](/benchmark/v3.0-performance-benchmarking-with-tpcc.md) + + [线上负载与 ADD INDEX 相互影响测试](/benchmark/online-workloads-and-add-index-operations.md) ++ 数据迁移 + + [支持的数据迁移路径](/data-migration-route.md) + + 从 MySQL 迁移至 TiDB + + [从 Mydumper 文件迁移](/migrate-from-mysql-mydumper-files.md) + + [使用 DM 工具从 Amazon Aurora MySQL 迁移](/migrate-from-aurora-mysql-database.md) + + 从 CSV 文件迁移至 TiDB + + [使用 TiDB Lightning 导入 CSV 文件](/tidb-lightning/migrate-from-csv-using-tidb-lightning.md) + + [使用 LOAD DATA 语句导入 CSV 文件](/sql-statements/sql-statement-load-data.md) + + [从 SQL 文件迁移到 TiDB](/migrate-from-mysql-mydumper-files.md) ++ 运维操作 + + 升级 TiDB 版本 + + [使用 TiUP(推荐)](/upgrade-tidb-using-tiup.md) + + [使用 TiDB Operator](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/upgrade-a-tidb-cluster/) + + [使用 TiDB Ansible](/upgrade-tidb-using-ansible.md) + + 扩缩容 + + [使用 TiUP(推荐)](/scale-tidb-using-tiup.md) + + [使用 TiDB Ansible](/scale-tidb-using-ansible.md) + + [使用 TiDB Operator](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/scale-a-tidb-cluster/) + + 备份与恢复 + + [使用 Mydumper 和 TiDB Lightning 进行备份与恢复](/backup-and-restore-using-mydumper-lightning.md) + + [使用 Dumpling 导出或备份 TiDB 数据](/export-or-backup-using-dumpling.md) + + 使用 BR 工具 + + [使用 BR 进行备份与恢复](/br/backup-and-restore-tool.md) + + [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) + + [日常巡检](/daily-inspection.md) + + [TiCDC 运维操作及任务管理](/ticdc/manage-ticdc.md) + + [TiFlash 常用运维操作](/tiflash/maintain-tiflash.md) + + [TiUP 常用运维操作](/maintain-tidb-using-tiup.md) + + [Ansible 常用运维操作](/maintain-tidb-using-ansible.md) ++ 监控与告警 + + [监控框架概述](/tidb-monitoring-framework.md) + + [监控 API](/tidb-monitoring-api.md) + + [手动部署监控](/deploy-monitoring-services.md) + + [TiDB 集群报警规则与处理方法](/alert-rules.md) + + [TiFlash 报警规则与处理方法](/tiflash/tiflash-alert-rules.md) ++ 故障诊断 + + [定位慢查询](/identify-slow-queries.md) + + [SQL 诊断](/system-tables/system-table-sql-diagnostics.md) + + [定位消耗系统资源多的查询](/identify-expensive-queries.md) + + [SQL 语句统计](/statement-summary-tables.md) + + [热点问题处理](/troubleshoot-hot-spot-issues.md) + + [CPU 占用过多导致读写延迟增加](/troubleshoot-cpu-issues.md) + + [写冲突与写性能下降](/troubleshoot-write-conflicts.md) + + [磁盘 I/O 过高](/troubleshoot-high-disk-io.md) + + [锁冲突与 TTL 超时](/troubleshoot-lock-conflicts.md) + + [TiCDC 常见问题](/ticdc/troubleshoot-ticdc.md) + + [TiFlash 常见问题](/tiflash/troubleshoot-tiflash.md) ++ 性能调优 + + 系统调优 + + [操作系统性能参数调优](/tune-operating-system.md) + + 软件调优 + + 配置 + + [TiKV 线程调优](/tune-tikv-thread-performance.md) + + [TiKV 内存调优](/tune-tikv-memory-performance.md) + + [TiFlash 调优](/tiflash/tune-tiflash-performance.md) + + [下推计算结果缓存](/coprocessor-cache.md) + + SQL 性能调优 + + [SQL 性能调优概览](/sql-tuning-overview.md) + + [理解 TiDB 执行计划](/query-execution-plan.md) + + SQL 优化 + + [SQL 优化流程简介](/sql-optimization-concepts.md) + + 逻辑优化 + + [逻辑优化概览](/sql-logical-optimization.md) + + [子查询相关的优化](/subquery-optimization.md) + + [列裁剪](/column-pruning.md) + + [关联子查询去关联](/correlated-subquery-optimization.md) + + [Max/Min 消除](/max-min-eliminate.md) + + [谓词下推](/predicate-push-down.md) + + [分区裁剪](/partition-pruning.md) + + [TopN 和 Limit 下推](/topn-limit-push-down.md) + + [Join Reorder](/join-reorder.md) + + 物理优化 + + [物理优化概览](/sql-physical-optimization.md) + + [索引的选择](/choose-index.md) + + [统计信息简介](/statistics.md) + + [错误索引的解决方案](/wrong-index-solution.md) + + [Distinct 优化](/agg-distinct-optimization.md) + + [执行计划缓存](/sql-prepare-plan-cache.md) + + 控制执行计划 + + [控制执行计划概览](/control-execution-plan.md) + + [Optimizer Hints](/optimizer-hints.md) + + [执行计划管理](/sql-plan-management.md) + + [优化规则及表达式下推的黑名单](/blacklist-control-plan.md) ++ 教程 + + [同城多中心部署](/multi-data-centers-in-one-city-deployment.md) + + [两地三中心部署](/three-data-centers-in-two-cities-deployment.md) + + 最佳实践 + + [TiDB 最佳实践](/best-practices/tidb-best-practices.md) + + [Java 应用开发最佳实践](/best-practices/java-app-best-practices.md) + + [HAProxy 最佳实践](/best-practices/haproxy-best-practices.md) + + [高并发写入场景最佳实践](/best-practices/high-concurrency-best-practices.md) + + [Grafana 监控最佳实践](/best-practices/grafana-monitor-best-practices.md) + + [PD 调度策略最佳实践](/best-practices/pd-scheduling-best-practices.md) + + [海量 Region 集群调优](/best-practices/massive-regions-best-practices.md) + + [Placement Rules 使用文档](/configure-placement-rules.md) + + [Load Base Split 使用文档](/configure-load-base-split.md) + + [Store Limit 使用文档](/configure-store-limit.md) ++ TiDB 生态工具 + + [功能概览](/ecosystem-tool-user-guide.md) + + [适用场景](/ecosystem-tool-user-case.md) + + [工具下载](/download-ecosystem-tools.md) + + Backup & Restore (BR) + + [BR 常见问题](/br/backup-and-restore-faq.md) + + [使用 BR 进行备份和恢复](/br/backup-and-restore-tool.md) + + [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) + + TiDB Binlog + + [概述](/tidb-binlog/tidb-binlog-overview.md) + + [部署使用](/tidb-binlog/deploy-tidb-binlog.md) + + [运维管理](/tidb-binlog/maintain-tidb-binlog-cluster.md) + + [配置说明](/tidb-binlog/tidb-binlog-configuration-file.md) + + [Pump](/tidb-binlog/tidb-binlog-configuration-file.md#pump) + + [Drainer](/tidb-binlog/tidb-binlog-configuration-file.md#drainer) + + [版本升级](/tidb-binlog/upgrade-tidb-binlog.md) + + [监控告警](/tidb-binlog/monitor-tidb-binlog-cluster.md) + + [增量恢复](/tidb-binlog/tidb-binlog-reparo.md) + + [binlogctl 工具](/tidb-binlog/binlog-control.md) + + [Kafka 自定义开发](/tidb-binlog/binlog-slave-client.md) + + [TiDB Binlog Relay Log](/tidb-binlog/tidb-binlog-relay-log.md) + + [集群间双向同步](/tidb-binlog/bidirectional-replication-between-tidb-clusters.md) + + [术语表](/tidb-binlog/tidb-binlog-glossary.md) + + 故障诊断 + + [故障诊断](/tidb-binlog/troubleshoot-tidb-binlog.md) + + [常见错误修复](/tidb-binlog/handle-tidb-binlog-errors.md) + + [FAQ](/tidb-binlog/tidb-binlog-faq.md) + + TiDB Lightning + + [概述](/tidb-lightning/tidb-lightning-overview.md) + + [快速上手教程](/get-started-with-tidb-lightning.md) + + [部署执行](/tidb-lightning/deploy-tidb-lightning.md) + + [参数说明](/tidb-lightning/tidb-lightning-configuration.md) + + 主要功能 + + [断点续传](/tidb-lightning/tidb-lightning-checkpoints.md) + + [表库过滤](/tidb-lightning/tidb-lightning-table-filter.md) + + [CSV 支持](/tidb-lightning/migrate-from-csv-using-tidb-lightning.md) + + [TiDB-backend](/tidb-lightning/tidb-lightning-tidb-backend.md) + + [Web 界面](/tidb-lightning/tidb-lightning-web-interface.md) + + [监控告警](/tidb-lightning/monitor-tidb-lightning.md) + + [故障诊断](/troubleshoot-tidb-lightning.md) + + [FAQ](/tidb-lightning/tidb-lightning-faq.md) + + [术语表](/tidb-lightning/tidb-lightning-glossary.md) + + [TiCDC](/ticdc/ticdc-overview.md) + + sync-diff-inspector + + [概述](/sync-diff-inspector/sync-diff-inspector-overview.md) + + [不同库名或表名的数据校验](/sync-diff-inspector/route-diff.md) + + [分库分表场景下的数据校验](/sync-diff-inspector/shard-diff.md) + + [TiDB 主从集群的数据校验](/sync-diff-inspector/upstream-downstream-diff.md) + + [Loader](/loader-overview.md) + + [Mydumper](/mydumper-overview.md) + + [Syncer](/syncer-overview.md) ++ 参考指南 + + 架构 + + [概述](/tidb-architecture.md) + + [存储](/tidb-storage.md) + + [计算](/tidb-computing.md) + + [调度](/tidb-scheduling.md) + + 监控指标 + + [Overview 面板](/grafana-overview-dashboard.md) + + [TiDB 面板](/grafana-tidb-dashboard.md) + + [PD 面板](/grafana-pd-dashboard.md) + + [TiKV 面板](/grafana-tikv-dashboard.md) + + [TiFlash 监控指标](/tiflash/monitor-tiflash.md) + + 安全加固 + + [为 TiDB 客户端服务端间通信开启加密传输](/enable-tls-between-clients.md) + + [为 TiDB 组件间通信开启加密传输](/enable-tls-between-components.md) + + [为 TiDB 开启数据加密存储](/enable-encrypt-stored-data.md) + + [生成自签名证书](/generate-self-signed-certificates.md) + + 权限 + + [与 MySQL 安全特性差异](/security-compatibility-with-mysql.md) + + [权限管理](/privilege-management.md) + + [TiDB 用户账户管理](/user-account-management.md) + + [基于角色的访问控制](/role-based-access-control.md) + + [TiDB 证书鉴权使用指南](/certificate-authentication.md) +>>>>>>> 5b41392... reference: refine the ecosystem tools user guide (#3497) + SQL - [与 MySQL 兼容性对比](/mysql-compatibility.md) + SQL 语言结构 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 854d511eb2b6..6312469d5cdb 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/v3.1/reference/tools/user-guide/','/docs-cn/v3.1/how-to/migrate/from-mysql/', '/docs-cn/v3.1/how-to/migrate/incrementally-from-mysql/', '/docs-cn/v3.1/how-to/migrate/overview/', '/docs-cn/v3.1/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 的增量迁移模式进行替代。 From 4c1b44d3af7562d329ff0fdf19ac7e51ab972024 Mon Sep 17 00:00:00 2001 From: yikeke Date: Fri, 5 Jun 2020 16:00:48 +0800 Subject: [PATCH 2/5] Update TOC.md --- TOC.md | 212 +-------------------------------------------------------- 1 file changed, 2 insertions(+), 210 deletions(-) diff --git a/TOC.md b/TOC.md index 235dd5a9e57f..873f1545140b 100644 --- a/TOC.md +++ b/TOC.md @@ -6,7 +6,6 @@ ## 目录 + 关于 TiDB -<<<<<<< HEAD - [TiDB 简介](/overview.md) + Benchmark 测试 - [如何用 Sysbench 测试 TiDB](/benchmark/benchmark-tidb-using-sysbench.md) @@ -73,214 +72,6 @@ - [集群配置诊断](/troubleshoot-tidb-cluster.md) - [TiDB Lightning 故障诊断](/troubleshoot-tidb-lightning.md) + 参考手册 -======= - + [TiDB 简介](/overview.md) - + [基本功能](/basic-features.md) - + 兼容性 - + [与 MySQL 的兼容性](/mysql-compatibility.md) - + [使用限制](/tidb-limitations.md) - + [荣誉列表](/credits.md) -+ 快速上手 - + [快速上手指南](/quick-start-with-tidb.md) - + [SQL 基本操作](/basic-sql-operations.md) -+ 部署集群 - + [软硬件环境需求](/hardware-and-software-requirements.md) - + [环境与系统配置检查](/check-before-deployment.md) - + 配置拓扑结构 - + [最小部署拓扑结构](/minimal-deployment-topology.md) - + [TiFlash 部署拓扑](/tiflash-deployment-topology.md) - + [TiCDC 部署拓扑](/ticdc-deployment-topology.md) - + [TiDB Binlog 部署拓扑](/tidb-binlog-deployment-topology.md) - + [跨机房部署拓扑结构](/geo-distributed-deployment-topology.md) - + [混合部署拓扑结构](/hybrid-deployment-topology.md) - + 安装与启动 - + Linux 环境 - + [使用 TiUP 部署(推荐)](/production-deployment-using-tiup.md) - + [使用 TiUP 离线部署(推荐)](/production-offline-deployment-using-tiup.md) - + [使用 Ansible 部署](/online-deployment-using-ansible.md) - + [使用 Ansible 离线部署](/offline-deployment-using-ansible.md) - + [验证集群状态](/post-installation-check.md) - + 性能测试报告及重现指南 - + [如何用 Sysbench 测试 TiDB](/benchmark/benchmark-tidb-using-sysbench.md) - + [如何对 TiDB 进行 TPC-C 测试](/benchmark/benchmark-tidb-using-tpcc.md) - + [Sysbench 性能对比 - v4.0 对比 v3.0](/benchmark/benchmark-sysbench-v4-vs-v3.md) - + [TPC-H 性能对比 - v4.0 对比 v3.0](/benchmark/v4.0-performance-benchmarking-with-tpch.md) - + [TPC-C 性能对比 - v4.0 对比 v3.0](/benchmark/v4.0-performance-benchmarking-with-tpcc.md) - + [Sysbench 性能对比 - v3.0 对比 v2.1](/benchmark/v3.0-performance-benchmarking-with-sysbench.md) - + [TPC-C 性能对比 - v3.0 对比 v2.1](/benchmark/v3.0-performance-benchmarking-with-tpcc.md) - + [线上负载与 ADD INDEX 相互影响测试](/benchmark/online-workloads-and-add-index-operations.md) -+ 数据迁移 - + [支持的数据迁移路径](/data-migration-route.md) - + 从 MySQL 迁移至 TiDB - + [从 Mydumper 文件迁移](/migrate-from-mysql-mydumper-files.md) - + [使用 DM 工具从 Amazon Aurora MySQL 迁移](/migrate-from-aurora-mysql-database.md) - + 从 CSV 文件迁移至 TiDB - + [使用 TiDB Lightning 导入 CSV 文件](/tidb-lightning/migrate-from-csv-using-tidb-lightning.md) - + [使用 LOAD DATA 语句导入 CSV 文件](/sql-statements/sql-statement-load-data.md) - + [从 SQL 文件迁移到 TiDB](/migrate-from-mysql-mydumper-files.md) -+ 运维操作 - + 升级 TiDB 版本 - + [使用 TiUP(推荐)](/upgrade-tidb-using-tiup.md) - + [使用 TiDB Operator](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/upgrade-a-tidb-cluster/) - + [使用 TiDB Ansible](/upgrade-tidb-using-ansible.md) - + 扩缩容 - + [使用 TiUP(推荐)](/scale-tidb-using-tiup.md) - + [使用 TiDB Ansible](/scale-tidb-using-ansible.md) - + [使用 TiDB Operator](https://pingcap.com/docs-cn/tidb-in-kubernetes/stable/scale-a-tidb-cluster/) - + 备份与恢复 - + [使用 Mydumper 和 TiDB Lightning 进行备份与恢复](/backup-and-restore-using-mydumper-lightning.md) - + [使用 Dumpling 导出或备份 TiDB 数据](/export-or-backup-using-dumpling.md) - + 使用 BR 工具 - + [使用 BR 进行备份与恢复](/br/backup-and-restore-tool.md) - + [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) - + [日常巡检](/daily-inspection.md) - + [TiCDC 运维操作及任务管理](/ticdc/manage-ticdc.md) - + [TiFlash 常用运维操作](/tiflash/maintain-tiflash.md) - + [TiUP 常用运维操作](/maintain-tidb-using-tiup.md) - + [Ansible 常用运维操作](/maintain-tidb-using-ansible.md) -+ 监控与告警 - + [监控框架概述](/tidb-monitoring-framework.md) - + [监控 API](/tidb-monitoring-api.md) - + [手动部署监控](/deploy-monitoring-services.md) - + [TiDB 集群报警规则与处理方法](/alert-rules.md) - + [TiFlash 报警规则与处理方法](/tiflash/tiflash-alert-rules.md) -+ 故障诊断 - + [定位慢查询](/identify-slow-queries.md) - + [SQL 诊断](/system-tables/system-table-sql-diagnostics.md) - + [定位消耗系统资源多的查询](/identify-expensive-queries.md) - + [SQL 语句统计](/statement-summary-tables.md) - + [热点问题处理](/troubleshoot-hot-spot-issues.md) - + [CPU 占用过多导致读写延迟增加](/troubleshoot-cpu-issues.md) - + [写冲突与写性能下降](/troubleshoot-write-conflicts.md) - + [磁盘 I/O 过高](/troubleshoot-high-disk-io.md) - + [锁冲突与 TTL 超时](/troubleshoot-lock-conflicts.md) - + [TiCDC 常见问题](/ticdc/troubleshoot-ticdc.md) - + [TiFlash 常见问题](/tiflash/troubleshoot-tiflash.md) -+ 性能调优 - + 系统调优 - + [操作系统性能参数调优](/tune-operating-system.md) - + 软件调优 - + 配置 - + [TiKV 线程调优](/tune-tikv-thread-performance.md) - + [TiKV 内存调优](/tune-tikv-memory-performance.md) - + [TiFlash 调优](/tiflash/tune-tiflash-performance.md) - + [下推计算结果缓存](/coprocessor-cache.md) - + SQL 性能调优 - + [SQL 性能调优概览](/sql-tuning-overview.md) - + [理解 TiDB 执行计划](/query-execution-plan.md) - + SQL 优化 - + [SQL 优化流程简介](/sql-optimization-concepts.md) - + 逻辑优化 - + [逻辑优化概览](/sql-logical-optimization.md) - + [子查询相关的优化](/subquery-optimization.md) - + [列裁剪](/column-pruning.md) - + [关联子查询去关联](/correlated-subquery-optimization.md) - + [Max/Min 消除](/max-min-eliminate.md) - + [谓词下推](/predicate-push-down.md) - + [分区裁剪](/partition-pruning.md) - + [TopN 和 Limit 下推](/topn-limit-push-down.md) - + [Join Reorder](/join-reorder.md) - + 物理优化 - + [物理优化概览](/sql-physical-optimization.md) - + [索引的选择](/choose-index.md) - + [统计信息简介](/statistics.md) - + [错误索引的解决方案](/wrong-index-solution.md) - + [Distinct 优化](/agg-distinct-optimization.md) - + [执行计划缓存](/sql-prepare-plan-cache.md) - + 控制执行计划 - + [控制执行计划概览](/control-execution-plan.md) - + [Optimizer Hints](/optimizer-hints.md) - + [执行计划管理](/sql-plan-management.md) - + [优化规则及表达式下推的黑名单](/blacklist-control-plan.md) -+ 教程 - + [同城多中心部署](/multi-data-centers-in-one-city-deployment.md) - + [两地三中心部署](/three-data-centers-in-two-cities-deployment.md) - + 最佳实践 - + [TiDB 最佳实践](/best-practices/tidb-best-practices.md) - + [Java 应用开发最佳实践](/best-practices/java-app-best-practices.md) - + [HAProxy 最佳实践](/best-practices/haproxy-best-practices.md) - + [高并发写入场景最佳实践](/best-practices/high-concurrency-best-practices.md) - + [Grafana 监控最佳实践](/best-practices/grafana-monitor-best-practices.md) - + [PD 调度策略最佳实践](/best-practices/pd-scheduling-best-practices.md) - + [海量 Region 集群调优](/best-practices/massive-regions-best-practices.md) - + [Placement Rules 使用文档](/configure-placement-rules.md) - + [Load Base Split 使用文档](/configure-load-base-split.md) - + [Store Limit 使用文档](/configure-store-limit.md) -+ TiDB 生态工具 - + [功能概览](/ecosystem-tool-user-guide.md) - + [适用场景](/ecosystem-tool-user-case.md) - + [工具下载](/download-ecosystem-tools.md) - + Backup & Restore (BR) - + [BR 常见问题](/br/backup-and-restore-faq.md) - + [使用 BR 进行备份和恢复](/br/backup-and-restore-tool.md) - + [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) - + TiDB Binlog - + [概述](/tidb-binlog/tidb-binlog-overview.md) - + [部署使用](/tidb-binlog/deploy-tidb-binlog.md) - + [运维管理](/tidb-binlog/maintain-tidb-binlog-cluster.md) - + [配置说明](/tidb-binlog/tidb-binlog-configuration-file.md) - + [Pump](/tidb-binlog/tidb-binlog-configuration-file.md#pump) - + [Drainer](/tidb-binlog/tidb-binlog-configuration-file.md#drainer) - + [版本升级](/tidb-binlog/upgrade-tidb-binlog.md) - + [监控告警](/tidb-binlog/monitor-tidb-binlog-cluster.md) - + [增量恢复](/tidb-binlog/tidb-binlog-reparo.md) - + [binlogctl 工具](/tidb-binlog/binlog-control.md) - + [Kafka 自定义开发](/tidb-binlog/binlog-slave-client.md) - + [TiDB Binlog Relay Log](/tidb-binlog/tidb-binlog-relay-log.md) - + [集群间双向同步](/tidb-binlog/bidirectional-replication-between-tidb-clusters.md) - + [术语表](/tidb-binlog/tidb-binlog-glossary.md) - + 故障诊断 - + [故障诊断](/tidb-binlog/troubleshoot-tidb-binlog.md) - + [常见错误修复](/tidb-binlog/handle-tidb-binlog-errors.md) - + [FAQ](/tidb-binlog/tidb-binlog-faq.md) - + TiDB Lightning - + [概述](/tidb-lightning/tidb-lightning-overview.md) - + [快速上手教程](/get-started-with-tidb-lightning.md) - + [部署执行](/tidb-lightning/deploy-tidb-lightning.md) - + [参数说明](/tidb-lightning/tidb-lightning-configuration.md) - + 主要功能 - + [断点续传](/tidb-lightning/tidb-lightning-checkpoints.md) - + [表库过滤](/tidb-lightning/tidb-lightning-table-filter.md) - + [CSV 支持](/tidb-lightning/migrate-from-csv-using-tidb-lightning.md) - + [TiDB-backend](/tidb-lightning/tidb-lightning-tidb-backend.md) - + [Web 界面](/tidb-lightning/tidb-lightning-web-interface.md) - + [监控告警](/tidb-lightning/monitor-tidb-lightning.md) - + [故障诊断](/troubleshoot-tidb-lightning.md) - + [FAQ](/tidb-lightning/tidb-lightning-faq.md) - + [术语表](/tidb-lightning/tidb-lightning-glossary.md) - + [TiCDC](/ticdc/ticdc-overview.md) - + sync-diff-inspector - + [概述](/sync-diff-inspector/sync-diff-inspector-overview.md) - + [不同库名或表名的数据校验](/sync-diff-inspector/route-diff.md) - + [分库分表场景下的数据校验](/sync-diff-inspector/shard-diff.md) - + [TiDB 主从集群的数据校验](/sync-diff-inspector/upstream-downstream-diff.md) - + [Loader](/loader-overview.md) - + [Mydumper](/mydumper-overview.md) - + [Syncer](/syncer-overview.md) -+ 参考指南 - + 架构 - + [概述](/tidb-architecture.md) - + [存储](/tidb-storage.md) - + [计算](/tidb-computing.md) - + [调度](/tidb-scheduling.md) - + 监控指标 - + [Overview 面板](/grafana-overview-dashboard.md) - + [TiDB 面板](/grafana-tidb-dashboard.md) - + [PD 面板](/grafana-pd-dashboard.md) - + [TiKV 面板](/grafana-tikv-dashboard.md) - + [TiFlash 监控指标](/tiflash/monitor-tiflash.md) - + 安全加固 - + [为 TiDB 客户端服务端间通信开启加密传输](/enable-tls-between-clients.md) - + [为 TiDB 组件间通信开启加密传输](/enable-tls-between-components.md) - + [为 TiDB 开启数据加密存储](/enable-encrypt-stored-data.md) - + [生成自签名证书](/generate-self-signed-certificates.md) - + 权限 - + [与 MySQL 安全特性差异](/security-compatibility-with-mysql.md) - + [权限管理](/privilege-management.md) - + [TiDB 用户账户管理](/user-account-management.md) - + [基于角色的访问控制](/role-based-access-control.md) - + [TiDB 证书鉴权使用指南](/certificate-authentication.md) ->>>>>>> 5b41392... reference: refine the ecosystem tools user guide (#3497) + SQL - [与 MySQL 兼容性对比](/mysql-compatibility.md) + SQL 语言结构 @@ -517,7 +308,8 @@ - [常见错误修复](/tidb-binlog/handle-tidb-binlog-errors.md) - [FAQ](/tidb-binlog/tidb-binlog-faq.md) + 周边工具 - - [工具使用指南](/ecosystem-tool-user-guide.md) + + [功能概览](/ecosystem-tool-user-guide.md) + + [适用场景](/ecosystem-tool-user-case.md) - [Mydumper](/mydumper-overview.md) - [Loader](/loader-overview.md) - [Syncer](/syncer-overview.md) From aa9d3469cc0552fe6debe99ca263d00fbda8dbbc Mon Sep 17 00:00:00 2001 From: yikeke Date: Fri, 5 Jun 2020 18:34:27 +0800 Subject: [PATCH 3/5] manually cp from https://github.com/pingcap/docs-cn/pull/3151/ --- TOC.md | 1 + mydumper-overview.md | 2 +- .../export-or-backup-using-dumpling.md | 116 ++++++++++++++++++ 3 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 sql-statements/export-or-backup-using-dumpling.md diff --git a/TOC.md b/TOC.md index 873f1545140b..afb534d6bee5 100644 --- a/TOC.md +++ b/TOC.md @@ -58,6 +58,7 @@ - [Ansible 常见运维操作](/maintain-tidb-using-ansible.md) + 备份与恢复 - [使用 Mydumper/TiDB Lightning 进行备份与恢复](/backup-and-restore-using-mydumper-lightning.md) + - [使用 Dumpling 导出或备份 TiDB 数据](/export-or-backup-using-dumpling.md) - [使用 BR 进行备份与恢复](/br/backup-and-restore-tool.md) - [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) + 定位异常查询 diff --git a/mydumper-overview.md b/mydumper-overview.md index c2f50514d882..50a9e98f849e 100644 --- a/mydumper-overview.md +++ b/mydumper-overview.md @@ -9,7 +9,7 @@ aliases: ['/docs-cn/v3.1/reference/tools/mydumper/'] ## Mydumper 简介 -[Mydumper](https://github.com/pingcap/mydumper) 是一个 fork 项目,针对 TiDB 的特性进行了优化,推荐使用此工具对 TiDB 进行逻辑备份。 +[Mydumper](https://github.com/pingcap/mydumper) 是一个 fork 项目,针对 TiDB 的特性进行了优化,使用此工具可以完成对 TiDB 的逻辑备份。 Mydumper 包含在 tidb-enterprise-tools 安装包中,可[在此下载](/download-ecosystem-tools.md)。 diff --git a/sql-statements/export-or-backup-using-dumpling.md b/sql-statements/export-or-backup-using-dumpling.md new file mode 100644 index 000000000000..9b162aa576f3 --- /dev/null +++ b/sql-statements/export-or-backup-using-dumpling.md @@ -0,0 +1,116 @@ +--- +title: 使用 Dumpling 导出或备份 TiDB 数据 +summary: 使用新的导出工具 Dumpling 导出或者备份数据。 +category: how-to +--- + +# 使用 Dumpling 导出或备份 TiDB 数据 + +本文档介绍如何使用数据导出工具 [Dumpling](https://github.com/pingcap/dumpling)。该工具可以把存储在 TiDB 中的数据导出为 SQL 或者 CSV 格式,可以用于完成逻辑上的全量备份或者导出。 + +如果需要直接备份 SST 文件(KV 对)或者对延迟不敏感的增量备份,请参阅 [BR](/br/backup-and-restore-tool.md)。如果需要实时的增量备份,请参阅 [TiCDC](/ticdc/ticdc-overview.md)。 + +使用 Dumpling 时,需要在已经启动的集群上执行导出命令。本文假设在 `127.0.0.1:4000` 有一个 TiDB 实例,并且这个 TiDB 实例中有无密码的 root 用户。 + +## 从 TiDB 导出数据 + +使用如下命令导出数据: + +{{< copyable "shell-regular" >}} + +```shell +dumpling \ + -u root \ + -P 4000 \ + -H 127.0.0.1 \ + --filetype sql \ + --threads 32 \ + -o /tmp/test \ + -F $(( 1024 * 1024 * 256 )) +``` + +上述命令中,`-H`、`-P`、`-u` 分别是地址,端口,用户。如果需要密码验证,可以用 `-p $YOUR_SECRET_PASSWORD` 传给 Dumpling。 + +默认情况下,除了系统数据库中的表之外,Dumpling 会导出整个数据库的表。你可以使用 `--where ` 来选定要导出的记录。假如导出数据的格式是 CSV(使用 `--filetype csv` 即可导出 CSV 文件),还可以使用 `--sql ` 导出指定 SQL 选择出来的记录,例如,导出 `test.sbtest1` 中所有 `id < 100` 的记录: + +{{< copyable "shell-regular" >}} + +```shell +./dumpling \ + -u root \ + -P 4000 \ + -H 127.0.0.1 \ + -o /tmp/test \ + --filetype csv \ + --sql "select * from `test`.`sbtest1` where id < 100" +``` + +注意,`--sql` 选项暂时仅仅可用于导出 csv 的场景。但是仍旧可以用 `--where` 来过滤要导出的行,使用以下指令,可以导出所有 `id < 100` 的记录: + +> **注意:** +> +> 这里需要在要导出的所有表上执行 `select * from where id < 100` 语句。如果部分表没有指定的字段,那么导出会失败。 + +{{< copyable "shell-regular" >}} + +```shell +./dumpling \ + -u root \ + -P 4000 \ + -H 127.0.0.1 \ + -o /tmp/test \ + --where "id < 100" +``` + +> **注意:** +> +> 目前 Dumpling 不支持仅导出用户指定的某几张表(即 `-T` 标志,见[这个 issue](https://github.com/pingcap/dumpling/issues/76))。如果你确实需要这些功能,可以先使用 [MyDumper](/backup-and-restore-using-mydumper-lightning.md)。 + +默认情况下,导出的文件会存储到 `./export-` 目录下。常用参数如下: + +- `-o` 用于选择存储导出文件的目录。 +- `-F` 选项用于指定单个文件的最大大小(和 MyDumper 不同,这里的单位是字节)。 +- `-r` 选项用于指定单个文件的最大记录数(或者说,数据库中的行数)。 + +利用以上参数可以让 Dumpling 的并行度更高。 + +还有一个尚未在上面展示出来的标志是 `--consistency `,这个标志控制导出数据“一致性保证”的方式。对于 TiDB 来说,默认情况下,会通过获取某个时间戳的快照来保证一致性(即 `--consistency snapshot`)。在使用 snapshot 来保证一致性的时候,可以使用 `--snapshot` 参数指定要备份的时间戳。还可以使用以下的一致性级别: + +- `flush`:使用 [`FLUSH TABLES WITH READ LOCK`](https://dev.mysql.com/doc/refman/8.0/en/flush.html#flush-tables-with-read-lock) 来保证一致性。 +- `snapshot`:获取指定时间戳的一致性快照并导出。 +- `lock`:为待导出的所有表上读锁。 +- `none`:不做任何一致性保证。 +- `auto`:对 MySQL 使用 `flush`,对 TiDB 使用 `snapshot`。 + +一切完成之后,你应该可以在 `/tmp/test` 看到导出的文件了: + +```shell +$ ls -lh /tmp/test | awk '{print $5 "\t" $9}' + +140B metadata +66B test-schema-create.sql +300B test.sbtest1-schema.sql +190K test.sbtest1.0.sql +300B test.sbtest2-schema.sql +190K test.sbtest2.0.sql +300B test.sbtest3-schema.sql +190K test.sbtest3.0.sql +``` + +另外,假如数据量非常大,可以提前调长 GC 时间,以避免因为导出过程中发生 GC 导致导出失败: + +{{< copyable "sql" >}} + +```sql +update mysql.tidb set VARIABLE_VALUE = '720h' where VARIABLE_NAME = 'tikv_gc_life_time'; +``` + +在操作结束之后,再将 GC 时间调回原样(默认是 `10m`): + +{{< copyable "sql" >}} + +```sql +update mysql.tidb set VARIABLE_VALUE = '10m' where VARIABLE_NAME = 'tikv_gc_life_time'; +``` + +最后,所有的这些导出数据都可以用 [Lightning](/tidb-lightning/tidb-lightning-tidb-backend.md) 导入回 TiDB。 From 52a58a3ddb751e1e87652edd0dbde39c5773044f Mon Sep 17 00:00:00 2001 From: yikeke Date: Fri, 5 Jun 2020 18:36:54 +0800 Subject: [PATCH 4/5] relocate --- ...backup-using-dumpling.md => export-or-backup-using-dumpling.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sql-statements/export-or-backup-using-dumpling.md => export-or-backup-using-dumpling.md (100%) diff --git a/sql-statements/export-or-backup-using-dumpling.md b/export-or-backup-using-dumpling.md similarity index 100% rename from sql-statements/export-or-backup-using-dumpling.md rename to export-or-backup-using-dumpling.md From a7ac9ef708d6dc1cc252b6983230cde500857899 Mon Sep 17 00:00:00 2001 From: Xuecheng Zhang Date: Fri, 5 Jun 2020 18:40:50 +0800 Subject: [PATCH 5/5] *: remove content about CDC --- export-or-backup-using-dumpling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/export-or-backup-using-dumpling.md b/export-or-backup-using-dumpling.md index 9b162aa576f3..e45ede8954df 100644 --- a/export-or-backup-using-dumpling.md +++ b/export-or-backup-using-dumpling.md @@ -8,7 +8,7 @@ category: how-to 本文档介绍如何使用数据导出工具 [Dumpling](https://github.com/pingcap/dumpling)。该工具可以把存储在 TiDB 中的数据导出为 SQL 或者 CSV 格式,可以用于完成逻辑上的全量备份或者导出。 -如果需要直接备份 SST 文件(KV 对)或者对延迟不敏感的增量备份,请参阅 [BR](/br/backup-and-restore-tool.md)。如果需要实时的增量备份,请参阅 [TiCDC](/ticdc/ticdc-overview.md)。 +如果需要直接备份 SST 文件(KV 对)或者对延迟不敏感的增量备份,请参阅 [BR](/br/backup-and-restore-tool.md)。 使用 Dumpling 时,需要在已经启动的集群上执行导出命令。本文假设在 `127.0.0.1:4000` 有一个 TiDB 实例,并且这个 TiDB 实例中有无密码的 root 用户。