使用 Dumpling/TiDB Lightning 备份与恢复
本文档将详细介绍如何使用 Dumpling/TiDB Lightning 对 TiDB 进行全量备份与恢复。增量备份和同步可使用 TiDB Binlog。
这里假定 TiDB 服务器信息如下:
- :从 TiDB 导出数据
- TiDB Lightning:导入数据到 TiDB
为了快速地备份恢复数据(特别是数据量巨大的库),可以参考以下建议:
- 如果导出的表中有些表的行数非常多,可以通过设置选项
-r
来开启表内并发。
使用 dumpling
从 TiDB 备份数据的命令如下:
上述命令中,用 -T test.t1 -T test.t2
表明只导出 test
.,test
.t2
两张表。更多导出数据筛选方式可以参考。
-t 32
表明使用 32 个线程来导出数据。-F 256m
是将实际的表切分成一定大小的 chunk,这里的 chunk 大小为 256MB。
Could not read data from testSchema.testTable: GC life time is shorter than transaction duration, transaction starts at 2019-08-05 21:10:01.451 +0800 CST, GC safe point is 2019-08-05 21:14:53.801 +0800 CST
手动调整 GC 时间的步骤如下:
执行 命令前,查询 TiDB 集群的 GC 值并在 MySQL 客户端执行下列语句将其调整为合适的值:
+-------------------+-------+
| Variable_name | Value |
| tidb_gc_life_time | 10m0s |
+-------------------+-------+
1 row in set (0.03 sec)
执行 命令后,将 TiDB 集群的 GC 值恢复到第 1 步中的初始值:
SET GLOBAL tidb_gc_life_time = '10m';
使用 TiDB Lightning 将之前导出的数据导入到 TiDB,完成恢复操作。具体的使用方法见