目录
从A服务器,迁移致B服务器,前提,需要两边的 Bucket
相同,如果B服务器没有A服务器里的 Bucket
需要先创建
安装
MinIO Linux 安装使用 & SpringBoot整合MinIO
下载
查看系统架构
Linux
bash
uname -m
# 输出结果可能是 x86_64(表示AMD64架构)或 aarch64(表示ARM64架构)
Windows
bash
echo %PROCESSOR_ARCHITECTURE%
http://dl.minio.org.cn/client/mc/release/
下载对应的包
http://dl.minio.org.cn/client/mc/release/linux-amd64/mc
安装Minio客户端
# 将文件移到 /usr/local/bin/ 下
[root@localhost ~]# mv mc /usr/local/bin/
# 进行授权
[root@localhost ~]# chmod +x /usr/local/bin/mc
[root@localhost ~]# ll /usr/local/bin
total 130160
-rwxr-xr-x 1 root root 29212824 Mar 18 10:47 mc*
-rwxr-xr-x 1 root root 104054936 Nov 22 16:44 minio*
备份数据
两台服务器,不能相互访问,采用备份还原的方式进行迁移
bash
# 创建备份目录
[root@localhost ~]# mkdir -p /data/minio20250318
[root@localhost ~]# chmod -x /data/minio20250318
# 设置服务器的别名
[root@localhost ~]# mc alias set minio172 http://IP:9000 用户名 密码
Added `minio172` successfully.
# 将 minio172 上所有Bucket 数据备份到 /data/minio20250318 目录
[root@localhost ~]# mc cp --recursive minio172 /data/minio20250318
...0/public/common-file/1732965186072.jpg: 54.11 MiB / 127.72 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
# 指定 bucket 备份
[root@localhost ~]# mc cp --recursive minio172/test /data/minio20250318/test
数据还原
bash
# 设置服务器的别名
[root@localhost ~]# mc alias set minio192 http://IP:9000 用户名 密码
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `minio192` successfully.
# 将 /data/minio20250318 目录下的备份数据恢复到服务器B minio192,注意备份文件目录路径需以'/'结尾
[root@localhost ~]# mc cp --recursive /data/minio20250318/ minio192
# 将某个桶(比如:test)的备份数据恢复到服务器B的指定桶(比如:test)中
[root@localhost ~]# mc cp --recursive /data/minio20250318/test/ minio192/test
数据迁移
服务器A能访问服务器B
设置别名
bash
# mc alias set 名称 服务地址 用户名 密码
# 设置 minio172 的alias
[root@localhost ~]# mc alias set minio172 http://ip:19000 admin admin123
# 设置 minio192 的alias
[root@localhost ~]# mc alias set minio192 http://ip:9000 minioadmin minioadmin
迁移
bash
#1. 全量迁移,重名文件不覆盖,如bucket不存在,会自动创建
[root@localhost ~]# mc mirror minio172 minio192
#2. 只迁移某个bucket,以test为例,迁移的目标bucket需要提前创建
[root@localhost ~]# mc mirror minio172/test minio192/test #test要提前在 minio192 中创建
#3. 加上--overwrite参数,覆盖重名文件
[root@localhost ~]# mc mirror --overwrite minio172 minio192
[root@localhost ~]# mc mirror --overwrite minio172/test minio172/test
