课程名称:301 + 3.4 Data Backup and Restore (BR)(备份恢复工具 BR)
学习时长:20min
课程收获:掌握如何使用 BR 快速对 TiDB 集群进行备份还原
课程内容:
使用 BR 进行备份与恢复
Backup & Restore(以下简称 BR)是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复。相比 dumpling
和 mydumper
,BR 更适合大数据量的场景。本文档介绍了 BR 的使用限制、工作原理、命令行描述、备份恢复用例以及最佳实践。
使用限制
- BR 只支持 TiDB v3.1 及以上版本。
- BR 支持在不同拓扑的集群上执行恢复,但恢复期间对在线业务影响很大,建议低峰期或者限速 (
rate-limit
) 执行恢复。 - BR 备份最好串行执行,否则不同备份任务之间会相互影响。
原理
- 它首先与 PD 交互,获取集群信息。
- 再根据 PD 返回的 TiKV 信息,将备份或恢复操作命令下发到各个 TiKV 节点。
- TiKV 收到命令后,遍历各个 region 的 leader,根据 TSO 生成 SST 备份文件,存放于备份目录下。
全量备份
- 备份将自动过滤系统库。
- 还原需要访问所有 SST 文件,建议在备份时从各个 TiKV 节点通过网络直接备份到同一块共享盘中。
- 如果 BR 的版本低于 v4.0.3,而且备份时间可能超过设定的
tikv_gc_life_time
(默认10m0s
,即表示 10 分钟),需要手动将该参数调大。 自 v4.0.3 起 BR 已经支持自适应 GC,无需手动调整。
mysql -h${TiDBIP} -P4000 -u${TIDB_USER} ${password_str} -Nse "update mysql.tidb set variable_value='720h' where variable_name='tikv_gc_life_time'";
- 常用命令及参数:
更多信息请参阅备份恢复设计方案
增量备份:
- 增量备份需要与前一次全量备份在不同的路径下
- GC safepoint 必须在 lastbackupts 之前
- 增备命令:
br backup incr --pd ${PDIP}:2379 -s local:///home/tidb/backupdata/incr --lastbackupts ${LAST_BACKUP_TS}
其中 LAST_BACKUP_TS=br validate decode --field="end-version" -s local:///home/tidb/backupdata
此备份命令意为:备份 lastbackupts 到 current PD timestamp 之间的数据