写点什么

通过 docker 安装单机版 minio 简单测试 br 通过 s3 存储备份恢复数据

  • 2023-08-04
    北京
  • 本文字数:2697 字

    阅读完需:约 9 分钟

作者: 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


http://10.10.10.15: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


http://10.10.10.15:9000


 此处的用户名密码为启动服务时,设置的用户名密码:admin  admin123:



 综上,minio 部署成功。


python 测试


pip install minio


from minio import Miniofrom minio.error import S3Errortry:    client = Minio('10.10.10.15:9000',access_key='admin',secret_key='admin123',secure=False)    found = client.bucket_exists("dong")except S3Error as e:    print("error:", e)print(found)# 返回布尔值 True or False
# file_path = r'E:\desktop\system.sql'## client.fput_object("dong", "system.sql", file_path)# # 文件不存在会报错FileNotFoundError
file_path = r'E:\desktop\1.sql'data = client.get_object("dong", "system.sql")with open(file_path,"wb") as fp: for d in data.stream(1024): fp.write(d)
client.fget_object("buk2", "1.jpg", "/opt/static/new.jpg")file_name='1.txt'client.remove_object("buk2", file_name)client.remove_objects("buk2", ["baidu.html", "taobao.html"])
复制代码


客户端测试
复制代码


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


发布于: 刚刚阅读数: 3
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
通过docker安装单机版minio简单测试br通过s3存储备份恢复数据_备份 & 恢复_TiDB 社区干货传送门_InfoQ写作社区