Tidb 使用minio 进行br备份数据库的过程

发布时间 2023-08-10 19:46:01作者: 济南小老虎

Tidb 使用minio 进行br备份数据库的过程


背景

br 备份恢复时一般需要共享存储.
前段时间一直使用的是nfs 进行共享文件备份. 
这样需要所有的机器在 相同的目录下面挂载相同的nfs.
并且是需要有读写权限. 

所以nfs 就比较复杂了. 而且需要有宿主机的权限比较难以实现.
使用s3协议. 或者是minio的话 应该会简单很多. 
直接可以使用http的协议进行文件的备份与恢复.

minio的搭建

这一块比较简单, 不需要多次说明了.
唯一需要说明的是 minio 必须有一个bucket 才可以执行备份与恢复. 

可以使用命令方式进行创建. 
下载一个 mc 的工具 然后进行如下处理:
mc config host add minio http://192.168.255.65:9000 miniouser miniopassword
创建一个 bucket
mc mb minio/tidb20230810

使用s3协议进行备份

# 安装
tiup install br:v6.5.3
# 一般情况下的目录
cd /root/.tiup/components/br/v6.5.3/
# 执行命令一般为:
export AWS_ACCESS_KEY_ID=miniouser
export AWS_SECRET_ACCESS_KEY=miniopasswd
# 需要注意 这个不是 minio的 是AWS 开头的. 与minio的环境变量不一致. 
# 备份
time br backup full --pd "192.168.255.xx:2379" --storage "s3://tidb20230810" --s3.endpoint "http://192.168.255.xx:9000"  --send-credentials-to-tikv=true  --log-file backupfull.log
# 恢复
time br restore full --pd "192.168.255.xx:2379" --storage "s3://tidb20230810" --s3.endpoint "http://192.168.255.xx:9000"  --send-credentials-to-tikv=true  --log-file restorefull.log

# 需要注意 s3 后面的 bucket 必须优先创建,不然那会报错. 
Error: failed to get region of bucket tidb20230810: NotFound: Not Found
        status code: 404, request id: 177A0092AAB86045, 

# 注意一个bucket 仅可以备份一次, 多次备份会报错:
Error: backup meta file exists in s3://tidb20230810//backupmeta, there may be some backup files in the path already, please specify a correct backup directory!: [BR:Common:ErrInvalidArgument]invalid argument

备份的效果

Full Backup <------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 100.00%
Checksum <---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 100.00%
[2023/08/10 19:15:44.641 +08:00] [INFO] [collector.go:73] ["Full Backup success summary"] [total-ranges=5781] [ranges-succeed=5781] [ranges-failed=0] [backup-checksum=23.204545089s] [backup-fast-checksum=1.587649818s] [backup-total-ranges=7170] [total-take=2m2.571503392s] [total-kv=146164259] [total-kv-size=135.8GB] [average-speed=1.108GB/s] [backup-data-size(after-compressed)=7.876GB] [Size=7875854527] [BackupTS=443460098398617601]

real    2m2.628s
user    0m26.261s
sys     0m4.925s