TiDB从0到1系列
- TiDB-从0到1-体系结构
- TiDB-从0到1-分布式存储
- TiDB-从0到1-分布式事务
- TiDB-从0到1-MVCC
- TiDB-从0到1-部署篇
- TiDB-从0到1-配置篇
- TiDB-从0到1-集群扩缩容
一、BR工具
BR工具全称backup & restore,如同MySQL可以通过mysqldump和xtrabackup进行备份,TiDB也有dumpling和BR。
BR工具是直接通过PD元信息定位TiKV上的数据分布,从而以热备的方式备份TiKV中的sst文件来实现物理备份。
应用场景
- 常规一致性备份
- 大规模数据迁移并有时间限制
- 只能恢复到tidb中
- 备份输出文件
sst文件
backupmeta
backup.lock文件
当用BR工具恢复数据时,是无法通过ticdc或tidb binlog同步到下游,也很好理解,物理备份恢复是不产生binlog的。
二、BR备份
1、下载安装
wget https://download.pingcap.org/tidb-community-toolkit-v7.5.1-linux-amd64.tar.gz
------
tar -xvf tidb-community-toolkit-v7.5.1-linux-amd64.tar.gz
2、解压需要的工具包
与dumpling类似,br工具也都在tidb-community-toolkit工具包内
tar xvf br-v7.5.1-linux-amd64.tar.gz
3、创建备份目录
该目录可以在远程服务器,也可以在各个TiKV节点。之所以说各个TiKV节点,是因为BR工具会将各个TiKV节点的sst备份在各自所在的服务器相应位置上。
#各个TiKV节点都需创建
mkdir /tmp/backup
#该目录需要配置读写权限
chmod -R 777 /tmp/backup
4、进行全库备份
br backup full --pd "192.168.14.122:2379" --storage "local:///tmp/backup" --ratelimit 128 --log-file backupfull.log
(备份成功)
5、查看备份结果
6、其他功能
单库备份
br backup db --pd "192.168.14.122:2379" --db test --storage "local:///tmp/backup" --ratelimit 128 --log-file backupfull.log
单表备份
br backup table --pd "192.168.14.122:2379" --db test --table t1 --storage "local:///tmp/backup" --ratelimit 128 --log-file
多表备份
br backup full --pd "192.168.14.122:2379" --filter 'test*.t*' --storage "local:///tmp/backup" --ratelimit 128 --log-file backupfull.log
三、BR恢复
上一步我们已经有了全备,此时就将整个TiDB集群clean,然后通过全备进行恢复。
1、清空tidb-test集群数据
略
2、数据准备
因为是TiDB是分布式数据库,所以恢复时需要将各个TiKV上备份的sst文件同步到其他节点,保证每个TiKV节点上的备份目录中都有完整的备份
scp -r /tmp/backup root@'192.168.14.127':/tmp/backup
(在各个备份节点执行,保证备份数据统一化)
3、目录授权(各个节点的备份目录)
chmod -R 777 /tmp/backup
4、恢复数据
./br restore full --pd "192.168.14.122:2379" --storage "local:///tmp/backup" --log-file restore.log
(提示恢复完成)
5、验证
彩蛋
BR工具也支持增量备份
br backup full --pd "192.168.14.122:2379" --ratelimit 128 --storage "local:///tmp/backup/incr" --lastbackupts ${LAST_BAKUP_TS}
例如周一全备+6天增量备份。不过建议使用增量备份。
因为如果在第6天的时候数据异常需要恢复,但是中间任意一天的增量备份异常,都会导致整体恢复失败。
所以最优方案,每日全备保留3天。