参考文档:https://github.com/zilliztech/milvus-backup/releases
迁移原则:只能低到高,不能高到低;是一种全量备份的工具,需要暂停服务使用
如果需要热备、跨集群容灾或低停机时间迁移,可以结合Milvus CDC使用。参考文档:https://github.com/zilliztech/milvus-cdc
1 2 3 4
| wget https://github.com/zilliztech/milvus-backup/releases/download/v0.5.12/milvus-backup_0.5.12_Linux_x86_64.tar.gz tar -xf milvus-backup_0.5.12_Linux_x86_64.tar.gz mv milvus-backup /usr/bin/
|
使用流程
- 创建backup.yaml,旧集群生成备份
- 物理数据搬迁,OSS文件从Old Bucket迁移到New Bucket
- 创建restore.yaml,指向新集群
- 在新集群执行恢复
环境说明
1 2 3 4 5 6 7 8 9
| 新milvus环境: 192.168.8.147:19530 oss-cn-beijing.aliyuncs.com bucketName: "milvus-backup-test"
旧milvus环境: 192.168.10.100:19530 oss-cn-beijing.aliyuncs.com bucketName: "milvus-wangsheng-test"
|
迁移实践
具体backup.yaml字段格式可以查看https://github.com/zilliztech/milvus-backup?tab=readme-ov-file#backupyaml-configurations
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| milvus: address: "192.168.10.100" port: 19530 minio: storageType: "minio" port: "443" address: "oss-cn-beijing.aliyuncs.com" bucketName: "milvus-wangsheng-test" rootPath: "test" accessKeyID: "xxxx" secretAccessKey: "xxxx" useSSL: true useIAM: false region: "cn-beijing" backup: backuppath: "backup_folder"
milvus-backup --config ./backup.yaml check
milvus-backup --config ./backup.yaml create -n backup_test_2026
... [2026/04/15 14:08:38.106 +08:00] [INFO] [backup/task.go:261] ["backup successfully"] [task_id=5f2b4c61-c368-423a-aa20-ea442336a9e7] duration:4.08 s
|

oss数据迁移-两种方法
这两种方法的最后,都是会在新对象存储的目录下,生成backup_test_2026的目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| 1.方法1-使用ossutil搬运 ossutil cp -r oss://milvus-wangsheng-test/test/backup_test_2026 oss://milvus-backup-test/test/
2.方法2-直接在backup.yaml中定义目标s3的位置 milvus: address: "192.168.10.100" port: 19530 minio: storageType: "minio" port: "443" address: "oss-cn-beijing.aliyuncs.com" bucketName: "milvus-wangsheng-test" rootPath: "test" accessKeyID: "xxxx" secretAccessKey: "xxxx" useSSL: true region: "cn-beijing"
backupAddress: "oss-cn-beijing.aliyuncs.com" backupPort: "443" backupBucketName: "milvus-backup-test" backupAccessKeyID: "xxxx" backupSecretAccessKey: "xxxx" backupRegion: "cn-beijing" backupRootPath: "test" backupUseSSL: true backup: backuppath: "backup_folder" milvus-backup create -n backup_2026_direct --config backup.yaml
|

恢复到新集群
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| milvus: address: "192.168.8.147" port: 19530
minio: storageType: "minio" port: "443" address: "oss-cn-beijing.aliyuncs.com" bucketName: "milvus-backup-test" rootPath: "test" accessKeyID: "xxxx" secretAccessKey: "xxxx" useSSL: true region: "cn-beijing"
backup: backuppath: "backup_folder"
milvus-backup list --config restore.yaml >> Backups: backup_2026_direct backup_test_2026
↑说明有两个可还原的版本
milvus-backup restore -n backup_2026_direct --config restore.yaml ... duration:42.30 s
|
测试访问
图形访问测试
1 2 3 4 5
| docker run -d \ --name attu \ -p 8000:3000 \ -e MILVUS_URL=192.168.8.147:19530 \ zilliz/attu:latest
|

业务访问测试
修改代码访问的milvus端点,调用embedding后的向量
1 2 3 4
| milvus_config = { "host": "192.168.8.147", "port": "19530" }
|
