【TiDB 4.0 PCTA 学习笔记】-3.4 Data Backup and Restore (BR)(备份恢复工具 BR)@2班+邱育珍

课程名称:3.4 Data Backup and Restore (BR)(备份恢复工具 BR)

学习时长:25min

课程收获:

TiDB 集群 BR 快速备份/还原的原理和操作

课程内容:

1.BR简介

Backup & Restore(以下简称BR)是TiDB 分布式备份恢复的命令行工具,用于对TiDB 集群进行数据备份和恢复。相比dumpling 和mydumper/loader,BR 更适合大数据量的场景

2.BR备份

  • 使用限制
    • BR 只支持TiDB v3.1 及以上版本。
    • BR 支持在不同拓扑的集群上执行恢复,但恢复期间对在线业务影响很大,建议低峰期或者限速
    (rate-limit) 执行恢复。
    • BR 备份最好串行执行,否则不同备份任务之间会相互影响。
    • BR 恢复到TiCDC / Drainer 的上游集群时,恢复数据无法由TiCDC / Drainer 同步到下游。
    • BR 只支持在new_collations_enabled_on_first_bootstrap 开关值相同的集群之间进行操作。这是因为
    BR 仅备份KV 数据。如果备份集群和恢复集群采用不同的排序规则,数据校验会不通过。所以恢复集群时,
    你需要确保select VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME=‘new_collation_enabled
    ,! ‘; 语句的开关值查询结果与备份时的查询结果相一致,才可以进行恢复。
    – 对于v3.1 集群,TiDB 尚未支持new collation,因此可以认为new collation 未打开
    – 对于v4.0 集群, 请通过SELECT VARIABLE_VALUE FROM mysql.tidb WHERE VARIABLE_NAME=’
    ,! new_collation_enabled’; 查看new collation 是否打开。
    例如,数据备份在v3.1 集群。如果恢复到v4.0 集群中,查询恢复集群的new_collation_enabled 的值为
    true,则说明创建恢复集群时打开了new collation 支持的开关。此时恢复数据,可能会出错。

  • 备份工作原理
    BR 是分布式备份恢复的工具,它将备份或恢复操作命令下发到各个TiKV 节点。TiKV 收到命令后执行相应的备份或恢复操作。在一次备份或恢复中,各个TiKV 节点都会有一个对应的备份路径,TiKV 备份时产生的备份文件将会保存在该路径下,恢复时也会从该路径读取相应的备份文件。



  • 建议备份存放在共享网络存储上

  • 为了更快的备份,可以在每个TiKV节点上插入第二块盘备份,备份完再将数据迁移到总备份(不推荐)

  • 备份前修改GC time大于备份时间;若备份期间发生GC,备份出问题
    自v4.0.3 起BR 已经支持自适应GC,无需手动调整tikv_gc_life_time.


    增量备份
    如果想要备份增量,只需要在备份的时候指定上一次的备份时间戳–lastbackupts 即可。
    注意增量备份有以下限制:

    • 增量备份需要与前一次全量备份在不同的路径下
    • GC safepoint 必须在lastbackupts 之前

3.BR恢复

使用br restore 命令来恢复备份数据。可选择添加full、db 或table 子命令来指定恢复操作的范围:全部集群数据、某个数据库或某张数据表。

恢复全部备份数据
要将全部备份数据恢复到集群中来,可使用br restore full 命令。该命令的使用帮助可以通过br restore full -h 或br restore full --help 来获取。
用例:将/tmp/backup 路径中的全部备份数据恢复到集群中。

  • 如果使用本地存储,需要在恢复之前把所有备份的SST文件全量恢复到每个TiKV节点上
  • 每个TiKV节点最终只读取SST文件,这些节点对SST有完全访问权,原因有两点:一是数据在多个对等节点中复制,当读取SST文件时,它存在与所有对等节点中,这与备份数据是不同的,备份数据只需要从每个节点把数据读出来 ;二是数据恢复过程中每个节点分布的位置是随机的,无法预知哪个节点读取SST文件。
  • 恢复命令

增量恢复
增量恢复的方法和使用BR 进行全量恢复的方法并无差别。需要注意,恢复增量数据的时候,需要保证备份时指定的last backup ts 之前备份的数据已经全部恢复到目标集群。

4.常见问题排查


image

5.最佳实践

• 推荐在-s 指定的备份路径上挂载一个共享存储,例如NFS。这样能方便收集和管理备份文件。
• 在使用共享存储时,推荐使用高吞吐的存储硬件,因为存储的吞吐会限制备份或恢复的速度。
• 推荐在业务低峰时执行备份操作,这样能最大程度地减少对业务的影响。

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料