minio数据迁移使用mc迁移至新服务器步骤
准备工作
在开始迁移前,建议先完成以下准备:
确保版本一致:检查新旧两个 MinIO 服务器的版本,建议保持一致,以避免因版本差异带来的元数据不兼容问题。
停止业务写入(可选但推荐):如果是生产环境,最好先停止对源 MinIO 的写入操作,或确保在迁移期间只进行增量同步,防止数据不一致。
安装 mc 客户端:在任意一台能同时访问源和目标服务器的机器上安装 mc。
Linux (amd64) 示例:
# 下载 mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc[reference:7][reference:8]
# 赋予执行权限
chmod +x mc[reference:9]
# 移动到系统路径
sudo mv mc /usr/local/bin/[reference:10]
# 验证安装
mc --version[reference:11]
其他安装方式:你也可以通过 Docker 安装 (docker pull minio/mc),或从 MinIO 官网下载适用于其他操作系统(如 Windows、ARM 等)的版本。
🚀 开始迁移
- 配置服务器别名
为方便操作,为源服务器和新服务器设置别名。
# 设置源服务器(旧)别名
mc alias set minio_old http://<源服务器IP>:9000 <ACCESS_KEY> <SECRET_KEY>[reference:16]
# 设置目标服务器(新)别名
mc alias set minio_new http://<新服务器IP>:9000 <ACCESS_KEY> <SECRET_KEY>[reference:17]
注意:
请将命令中的 <源服务器IP>、<新服务器IP>、<ACCESS_KEY> 和 <SECRET_KEY> 替换为实际值。
MinIO 的 API 端口默认为 9000,控制台端口通常是 9001,务必使用 API 端口 (9000) 进行数据迁移。
2. 执行数据迁移
mc 提供了多种迁移方式,可按需选择。
方案一:使用 mc mirror(最推荐)
这是官方推荐的方式,功能强大,支持全量、增量和实时同步。
全量迁移所有桶:
mc mirror --overwrite minio_old/ minio_new/[reference:21]
--overwrite 参数表示如果目标端有同名文件则覆盖。mc mirror 会自动在目标端创建不存在的桶。
迁移单个桶:
mc mirror --overwrite minio_old/<桶名> minio_new/<桶名>[reference:24][reference:25]
增量同步(生产环境常用):
在全量迁移后,可以再次执行 mc mirror 命令来同步期间新增或变更的文件。如需实时监控并同步,可加上 --watch 参数:
mc mirror --watch --overwrite minio_old/ minio_new/[reference:28]
方案二:使用 mc cp(适合小规模或一次性迁移)
这是一个简单的递归拷贝命令,适合数据量不大或只需迁移特定目录的场景。
# 拷贝所有数据(注意:目标桶需提前创建)[reference:30][reference:31]
mc cp --recursive minio_old/ minio_new/
# 拷贝指定桶
mc cp --recursive minio_old/<桶名> minio_new/<桶名>[reference:32]
方案三:离线迁移(网络隔离场景)
如果两台服务器网络不通,可以先将数据导出到本地,再传输到新服务器导入。
# 在源端,将数据镜像到本地目录
mc mirror minio_old/<桶名> /tmp/local_backup/[reference:34]
# 打包并传输到目标服务器(使用 scp 或 rsync)[reference:35]
tar -czvf backup.tar.gz /tmp/local_backup/
scp backup.tar.gz user@<新服务器IP>:/tmp/
# 在目标端,解压并导入到新的 MinIO
tar -xzvf /tmp/backup.tar.gz -C /tmp
mc mirror /tmp/local_backup/ minio_new/<桶名>[reference:36]
✅ 验证与后续
迁移完成后,建议进行数据校验。
对比对象数量:检查源和目标端桶内的文件数量是否一致。
mc ls minio_old/<桶名> | wc -l
mc ls minio_new/<桶名> | wc -l
使用 mc diff 进行差异对比:这个命令会列出两个桶之间的差异,如果没有输出,则表示数据完全一致。
mc diff minio_old/<桶名> minio_new/<桶名>
⚠️ 注意事项
关于 .minio.sys 目录:不要迁移这个目录,它是 MinIO 的内部元数据文件夹,新实例启动时会自动生成。
并发与速度:如果迁移速度慢,可以通过 --concurrent 参数增加并发数。
谨慎使用 --remove:mc mirror 的 --remove 参数会删除目标端存在但源端没有的文件,请务必确认后再使用。

浙公网安备 33010602011771号