Linux下使用mc对Minio的数据备份、迁移和还原

Linux
image-20250116230608130

一、安装Minio client

请先确保服务器上已安装Minio客户端

下载Linux客户端文件 https://min.io/docs/minio/linux/reference/minio-mc.html

64-bit Intel

curl https://dl.min.io/client/mc/release/linux-amd64/mc \
  --create-dirs \
  -o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

64-bit PPC

curl https://dl.min.io/client/mc/release/linux-ppc64le/mc \
  --create-dirs \
  -o ~/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

ARM64

curl https://dl.min.io/client/mc/release/linux-arm64/mc \
  --create-dirs \
  -o ~/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

二、服务器说明

假定现在有两台Linux环境上部署的Minio服务器,分别是旧服务器A和新服务器B,所有操作都在新服务器B上进行。

三、为Minio服务器设置别名

在新服务器B上为服务器A和B分别设置别名

# 切换到客户端程序目录(即mc文件所在目录)
cd /home/minio/client
# 在新服务器B设置服务器A的别名
./mc alias set minio_data_A http://11.11.11.110:9000 yourusername youruserpassword
# 在新服务器B设置服务器B的别名
./mc alias set minio_data_B http://22.22.22.220:9000 yourusername youruserpassword
# 查看已设置的Minio服务器的别名,看到上面设置的两个别名在列出的列表中即OK
./mc alias list

说明:

(a)minio_data_A和minio_data_B就是设置的别名;
(b)http://11.11.11.10:9000和http://22.22.22.20:9000是服务器地址
(c)yourusername表示服务器上Minio服务的用户账号;
(d)youruserpassword表示服务器上Minio服务的用户密码。

四、从服务器A迁移数据到服务器B

# 切换到客户端程序目录(即mc文件所在目录)
cd /home/minio/client
# 将服务器A上名为“bucket-demo”的桶的数据迁移到服务器B的“bucket-demo”桶中
./mc cp --recursive minio_data_A/bucket-demo/ minio_data_B/bucket-demo/
# 将服务器A上所有数据迁移到服务器B中
./mc cp --recursive minio_data_A minio_data_B

注意:

一次迁移某个服务器所有数据(不指定桶名称)时,则要求新服务器B上必须存在迁移服务器A上所有的桶,否则会提示找不到对应桶而无法迁移数据。

五、备份服务器B的数据

# 切换到客户端程序目录(即mc文件所在目录)
cd /home/minio/client
# 将服务器B上名为bucket-demo的桶的数据备份到/home/minio/backup/bucket-demo目录
./mc cp --recursive minio_data_B/bucket-demo/ /home/minio/backup/bucket-demo
# 将服务器B上所有数据备份到/home/minio/backup/目录
./mc cp --recursive minio_data_B /home/minio/backup

六、在Minio服务器上根据备份文件恢复数据

# 切换到客户端程序目录(即mc文件所在目录)
cd /home/minio/client
# 将/home/minio/backup/目录下的备份数据恢复到服务器B,注意备份文件目录路径需以'/'结尾
./mc cp --recursive /home/minio/backup/ minio_data_B
# 将某个桶(比如:bucket-demo)的备份数据恢复到服务器B的指定桶(比如:bucket-demo2)中
./mc cp --recursive /home/minio/backup/bucket-demo/ minio_data_B/bucket-demo2

注意:

(a)可以将某个服务器的备份数据恢复到任意服务器(而不仅仅是原服务器)中;
(b)可以将某个服务器的某个桶的备份数据恢复到任意服务器的任意一个桶(桶和服务器都可以不同)中;
(c)迁移、备份和恢复数据时,若提示某个目录不存在,按提示路径创建即可。