课程名称: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之前
- 比如10点全量备份,11点增量备份,则10-11之间不能GC
- 比如10点全量备份,11点增量备份,则10-11之间不能GC
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保存的
- 需要确认TikV有权限访问备份目录
- BR与Io错误相关的
- 一般是TiKV写盘时遇到的系统调用错误,检查备份目录和文件系统的挂载模式,可以尝试到切换为另一个目录或另一个盘
- 已知,备份到Samba挂载的网络磁盘,遇到过 Code:22(invalid Argument) error