如何从minio还原Docker Milvus备份?

Docker

1 基础知识

Milvus Backup是一个用于备份和恢复Milvus数据的工具
Milvus Backup同时提供CLI和API用户适应不同的应用场景

2 最佳实践

2.1 环境配置

如何备份Docker Milvus?

2.3 还原操作

2.3.1 查看备份

milvus-backup list --config /etc/milvus-backup/backup.yaml

如果正常执行,可见如下提示信息,

0.5.8 (Built on 2025-08-12T06:24:52Z from Git SHA 2cda63aeb8762b363e76f9f9a09a7aa33d266679 by go1.24.5)
config: backup.yaml
[2025/09/17 13:44:15.627 +08:00] [INFO] [core/backup_context.go:250] ["receive ListBackupsRequest"] [requestId=649ca879-3a75-4db8-8439-a2c4c2ed7e5f] [collectionName=]
[2025/09/17 13:44:15.627 +08:00] [INFO] [core/backup_context.go:78] ["{Base:0xc0002ab508 MaxSegmentGroupSize:2147483648 BackupCollectionParallelism:1 BackupCopyDataParallelism:128 RestoreParallelism:1 ImportJobParallelism:768 KeepTempFiles:false GcPauseEnable:false GcPauseAddress:http://localhost:9091}"]
[2025/09/17 13:44:15.627 +08:00] [INFO] [core/backup_context.go:79] ["{Base:0xc0002ab508 Enabled:true DebugMode:false SimpleResponse:false}"]
[2025/09/17 13:44:15.627 +08:00] [INFO] [storage/factory.go:42] ["create backup storage client"] [endpoint=minio.cmdschool.org:9000] [bucket=milvus-backup]
[2025/09/17 13:44:15.654 +08:00] [INFO] [core/backup_context.go:276] ["List Backups' path"] [backup_paths="[backup/backup_2025_09_17_05_37_56_505385968/,backup/backup_2025_09_17_05_38_28_859053422/,backup/backup_2025_09_17_05_38_36_224165819/,backup/backup_2025_09_17_05_39_55_796480632/]"]
[2025/09/17 13:44:15.655 +08:00] [INFO] [core/backup_context.go:158] ["receive GetBackupRequest"] [requestId=cca6f255-e52d-46c1-89a6-d7b1f6042a66] [backupName=backup_2025_09_17_05_37_56_505385968] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.664 +08:00] [INFO] [core/backup_context.go:235] ["finish GetBackupRequest"] [requestId=cca6f255-e52d-46c1-89a6-d7b1f6042a66] [backupName=backup_2025_09_17_05_37_56_505385968] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.664 +08:00] [INFO] [core/backup_context.go:158] ["receive GetBackupRequest"] [requestId=23da1598-febd-47a9-83d5-7f7979437157] [backupName=backup_2025_09_17_05_38_28_859053422] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.670 +08:00] [INFO] [core/backup_context.go:235] ["finish GetBackupRequest"] [requestId=23da1598-febd-47a9-83d5-7f7979437157] [backupName=backup_2025_09_17_05_38_28_859053422] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.670 +08:00] [INFO] [core/backup_context.go:158] ["receive GetBackupRequest"] [requestId=1910652c-2478-4fd1-93b5-d45d29112594] [backupName=backup_2025_09_17_05_38_36_224165819] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.677 +08:00] [INFO] [core/backup_context.go:235] ["finish GetBackupRequest"] [requestId=1910652c-2478-4fd1-93b5-d45d29112594] [backupName=backup_2025_09_17_05_38_36_224165819] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.677 +08:00] [INFO] [core/backup_context.go:158] ["receive GetBackupRequest"] [requestId=bce04edf-9267-4e07-96ce-3be98b70abcd] [backupName=backup_2025_09_17_05_39_55_796480632] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.683 +08:00] [INFO] [core/backup_context.go:235] ["finish GetBackupRequest"] [requestId=bce04edf-9267-4e07-96ce-3be98b70abcd] [backupName=backup_2025_09_17_05_39_55_796480632] [backupId=] [bucketName=] [path=]
[2025/09/17 13:44:15.683 +08:00] [INFO] [core/backup_context.go:315] ["return ListBackupsResponse"] [requestId=649ca879-3a75-4db8-8439-a2c4c2ed7e5f] [code=0] [msg=success] ["data: list_backup_names"="[backup_2025_09_17_05_37_56_505385968,backup_2025_09_17_05_38_28_859053422,backup_2025_09_17_05_38_36_224165819,backup_2025_09_17_05_39_55_796480632]"]
>> Backups:
backup_2025_09_17_05_37_56_505385968
backup_2025_09_17_05_38_28_859053422
backup_2025_09_17_05_38_36_224165819
backup_2025_09_17_05_39_55_796480632

2.3.2 还原备份

milvus-backup restore --config /etc/milvus-backup/backup.yaml -n "backup_2025_09_17_05_38_28_859053422"

如果正常执行,可见如下提示信息,

