如何备份Milvus?

Milvus

1 基础知识

1.1 软件介绍

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

1.2 备份场景

1.2.1 场景一


– 在同一Milvus实例,同一S3服务,同一S3 Bucket备份和恢复
– S3 Bucket的Collection级别的复制,用于备份恢复

1.2.2 场景二


– 在两个Milvus实例,同一S3服务,同一S3 Bucket备份和恢复
– S3 Bucket的Collection级别的复制,用于备份恢复或迁移

1.2.3 场景三


– 在两个Milvus实例,同一S3服务,不同S3 Bucket备份和恢复
– S3 Bucket的Bucket级别的复制,用于备份恢复或迁移

1.2.4 场景四


– 在两个Milvus实例,不同S3服务,用于备份和恢复
– S3服务级别的复制,用于备份恢复

2 最佳实践

2.1 环境配置

2.1.1 部署Milvus节点

hostName = milvus01.cmdschool.org
os: Oracle Linux Server 9.x
IP Address: any

请参阅如下章节部署环境,

如何部署Docker单节点Milvus?

2.1.2 部署Milvus备份节点

hostName = milvusbackup01.cmdschool.org
os: Oracle Linux Server 9.x
IP Address: any

请参阅如下章节部署环境,

如何部署Docker单节点Milvus?

2.2 部署备份工具

In milvus01

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 设置备份工具

In milvus01

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
 authorizationEnabled: false
 # tls mode values [0, 1, 2]
 # 0 is close, 1 is one-way authentication, 2 is two-way authentication.
 tlsMode: 0
 user: "root"
 password: "rootpwd"
 # Related configuration of minio, which is responsible for data persistence for Milvus.
minio:
 # cloudProvider: "minio" # deprecated use storageType instead
 storageType: "minio" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent)
 address: localhost # Address of MinIO/S3
 port: 9700   # Port of MinIO/S3
 accessKeyID: minioadmin  # accessKeyID of MinIO/S3
 secretAccessKey: minioadmin # MinIO/S3 encryption string
 useSSL: false # Access to MinIO/S3 with SSL
 useIAM: false
 iamEndpoint: ""
 bucketName: "a-bucket" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
 rootPath: "files" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance

 # Backup storage configs, the storage you want to put the backup data
 backupStorageType: "s3" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent)
 backupAddress: milvusbackup01.cmdschool.org # Address of MinIO/S3
 backupPort: 9700   # Port of MinIO/S3
 backupAccessKeyID: minioadmin  # accessKeyID of MinIO/S3
 backupSecretAccessKey: minioadmin # MinIO/S3 encryption string
 # Used only for the "gcpnative" cloud provider.
 backupBucketName: "milvus01" # 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: false # Access to MinIO/S3 with SSL

2.3.2 检查配置

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

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

#...
Succeed to connect to milvus and storage.
Milvus version: 2.5.14
Storage:
milvus-bucket: a-bucket
milvus-rootpath: files
backup-bucket: milvus01
backup-rootpath: backup

2.4 备份操作

In milvus01

2.4.1 创建备份

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

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

#...
success
duration:13.60 s

2.4.2 查看备份

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

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

#...
>> Backups:
backup_2025_12_18_06_03_40_558125328
backup_2025_12_18_06_05_16_516922766
backup_2025_12_18_06_27_48_870058732

2.5 还原操作

如何还原Milvus备份?

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

备份文档
———–
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

没有评论

发表回复

Milvus
如何备份milvus向量数据库?

1 前言 一个问题,一篇文章,一出故事。 笔者需要创建一个用于备份milvus的base shell …

Milvus
如何还原Milvus备份?

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

Milvus
如何部署Oracle Linux 9.x milvus?

1 基础知识 1.1 Milvus的简介 – Milvus是鹰科Accipaitrida …