黄东旭解析 TiDB 的核心优势
660
2024-03-11
一、首先通过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 Minio from minio.error import S3Error try: 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 = rE:\desktop\system.sql # # client.fput_object("dong", "system.sql", file_path) # # 文件不存在会报错FileNotFoundError file_path = rE:\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
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。