
1 基础知识
Milvus Backup是一个用于备份和恢复Milvus数据的工具
Milvus Backup同时提供CLI和API用户适应不同的应用场景
2 最佳实践
2.1 环境配置
2.1.1 部署Milvus节点
2.1.2 设置备份的桶和备份账号
请参阅以上章节并结合如下要求创建桶和备份的账号和密码,
桶的名称:milvus-backup
桶的权限:读写
账号名称:milvus-backup
账号密码:milvus-backup-pwd
2.2 部署备份工具
2.2.1 下载软件包
cd ~ wget https://github.com/zilliztech/milvus-backup/releases/download/v0.5.8/milvus-backup_0.5.8_Linux_x86_64.tar.gz wget https://raw.githubusercontent.com/zilliztech/milvus-backup/refs/heads/main/configs/backup.yaml
以上只是演示,如果需要其他版本或者下载异常,请冲如下连接下载,
https://github.com/zilliztech/milvus-backup/releases
https://github.com/zilliztech/milvus-backup/blob/main/configs/backup.yaml
2.2.2 解压软件包
cd ~ tar -xf milvus-backup_0.5.8_Linux_x86_64.tar.gz
2.2.3 部署软件包
cd ~ mkdir -p /opt/milvus-backup/configs /var/log/milvus-backup ln -s /opt/milvus-backup/configs /etc/milvus-backup ln -s /var/log/milvus-backup /opt/milvus-backup/logs mv milvus-backup /opt/milvus-backup/ chmod +x /opt/milvus-backup/milvus-backup mv backup.yaml /etc/milvus-backup/
配置环境变量,
vim /etc/profile.d/milvus-backup.sh
加入如下配置,
export MILVUS_BACKUP=/opt/milvus-backup export PATH=${MILVUS_BACKUP}:$PATH
配置创建后,你需要使用如下命令导入环境变量,
source /etc/profile
2.2.4 测试部署
milvus-backup -h
可见如下输出,
0.5.8 (Built on 2025-08-12T06:24:52Z from Git SHA 2cda63aeb8762b363e76f9f9a09a7aa33d266679 by go1.24.5) config: backup.yaml milvus-backup is a backup&restore tool for milvus. Usage: milvus-backup [flags] milvus-backup [command] Available Commands: check check if the connects is right. create create subcommand create a backup. delete delete backup by name. get get subcommand get backup by name. help Help about any command list list subcommand shows all backup in the cluster. migrate migrate the backup data to zilliz cloud cluster restore restore a backup server server subcommand start milvus-backup RESTAPI server. Flags: --config string config YAML file of milvus (default "backup.yaml") -h, --help help for milvus-backup --set strings Override yaml values using a capitalized snake case format (--set MILVUS_USER=Marco) Use "milvus-backup [command] --help" for more information about a command.
2.3 设置备份工具
2.3.1 修改配置文件
cp /etc/milvus-backup/backup.yaml /etc/milvus-backup/backup.yaml.default vim /etc/milvus-backup/backup.yaml
配置修改如下或者修改如下配置,
milvus: address: localhost port: 19530 user: "root" password: "rootpwd" minio: storageType: "minio" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent), gcpnative address: localhost # Address of MinIO/S3 port: 9700 # Port of MinIO/S3 accessKeyID: admin # accessKeyID of MinIO/S3 secretAccessKey: adminpwd # MinIO/S3 encryption string bucketName: "a-bucket" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance backupStorageType: "minio" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent) backupAddress: minio.cmdschool.org # Address of MinIO/S3 backupPort: 9000 # Port of MinIO/S3 backupAccessKeyID: milvus-backup # accessKeyID of MinIO/S3 backupSecretAccessKey: milvus-backup-pwd # MinIO/S3 encryption string backupBucketName: "milvus-backup" # Bucket name to store backup data. Backup data will store to backupBucketName/backupRootPath backupRootPath: "backup" # Rootpath to store backup data. Backup data will store to backupBucketName/backupRootPath backupUseSSL: true # Access to MinIO/S3 with SSL
2.3.2 检查配置
milvus-backup check --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 14:05:12.705 +08:00] [INFO] [milvus/grpc.go:261] ["New milvus grpc client"] [component=grpc-client] [host=localhost:19530] [2025/09/17 14:05:13.063 +08:00] [INFO] [milvus/grpc.go:342] ["connect to server"] [component=grpc-client] [server=2.5.14] [2025/09/17 14:05:13.066 +08:00] [INFO] [storage/factory.go:95] ["create milvus storage client"] [endpoint=localhost:9700] [bucket=a-bucket] Milvus storage is empty. Please verify whether your cluster is really empty. If not, the configs(minio address, port, bucket, rootPath) may be wrong Milvus version: 2.5.14 Storage: milvus-bucket: a-bucket milvus-rootpath: files backup-bucket: milvus-backup backup-rootpath: backup
2.4 备份操作
2.4.1 创建备份
milvus-backup create --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:39:55.796 +08:00] [INFO] [core/backup_impl_create_backup.go:25] ["receive CreateBackupRequest"] [requestId=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [backupName=] [collections="[]"] [databaseCollections=] [async=false] [force=false] [metaOnly=false] [2025/09/17 13:39:55.796 +08:00] [INFO] [core/backup_context.go:78] ["{Base:0xc00029d188 MaxSegmentGroupSize:2147483648 BackupCollectionParallelism:1 BackupCopyDataParallelism:128 RestoreParallelism:1 ImportJobParallelism:768 KeepTempFiles:false GcPauseEnable:false GcPauseAddress:http://localhost:9091}"] [2025/09/17 13:39:55.796 +08:00] [INFO] [core/backup_context.go:79] ["{Base:0xc00029d188 Enabled:true DebugMode:false SimpleResponse:false}"] [2025/09/17 13:39:55.796 +08:00] [INFO] [storage/factory.go:42] ["create backup storage client"] [endpoint=minio.cmdschool.org:9000] [bucket=milvus-backup] [2025/09/17 13:39:55.823 +08:00] [INFO] [milvus/grpc.go:261] ["New milvus grpc client"] [component=grpc-client] [host=localhost:19530] [2025/09/17 13:39:57.182 +08:00] [INFO] [milvus/grpc.go:342] ["connect to server"] [component=grpc-client] [server=2.5.14] [2025/09/17 13:39:57.186 +08:00] [INFO] [storage/factory.go:95] ["create milvus storage client"] [endpoint=localhost:9700] [bucket=a-bucket] [2025/09/17 13:39:57.186 +08:00] [INFO] [milvus/restful.go:250] ["new milvus restful client"] [host=localhost:19530] [2025/09/17 13:39:57.186 +08:00] [INFO] [backup/task.go:263] ["read need backup db and collection from API"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.186 +08:00] [INFO] [backup/task.go:199] ["the milvus server support multi database"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.189 +08:00] [INFO] [backup/task.go:268] ["list db and collection from API done"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [dbNames="[default]"] [collections=null] [2025/09/17 13:39:57.190 +08:00] [INFO] [backup/task.go:281] ["backup db done"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.190 +08:00] [INFO] [backup/task.go:311] ["start backup all collections"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [collections=null] [2025/09/17 13:39:57.190 +08:00] [INFO] [backup/task.go:331] ["backup all collections successfully"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.190 +08:00] [INFO] [backup/task.go:338] ["skip backup rbac"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.190 +08:00] [INFO] [backup/task.go:351] ["start backup rpc channel pos"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.190 +08:00] [INFO] [backup/rpc_channel_pos.go:36] ["try to get rpc channel pos"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [rpc_channel=by-dev-replicate-msg] [2025/09/17 13:39:57.191 +08:00] [INFO] [backup/rpc_channel_pos.go:42] ["get rpc channel pos done"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [pos="ChRieS1kZXYtcmVwbGljYXRlLW1zZxII//////////8="] [2025/09/17 13:39:57.191 +08:00] [INFO] [backup/task.go:357] ["backup rpc channel pos done"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.191 +08:00] [INFO] [backup/task.go:125] ["backup successfully"] [backup_id=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [2025/09/17 13:39:57.191 +08:00] [INFO] [meta/backup_meta_manager.go:512] ["Get backup"] [state=BACKUP_EXECUTING] [backupedSize=0] [totalSize=0] [progress=0] [2025/09/17 13:39:57.267 +08:00] [INFO] [core/backup_impl_create_backup.go:204] ["finish writeBackupInfoMeta"] [path=backup/backup_2025_09_17_05_39_55_796480632/] [backupName=backup_2025_09_17_05_39_55_796480632] ["backup meta"="{\"id\":\"c46ef390-0398-4fd7-aeb7-1540fbbc9da7\",\"state_code\":1,\"start_time\":1758087597186,\"progress\":0,\"name\":\"backup_2025_09_17_05_39_55_796480632\",\"size\":0,\"milvus_version\":\"2.5.14\"}"] [2025/09/17 13:39:57.267 +08:00] [INFO] [core/backup_impl_create_backup.go:145] ["finish backup all info"] [requestId=c46ef390-0398-4fd7-aeb7-1540fbbc9da7] [backupName=backup_2025_09_17_05_39_55_796480632] [collections="[]"] [async=false] success duration:1.47 s
2.4.2 查看备份
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
参阅文档
==============
备份文档
———–
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
没有评论