MinIO数据恢复需通过mc(MinIO Client)工具实现,首先需在CentOS服务器上安装该工具。
mc:wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
mc --version
若输出版本信息,则安装成功。为便于后续操作,需为MinIO服务器设置别名(Alias),关联服务器地址、AccessKey和SecretKey。
mc alias set minio_server http://<MinIO服务器IP>:9000 <AccessKey> <SecretKey>
mc alias set minio_server http://192.168.1.100:9000 minioadmin minioadmin
(注:minioadmin为默认账号密码,若已修改请替换为实际值)为避免恢复过程中数据覆盖或损坏,建议先停止MinIO服务(若为生产环境,可选择低峰时段操作)。
sudo systemctl stop minio
sudo systemctl start minio
根据数据丢失场景选择对应的恢复方式:
若之前通过mc备份了桶数据(如备份到/home/minio/backup/bucket-demo/),可通过以下命令恢复到目标MinIO服务器的对应桶:
mc cp --recursive /home/minio/backup/bucket-demo/ minio_server/bucket-demo/
--recursive:递归复制目录下所有文件;/结尾);别名/桶名/)。若需恢复整个服务器的数据(如迁移或全量恢复),可将备份的MinIO目录(包含所有桶)复制到目标服务器:
mc cp --recursive /home/minio/backup/minio_server/ minio_server/
mc mb minio_server/<桶名>创建)。恢复完成后,通过mc命令检查数据是否完整:
mc ls minio_server/bucket-demo/ # 列出桶内文件
mc stat minio_server/bucket-demo/<文件名> # 检查文件元数据
若数据因误删除且未备份,可尝试使用extundelete工具恢复(仅适用于本地文件系统,如MinIO数据目录所在的EXT3/EXT4分区)。
extundelete:sudo yum install extundelete -y
sudo umount /dev/sda1 # 替换为MinIO数据目录所在分区(如/dev/sda1)
sudo extundelete /dev/sda1 --restore-all
sudo extundelete /dev/sda1 --restore-file /opt/minio/data/bucket-demo/test.txt
sudo extundelete /dev/sda1 --restore-directory /opt/minio/data/bucket-demo/
/opt/minio/data)有读写权限;mc命令重新平衡数据(mc admin heal minio_server)。