课程名称:课程版本(301)+ 3.4 Data Backup and Restore (BR)(备份恢复工具 BR)
学习时长:18分钟
课程收获:学习并掌握BR完全备份,库备份以及表级备份的方法
课程内容:
1.BR备份的限制
1)只支持tidb3.1及以上版本
2)只支持在全新的集群上进行恢复操作
3)BR备份最好顺序执行,否则不同的备份任务会相互影响
2.BR的备份原理
1)BR向每个tikv节点发送备份或恢复操作命令
2)收到命令后,tikv执行相应的备份或恢复操作,并将数据备份到相应的备份目录
3)备份自动过滤系统库
4)由于br恢复要求新的集群具有对备份文件的完全访问权,因此建议备份到一个公共网络驱动器
5)为了实现更快的备份,可以在每个tikv节点上安装第二块磁盘作为备份,或者在备份完成后转移到备份磁盘
6)在备份之前,需要修改GC时间,使其大于备份时间,update mysql.tidb set variable_value=‘30m’ where variable_name=‘tick_gc_life_time’
自 v4.0.3 起 BR 已经支持自适应 GC,无需手动调整 tikv_gc_life_time.
7)支持表、库、全量备份,备份多库多表可以用逗号隔开
br backup full --pd “${PDIP}:2379” -s “local:///tmp/backup”
br backup db --pd “${PDIP}:2379” --db test --storage “local:///tmp/backup” --ratelimit 120 --log-file backuptable.log
br backup table --pd “${PDIP}:2379” --db test --table usertable --storage “local:///tmp/backup” --ratelimit 120 --log-file backuptable.log
–ratelimit 进行限速 单位MB/s
-L 日志级别
–backupts string 备份开始时间
–checksum 备份完整性校验 默认是打开的
3.BR增量备份操作
1)增量备份需要与前一次全量备份在不同的路径下
2)GC safepoint 必须在 lastbackupts 之前
br backup full --pd ${PDIP}:2379 -s local:///home/tidb/backupdata/incr --lastbackupts ${LAST_BACKUP_TS}、
3)Validate 获取上一次备份的时间戳
LAST_BACKUP_TS= br validate decode --field="end-version" -s local:///home/tidb/backupdata
4.BR还原操作
每个tikv节点需要可以访问全量备份的文件
1)全量恢复
br restore full --pd “${PDIP}:2379” --storage “local:///tmp/backup” --ratelimit 128 --log-file restorefull.log
2)单库恢复
br restore db --pd “${PDIP}:2379” --db “test” --storage “local:///tmp/backup”
–log-file restorefull.log
3)单表恢复
br restore table --pd “${PDIP}:2379” --db “test” --table “usertable” --storage “local:///tmp/backup” --log-file restorefull.log
5.备份异常处理
1)Key locked error:少量报错 不影响数据
2)备份的目标 目录存在数据—清理数据或者更改目录
3)恢复报错 copy sst失败 检查权限问题
4)遇到权限问题 root也不行 需要确认tikv节点是否有访问权限
5)IO错误 基本是tikv写盘系统调用错误 换盘或者格式问题
学习过程中参考的其他资料
- [ 使用 BR 进行备份与恢复] https://docs.pingcap.com/zh/tidb/stable/use-br-command-line-tool
- [ BR 备份与恢复场景示例] https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-use-cases