跳到主要内容
版本:Cloud 开发指南

恢复备份

Zilliz Cloud 提供的恢复功能可用于在发生意外删除、数据损坏或系统故障时,从备份文件中恢复数据,保障业务连续性。这是一种可靠的手段,可用于灾难恢复、撤销错误更改,或创建用于测试的集群副本,将业务中断最小化。

本文将介绍如何通过备份文件恢复整个集群部分集群数据

📘说明

此功能仅限 Dedicated 集群使用。

限制说明

  • 访问控制:仅项目管理员、组织管理员或拥有备份权限的自定义角色可执行备份操作。

  • 包年包月集群暂不支持恢复备份,如有需求,请联系我们

恢复整个集群

您可以将整个集群(包括集群下所有 Database 和 Collection)恢复到一个新集群中,适用于测试环境数据克隆或生产环境数据恢复。如需恢复整个集群,所用备份文件必须为集群级别备份

恢复过程中,您可以配置以下设置:

  • 选择是否一并恢复 RBAC 权限设置。

  • 设置恢复后新集群的 Milvus 版本:

    • 对于最近 30 天内创建的备份文件,如果原集群的 Milvus GA 版本早于当前可用的最新 GA 版本,您可以选择恢复后的新集群 Milvus 版本。默认情况下,Zilliz Cloud 会将集群恢复到最新 GA Milvus 版本。

    • 对于 30 天前创建的备份文件,或已经使用最新 Milvus GA 版本的备份文件,目标 Milvus 版本不可更改。

    例如,假设当前可用的最新 Milvus GA 版本为 2.6.x:

    • 如果您使用最近 30 天内创建的 2.5.x 集群备份文件进行恢复,Zilliz Cloud 默认会将新集群恢复到 2.6.x,但您也可以选择恢复到 2.5.x。

    • 如果您使用 30 天前创建的 2.5.x 备份文件进行恢复,Zilliz Cloud 默认会将新集群恢复到 2.6.x,且不能更改目标 Milvus 版本。

    • 如果您使用 2.6.x 备份文件进行恢复,Zilliz Cloud 会将新集群恢复到 2.6.x,且不能更改目标 Milvus 版本。

恢复完成后,系统会为默认用户 db_admin 生成一个新密码,您需使用新密码连接至新集群。

通过 Web 控制台

以下 Demo 展示如何在 Zilliz Cloud 控制台中恢复整个集群:

通过 RESTful API

以下示例展示如何通过集群备份文件将集群恢复至名为 Dedicated-01-backup 的新集群。更多 API 参数细节,请参见恢复集群备份

export API_KEY="YOUR_API_KEY"
export BASE_URL="https://api.cloud.zilliz.com.cn"
export CLUSTER_ID="your-cluster-id"

curl --request POST \
--url "${BASE_URL}/v2/clusters/${CLUSTER_ID}/backups/${BACKUP_ID}/restoreCluster" \
--header "Authorization: Bearer ${API_KEY}" \
--header "Accept: application/json" \
--header "Content-type: application/json" \
--data-raw '{
"targetProjectId": "proj-20e13e974c7d659a83xxxx",
"clusterName": "Dedicated-01-backup",
"cuSize": 1,
"collectionStatus": "KEEP",
"restoreVersionPolicy": "ORIGINAL"
}'

下表为参数说明。

参数

说明

targetProjectId

恢复后集群所属的项目的 ID。

clusterName

恢复后集群的名称。

cuSize

恢复后集群的 Query CU 数量。

collectionStatus

是否在恢复后保留原始的 Collection 加载状态。可选值包括:

  • KEEP: 保留原始 Collection 状态。

  • RELEASE: 释放所有 collection。

restoreVersionPolicy

恢复后集群兼容的 Milvus 版本。可选值包括:

  • ORIGINAL: 将集群恢复到原始的 Milvus 版本。

  • LATEST: 将集群恢复到当前最新的 GA Milvus 版本。

示例返回结果如下。系统将生成一个恢复任务,您可在项目下的任务中心查看进度:

{
"code": 0,
"data": {
"clusterId": "inxx-xxxxxxxxxxxxxxx",
"username": "db_admin",
"password": "xxxxxxxxx",
"jobId": "job-xxxxxxxxxxxxxx"
}
}

恢复部分集群数据

您也可以选择将特定的 Database 和 Collection 恢复到已有集群中。

通过 Web 控制台

以下 Demo 展示如何在控制台中恢复指定 Database 和 Collection:

通过 RESTful API

以下示例展示如何将某个备份文件中的 Collection 恢复至已有集群 in01-3e5ad8adc38xxxx。更多 API 参数细节,请参见恢复 Collection 备份

curl --request POST \
--url "${BASE_URL}/v2/clusters/${CLUSTER_ID}/backups/${BACKUP_ID}/restoreCollection" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"destClusterId": "in01-xxxxxxxxxxxxxx",
"dbCollections": [
{
"collections": [
{
"collectionName": "medium_articles",
"destCollectionName": "restore_medium_articles",
"destCollectionStatus": "LOADED"
}
]
}
]
}'

示例返回结果如下。系统将生成一个恢复任务,您可在项目下的任务中心查看进度:

{
"code": 0,
"data": {
"jobId": "job-04bf9335838dzkeydpxxxx"
}
}

常见问题

恢复备份后的集群是哪个 Milvus 版本?

  • 对于最近 30 天内创建的备份文件,如果原集群的 Milvus GA 版本早于当前可用的最新 GA 版本,您可以选择恢复后的新集群 Milvus 版本。默认情况下,Zilliz Cloud 会将集群恢复到最新 GA Milvus 版本。

  • 对于 30 天前创建的备份文件,或已经使用最新 Milvus GA 版本的备份文件,目标 Milvus 版本不可更改。

例如,假设当前可用的最新 Milvus GA 版本为 2.6.x:

  • 如果您使用最近 30 天内创建的 2.5.x 集群备份文件进行恢复,Zilliz Cloud 默认会将新集群恢复到 2.6.x,但您也可以选择恢复到 2.5.x。

  • 如果您使用 30 天前创建的 2.5.x 备份文件进行恢复,Zilliz Cloud 默认会将新集群恢复到 2.6.x,且不能更改目标 Milvus 版本。

  • 如果您使用 2.6.x 备份文件进行恢复,Zilliz Cloud 会将新集群恢复到 2.6.x,且不能更改目标 Milvus 版本。