【TiDB 4.0 PCTA 学习笔记】3.4 Data Backup and Restore (BR)(备份恢复工具 BR)@3班+ 何潭@小米

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

学习时长:

30min

课程内容:

BR备份限制

  • 只支持TIDB3.1及以上版本
  • 只支持在全新集群上恢复
  • 最好串行执行,不同的备份任务可能会有影响

BR备份原理

  • BR下发备份命令到各个TiKV
  • 各个TiKV会遍历region leader的信息,生成对应的SST文件,存放在备份目录下
  • 自动过滤系统库
  • 由于BR恢复需要新集群能访问全量备份文件,建议备份存放在共享网络存储上
  • 为了更快的备份,可以在每个TiKV节点上插入第二块盘备份,备份完再将数据迁移到总备份(可行,并不推荐)
  • 备份前,需要修改GC time为大于备份时间
  • 常用命令
  • 常用参数

增量备份

  • 增量备份是基于上一次全量备份
    • 增量备份和全量备份不能再同一目录下
    • GC SafePoint必须在LastBackupTS之前

BR还原

  • 每个TiKV都需要可以访问备份文件
  • BR发送备份命令
    • 访问备份目录下meta文件并解析
    • 返回库表信息
    • 内部启动一个TiDB实例
    • 在新集群中创建库和表
    • 解析出来的SST文件根据库表做聚合
    • 切分成一个一个的region,使每个region对应一个SST文件
    • 遍历每一张表及对应的SST文件,找到对应的region
    • 发送下载命令到对应的TiKV节点上
  • 若使用本地存储,则在恢复前,需要把全量的备份文件卡拷贝到每个TiKV节点
  • 只有一点需要注意:增量恢复只有在last backup ts指定的全量备份恢复完后,才能进行恢复

常见问题

  • 日志出现"key locked Error"
    • 形式:log - [“backup occur kv error”][error="{“KvError”:{“locked”:
    • BR会尝试清理lock,少量的这类errors并不会影响备份的正确性
  • 日志出现:log - Error: msg:“lo(Custom { kind: AlreadyExists, error:”[5_5359_42_123_default.sst] is already exists in /dir/backup_local/" }
    • 改变不了备份目录
  • 恢复时,报 error : could not read local://…download sst failed
    • 每个TiKV节点都要能访问全量数据文件
  • 权限错误,及时使用root也不能修复
    • 需要确认TikV有权限访问备份目录
      • 备份,需要保证有写权限
      • 恢复,需要保证有读权限
    • 请记住,备份文件是由TiKV保存的
  • BR与Io错误相关的
    • 一般是TiKV写盘时遇到的系统调用错误,检查备份目录和文件系统的挂载模式,可以尝试到切换为另一个目录或另一个盘
    • 已知,备份到Samba挂载的网络磁盘,遇到过 Code:22(invalid Argument) error

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。