一、BR的部署
方法一(tidb-community-toolkit)
1.下载包(https://docs.pingcap.com/zh/tidb/v6.1/download-ecosystem-tools),解压
获取:
wget https://download.pingcap.org/tidb-community-toolkit-v6.1.0-linux-amd64.tar.gz
解压tar -zxvf xxxxxxxx
2.配置环境变量
二、BR的使用
查看备份/恢复进度
show backups/restores
一)、全库备份恢复
1.全库备份
br backup full \
--pd "${PDIP}:2379" \
--backupts '2022-01-30 07:42:23' \
--storage "s3://backup-data/2022-01-30" \
--ratelimit 128 \
--log-file backupfull.log
或者
br backup full --pd "${PDIP}:2379" --backupts '2022-01-30 07:42:23' --storage "local:///tmp/backup" --ratelimit 128 --log-file backupfull.log
--storage s3是亚马逊外部存储,也可以本地存储
--ratelimit 128M/s 每个 TiKV 执行恢复任务的速度上限(单位 MiB/s)
--backupts '2022-01-30 07:42:23' 时间,默认此时
如果路径设置为本地,需要所有tikv节点都提前创建相同的备份路径,并且给予路径、备份片权限(tidb,或者777)
2.全库恢复
br restore full \
--pd "${PDIP}:2379" \
--storage "s3://backup-data/2022-01-30" \
--ratelimit 128 \
--log-file restorefull.log
或者
br restore full --pd "192.168.210.38:2379" --storage "local:///tmp/backup" --ratelimit 128 --log-file restorefull.log
需要把完整的备份片(所有节点的汇总),放在所有的节点上
二)、单库备份恢复
1.单库备份
br backup db \
--pd "${PDIP}:2379" \
--db test \
--storage "s3://backup-data/db-test/2022-01-30" \
--ratelimit 128 \
--log-file backupdb.log
或者
br backup db --pd "${PDIP}:2379" --db db_name --storage "s3://backup-data/db-test/2022-01-30" --ratelimit 128 --log-file backupdb.log
2.单库恢复
br restore db --pd "${PDIP}:2379" --db db_name --storage "s3://backup-data/db-test/2022-01-30" --ratelimit 128 --log-file backupdb.log
三)、单表备份恢复
1.单表备份
br backup table \
--pd "${PDIP}:2379" \
--db test \
--table usertable \
--storage "s3://backup-data/table-db-usertable/2022-01-30" \
--ratelimit 128 \
--log-file backuptable.log
或者
br backup table --pd "${PDIP}:2379" --db test --table usertable --storage "s3://backup-data/table-db-usertable/2022-01-30" --ratelimit 128 --log-file backuptable.log
2.单表恢复
br restore table --pd "${PDIP}:2379" --db test --table usertable --storage "s3://backup-data/table-db-usertable/2022-01-30" --ratelimit 128 --log-file backuptable.log
四)、多表备份恢复
1.多表备份
br backup full \
--pd "${PDIP}:2379" \
--filter 'db*.tbl*' \
--storage "s3://backup-data/table-filter/2022-01-30" \
--ratelimit 128 \
--log-file backupfull.log
或者
br backup full --pd "${PDIP}:2379" --filter 'db*.tbl*' --storage "s3://backup-data/table-filter/2022-01-30" --ratelimit 128 --log-file backupfull.log
2.多表恢复
br restore full --pd "${PDIP}:2379" --filter 'db*.tbl*' --storage "s3://backup-data/table-filter/2022-01-30" --ratelimit 128 --log-file backupfull.log
五)、增量备份恢复
1.增量备份
必须先有个全备,和上面一的备份一样。
增量放的位置不要和之前的备份放一起。
1.1全量备份
br backup full --pd "${PDIP}:2379" --backupts '2022-01-30 07:42:23' --storage "local:///tmp/backup" --ratelimit 128 --log-file backupfull.log
1.2增量备份
确认前一份的lastbackupts,位置也是前一份的位置(全备or增量)
LAST_BACKUP_TS=`br validate decode --field="end-version" -s local:///tmp/backup/incr | tail -n1`
增量备到哪
br backup full\
--pd ${PDIP}:2379 \
--ratelimit 128 \
--storage "local:///tmp/backup/incr" \
--lastbackupts ${LAST_BACKUP_TS}
2.增量恢复
1.1全量恢复
br restore full --pd "192.168.210.38:2379" --storage "local:///tmp/backup" --ratelimit 128 --log-file restorefull.log
1.2增量恢复1
br restore full --pd "192.168.210.38:2379" --storage "local:///tmp/backup/incr/1" --ratelimit 128 --log-file restorefull.log
1.2增量恢复2
br restore full --pd "192.168.210.38:2379" --storage "local:///tmp/backup/incr/2" --ratelimit 128 --log-file restorefull.log