【TiDB 4.0 PCTA 学习笔记】- 301+3.4 Data Backup and Restore (BR)(备份恢复工具 BR)@ 1班+付志强

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

学习时长:40分钟

课程收获:了解BR的原理和使用。

课程内容:

讲师:王军

1、 BR备份方法
BR的备份限制
BR仅支持v3.1及之后的版本
BR仅支持在全新的集群上进行恢复操作
BR备份最好是串行执行,因为不同的备份任务会有相互影响。
BR备份的原理
BR会发生备份或恢复命令给每个TiKV节点
BR会与PD交互,获取集群的信息,备份或还原的执行是通过PD向TiDB进行的。
PD会向BR返回tso,备份的时间,tikv的信息等。
根据从PD获取的集群信息,BR向tikv发送备份请求,TiKV节点收到请求后,会遍历节点上的region leader信息,将对应版本号的数据生成一个SST文件存放在备份目录下完成备份。
BR备份自动过滤系统库。
由于BR还原需要集群中的所有节点都要访问到备份文件,建议在备份时将备份文件备份到公共的目录下。
手动修改GC时间
Update mysql.tidb set variable_value=’30m’ where variable_name’tikv_gc_life_time’;

常见的参数
限速参数 --ratelimit uint
修改日志基本 -L,–log-level string
指定备份目录 -s,–storge string
指定备份时间 --backupts string
数据完整性校验 --checksum 默认为true

BR增量备份
增量备份是基于最近一次的全量备份
增量备份与前一次全量备份位于不同的路径下
Gc safepoint必须在lastbackupTS之前

2、 BR还原
BR还原原理
要求每个tikv节点都可以访问全量的备份文件
BR发送还原命令,首先对备份路径下的备份元数据文件进行解析,返回库表信息并启动一个TiDB实例,在新集群中创建库和表,将解析的SST文件根据表进行聚合。根据SST文件生成的key region进行预切分成一个个的region,使每个region对应一个SST文件,再去遍历恢复的每张表,以及这张表对应的SST文件,然后找到该sst文件对应的region,发送下载文件的请求到对应的tikv节点上。并在下载成功之后进行还原。

BR还原注意事项
如使用本地存储,在恢复之前,把所有备份的SST文件拷贝到每个tikv节点上
即使每个tikv节点只读取部分SST文件,也需要对所有备份SST文件有完全访问权限,原因如下:
数据在多个对的节点之间复制,当读取sst文件时,数据存在于多个对的文件中,所以,不同于备份数据,备份数据只是每个节点抽取数据即可,在数据恢复过程中,每个对的数据是随机分布的,所以无法预知每个节点读取那些文件,这就是为什么还原数据需要访问全量备份SST文件的原因。

增量恢复
增量恢复与全量恢复的方式基本一致
增量恢复时,最后备份TS之前的备份数据已全部还原进集群中。

3、 常见问题
备份日志中的’key locked Error’
在备份过程中,遇到key被锁住,日志中就会打印这错误信息。BR目前的操作是会尝试清除这个锁。
日志保报‘kind:AlreadyExists’的错误
备份的目标目录是不干净的空间,或者进行备份目录更换,或者在所有节点上删除备份目录下的文件
恢复过程中,日志中报‘download sst failed’
因为恢复过程中,所有节点都需要有访问全部备份SST文件的权限,造成这个错误的原因可能是节点对sst文件权限不足。
报权限错误
确认tikv是否有访问备份目录的权限,备份时检查是否有写入权限,恢复时检查是否有读取权限。
报IO错误
基本上是tikv写盘时,遇到系统调用错误。

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

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

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