通过 docker 安装单机版 minio 简单测试 br 通过 s3 存储备份恢复数据
作者: tidb 菜鸟一只原文来源:https://tidb.net/blog/61d4adc0
一、首先通过 docker 安装 minio
以下是最新版,有坑,建议装 2021 版
1. 拉取 docker 镜像
docker pull minio/minio
2. 设置 minio 用到的文件路径
mkdir minio
进入 minio 目录:
cd minio
mkdir data
mkdir config
3. 启动服务:注意,这里要单独设置 console 的端口,不然会报错,且无法访问
这种安装方式 MinIO 自定义 Access 和 Secret 密钥要覆盖 MinIO 的自动生成的密钥
docker run –name minio \
-p 9000:9000 \
-p 9999:9999 \
-d –restart=always \
-e “MINIO_ROOT_USER=admin” \
-e “MINIO_ROOT_PASSWORD=admin123” \
-v /root/minio/data:/data \
-v /root/minio/config:/root/.minio \
minio/minio server /data \
--console-address ‘0.0.0.0:9999’
4. 防火墙设置,需要为 minio 开放两个端口,一个 9000 端口,一个静态端口,此处为 9999
firewall-cmd –zone=public –add-port=9000/tcp –permanent
firewall-cmd –zone=public –add-port=9999/tcp –permanent
firewall-cmd –reload
5. 登录客户端(浏览器):注意—> 此处的端口,是你设置的 console 的端口:9999
此处的用户名密码为启动服务时,设置的用户名密码:admin admin123:
综上,minio 部署成功。
但是新版比较难用,换个老版本的。
1. 拉取 docker 镜像 —2021 年 6 月 17 日版
docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z
2. 设置 minio 用到的文件路径
mkdir minio
进入 minio 目录:
cd minio
mkdir data
mkdir config
3. 启动服务:注意,这里要单独设置 console 的端口,不然会报错,且无法访问
这种安装方式 MinIO 自定义 Access 和 Secret 密钥要覆盖 MinIO 的自动生成的密钥
docker run –name minio2021 \
-p 9000:9000 \
-d –restart=always \
-e “MINIO_ACCESS_KEY=admin” \
-e “MINIO_SECRET_KEY=admin123” \
-v /root/minio/data:/data \
-v /root/minio/config:/root/.minio \
minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
4. 防火墙设置,需要为 minio 开放 9000 端口
firewall-cmd –zone=public –add-port=9000/tcp –permanent
firewall-cmd –reload
5. 登录客户端(浏览器):注意—> 此处的端口,是你设置的 console 的端口:9000
此处的用户名密码为启动服务时,设置的用户名密码:admin admin123:
综上,minio 部署成功。
python 测试
pip install minio
10.10.10.16 安装客户端
```
下载 mc 客户端
cd /data
wget https://dl.minio.io/client/mc/release/linux-amd64/mc
chmod +x mc
cp mc /usr/bin
在 mc 客户端添加主机信息
mc config host add myminio http://10.10.10.15:9000 admin admin123
查看 mc 客户端已经添加的主机信息
mc config host ls myminio
在 minio 中创建名为 tidbbackup 的 buket
mc mb myminio/tidbbackup
上传文件到 bucket 中
echo ‘test_upload’ > minio_test_upload.log
mc cp minio_test_upload.log myminio/tidbbackup
查看 buket 中的文件
mc ls myminio/tidbbackup
下载 buket 中的文件
mc cp myminio/tidbbackup/minio_test_upload.log /tmp/
cat /tmp/minio_test_upload.log
删除 buket 中的文件
mc rm myminio/tidbbackup/minio_test_upload.log
在 minio 中查看创建的 buket
mc ls myminio
mc ls myminio/tidbbackup
级联删除目录
mc rm myminio/tidbbackup/bak_20210922/ –recursive –force
递归强制删除 8 天之前的文件,单位支持天,小时,分钟等
mc rm myminio/tidbbackup/fullbackup/ –recursive –force –older-than 8d
```
二、通过 minio 来测试 tidb 的 br 备份到 s3 存储
1. 首先是备份到本机,备份时需要每个节点都创建本地目录,恢复时需要将所有文件拷贝到每个节点的本地目录,比较麻烦
wget https://download.pingcap.org/tidb-toolkit-v5.4.3-linux-amd64.tar.gz
tar -xvzf tidb-toolkit-v5.4.3-linux-amd64.tar.gz
/home/tidb/tidb-toolkit-v5.4.3-linux-amd64/bin
mkdir /tmp/backup
chmod 777 /tmp/backup
每个 tikv 节点都要创建
备份表
./br backup table –pd “10.10.10.16:2379” –db “test” –table “emp” –storage “local:///tmp/backup” –ratelimit 120 –log-file backup_emp.log
备份库
mkdir /tmp/backup1
chmod 777 /tmp/backup1
./br backup db –pd “10.10.10.16:2379” –db “test” –storage “local:///tmp/backup1” –ratelimit 120 –log-file backup_test.log
drop table emp
恢复表
./br restore table –pd “10.10.10.16:2379” –db “test” –table “emp” –storage “local:///tmp/backup” –log-file restore_emp.log
drop database test
恢复库
./br restore db –pd “10.10.10.16:2379” –db “test” –storage “local:///tmp/backup1” –log-file restore_test.log
2. 通过 minio 来备份及恢复
export AWS_ACCESS_KEY_ID=admin
export AWS_SECRET_ACCESS_KEY=admin123
./br backup table –db test –table t1 –ratelimit 60 –pd “10.10.10.14:2379” –storage “s3://tidbbackup/bak_20230725” –send-credentials-to-tikv=true –s3.endpoint “http://10.10.10.15:9000” –log-file /tmp/backup.log
truncate table test.t1;
export AWS_ACCESS_KEY_ID=admin
export AWS_SECRET_ACCESS_KEY=admin123
./br restore table –db test –table t1 –ratelimit 60 –pd “10.10.10.14:2379” –storage “s3://tidbbackup/bak_20230725” –send-credentials-to-tikv=true –s3.endpoint “http://10.10.10.15:9000” –log-file /tmp/restore.log
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/25f6e7026f60bae4febff218e】。文章转载请联系作者。
评论