0.5.8 (Built on 2025-08-12T06:24:52Z from Git SHA 2cda63aeb8762b363e76f9f9a09a7aa33d266679 by go1.24.5)
config: backup.yaml
[2025/09/17 13:48:42.822 +08:00] [INFO] [core/backup_impl_restore_backup.go:24] ["receive RestoreBackupRequest"] [request="requestId:\"c113ebaa-a9bc-4b0d-ab49-34e0e0b3dc8d\"  backup_name:\"backup_2025_09_17_05_38_28_859053422\"  db_collections:{string_value:\"\"}"]
[2025/09/17 13:48:42.822 +08:00] [INFO] [core/backup_context.go:78] ["{Base:0xc0004bfc08 MaxSegmentGroupSize:2147483648 BackupCollectionParallelism:1 BackupCopyDataParallelism:128 RestoreParallelism:1 ImportJobParallelism:768 KeepTempFiles:false GcPauseEnable:false GcPauseAddress:http://localhost:9091}"]
[2025/09/17 13:48:42.822 +08:00] [INFO] [core/backup_context.go:79] ["{Base:0xc0004bfc08 Enabled:true DebugMode:false SimpleResponse:false}"]
[2025/09/17 13:48:42.822 +08:00] [INFO] [core/backup_context.go:158] ["receive GetBackupRequest"] [requestId=2fba9457-2260-4001-a683-8f3d4598d804] [backupName=backup_2025_09_17_05_38_28_859053422] [backupId=] [bucketName=] [path=]
[2025/09/17 13:48:42.822 +08:00] [INFO] [storage/factory.go:42] ["create backup storage client"] [endpoint=minio.cmdschool.org:9000] [bucket=milvus-backup]
[2025/09/17 13:48:42.856 +08:00] [INFO] [core/backup_context.go:235] ["finish GetBackupRequest"] [requestId=2fba9457-2260-4001-a683-8f3d4598d804] [backupName=backup_2025_09_17_05_38_28_859053422] [backupId=] [bucketName=] [path=]
[2025/09/17 13:48:42.856 +08:00] [INFO] [storage/factory.go:95] ["create milvus storage client"] [endpoint=localhost:9700] [bucket=a-bucket]
[2025/09/17 13:48:42.856 +08:00] [INFO] [milvus/grpc.go:261] ["New milvus grpc client"] [component=grpc-client] [host=localhost:19530]
[2025/09/17 13:48:43.215 +08:00] [INFO] [milvus/grpc.go:342] ["connect to server"] [component=grpc-client] [server=2.5.14]
[2025/09/17 13:48:43.218 +08:00] [INFO] [milvus/restful.go:250] ["new milvus restful client"] [host=localhost:19530]
[2025/09/17 13:48:43.218 +08:00] [INFO] [restore/planner.go:460] ["databases in backup"] [backup_name=backup_2025_09_17_05_38_28_859053422] [db_names="[default]"]
[2025/09/17 13:48:43.218 +08:00] [INFO] [restore/planner.go:464] ["collections in backup"] [backup_name=backup_2025_09_17_05_38_28_859053422] [coll_names="[]"]
[2025/09/17 13:48:43.218 +08:00] [INFO] [restore/planner.go:470] ["databases backup after filtering"] [backup_name=backup_2025_09_17_05_38_28_859053422] [db_names="[default]"]
[2025/09/17 13:48:43.218 +08:00] [INFO] [restore/planner.go:474] ["collections backup after filtering"] [backup_name=backup_2025_09_17_05_38_28_859053422] [coll_names="[]"]
[2025/09/17 13:48:43.218 +08:00] [INFO] [restore/planner.go:480] ["databases task after mapping"] [backup_name=backup_2025_09_17_05_38_28_859053422] [db_names="[default]"]
[2025/09/17 13:48:43.219 +08:00] [INFO] [restore/planner.go:484] ["collections task after mapping"] [backup_name=backup_2025_09_17_05_38_28_859053422] [coll_names="[]"]
[2025/09/17 13:48:43.219 +08:00] [INFO] [restore/planner.go:490] ["databases task after filtering"] [backup_name=backup_2025_09_17_05_38_28_859053422] [db_names="[default]"]
[2025/09/17 13:48:43.219 +08:00] [INFO] [restore/planner.go:494] ["collections task after filtering"] [backup_name=backup_2025_09_17_05_38_28_859053422] [coll_names="[]"]
[2025/09/17 13:48:43.219 +08:00] [INFO] [restore/task.go:198] ["skip restore RBAC"] [backup_name=backup_2025_09_17_05_38_28_859053422]
[2025/09/17 13:48:43.219 +08:00] [INFO] [restore/task.go:212] ["start restore database"] [backup_name=backup_2025_09_17_05_38_28_859053422]
[2025/09/17 13:48:43.220 +08:00] [INFO] [restore/task.go:239] ["finish restore all database"] [backup_name=backup_2025_09_17_05_38_28_859053422]
[2025/09/17 13:48:43.222 +08:00] [INFO] [restore/task.go:269] ["start restore collection"] [backup_name=backup_2025_09_17_05_38_28_859053422]
[2025/09/17 13:48:43.222 +08:00] [INFO] [restore/task.go:294] ["finish restore all collections"] [backup_name=backup_2025_09_17_05_38_28_859053422] [collection_num=0] [duration=222.178379ms]
[2025/09/17 13:48:43.222 +08:00] [INFO] [restore/task.go:165] ["restore task finished"] [backup_name=backup_2025_09_17_05_38_28_859053422]
success
duration:0.40 s

参阅文档
==============

备份文档
———–
https://zilliz.com.cn/blog/how-to-use-milvus-backup-tool-step-by-step-guide.md
https://milvus.io/docs/zh/milvus_backup_overview.md

备份github
———–
https://github.com/zilliztech/milvus-backup

没有评论

发表回复

Docker
如何备份Docker Milvus到minio存储?

1 基础知识 Milvus Backup是一个用于备份和恢复Milvus数据的工具 Milvus B …

Docker
如何修改Docker Milvus minio存储密码?

1 前言 一个问题,一篇文章,一出故事。 笔者今天部署好Milvus后,发现分布式存储minio的r …

Docker
如何启用Docker Milvus的root认证?

1 前言 一个问题,一篇文章,一出故事。 笔者今天部署好Milvus后,发现root登陆无需密码,于 …