TIDB 全量 备份:
#! /bin/bash
设置MinIO的管理员账号和密码
export MINIO_ROOT_USER=myminio_admin
export MINIO_ROOT_PASSWORD=mJ7gm4SXFJF28UoD6T9a4W
设置AWS访问密钥
export AWS_ACCESS_KEY_ID=myminio_admin
export AWS_SECRET_ACCESS_KEY=mJ7gm4SXFJF28UoD6T9a4W
添加MinIO主机别名
mc config host add tidb-test http://192.168.136.101:9000 myminio_admin mJ7gm4SXFJF28UoD6T9a4W
mc config host ls tidb_test
创建存储桶
mc mb /tidb/backup/bucket
生成唯一的存储桶名称
timestamp=$(date +“%Y%m%d%H%M%S”)
bucket_name=“backup-${timestamp}”
执行全量备份
/usr/bin/br backup full --ratelimit 100 --pd “192.168.136.101:2379” --storage “s3://bucket/${bucket_name}”
–send-credentials-to-tikv=true --s3.endpoint “http://192.168.136.101:9000” --log-file “/tidb/backup/backup_${timestamp}.log”
增量 备份:
#! /bin/bash
export MINIO_ROOT_USER=myminio_admin
export MINIO_ROOT_PASSWORD=mJ7gm4SXFJF28UoD6T9a4W
export AWS_ACCESS_KEY_ID=myminio_admin
export AWS_SECRET_ACCESS_KEY=mJ7gm4SXFJF28UoD6T9a4W
添加MinIO主机别名
mc config host add tidb-test http://192.168.136.101:9000 myminio_admin mJ7gm4SXFJF28UoD6T9a4W
mc config host ls tidb_test
创建存储桶
mc mb tidb/backup/bucket
生成唯一的存储桶名称
timestamp=$(date +“%Y%m%d%H%M%S”)
bucket_name=“backup-${timestamp}”
获取上次全量备份的时间戳
last_backup=$(mc cat /tidb/backup/bucket/last_backup)
判断是否需要执行全量备份
if [ -z “$last_backup” ]; then
echo “$timestamp” | mc pipe /tidb/backup/bucket/last_backup
# 执行全量备份
/usr/bin/br backup full --ratelimit 100 --pd “192.168.136.101:2379” --storage “s3://bucket/${bucket_name}”
–send-credentials-to-tikv=true --s3.endpoint “http://192.168.136.101:9000” --log-file “/tidb/backup/backup_${timestamp}.log”
else
# 执行增量备份
/usr/bin/br backup incremental --ratelimit 100 --pd “192.168.136.101:2379” --storage “s3://bucket/${bucket_name}”
–send-credentials-to-tikv=true --s3.endpoint “http://192.168.136.101:9000” --last-backup “$last_backup” --log-file “/tidb/backup/backup_${timestamp}.log”
fi
更新上次全量备份的时间戳
echo “$timestamp” | mc pipe /tidb/backup/bucket/last_backup