创建一项传统备份恢复作业
已弃用
恢复指定项目中一个集群的一个传统备份。要使用此资源,请求的服务帐户或 API 密钥必须具有“项目所有者”角色。自 2020 年 3 月 23 日起,所有新集群只能使用云备份。当您升级到 4.2 时,如果备份系统当前设置为传统备份,则它会升级到云备份。升级后,所有现有的传统备份快照仍然可用。它们会根据您的保留策略随时间的推移而过期。您的备份策略将重置为默认计划。如果您已为传统备份应用自定义备份策略,则必须按照云备份文档中概述的步骤重新创建该策略。此终结点不支持为分片集群创建检查点恢复作业,也不支持为可查询备份快照创建恢复作业。如果通过在请求正文中指定 AUTOMATED_RESTORE
的 delivery.methodName
来创建自动恢复作业,则 MongoDB Cloud 会在恢复之前删除目标集群上的所有现有数据。
路径参数
-
用于标识项目的唯一 24-十六进制数字字符串。 使用 /groups 端点检索身份验证的用户有权访问权限的所有项目。
注意:群组和项目是同义词。您的群组 ID 与项目 ID 相同。对于现有群组,群组/项目 ID 保持不变。资源和相应的端点使用“群组”一词。
格式应符合以下模式:
^([a-f0-9]{24})$
。 -
人类可读标签,标识具有待返回的快照的集群。
格式应符合以下模式:
^[a-zA-Z0-9][a-zA-Z0-9-]*$
。
查询参数
-
指示应用程序是否将响应包装在
envelope
JSON 对象中的标志。某些 API 客户端无法访问 HTTP 响应标头或状态代码。要修复此问题,请在查询中设置 Envelope=true。返回结果列表的端点将结果对象用作 envelope。应用程序将状态参数添加到响应正文中。默认值为
false
。 -
指示响应正文是否应采用 prettyprint 格式的标记。
默认值为
false
。Prettyprint
body
必需
用于恢复到指定项目中的一个集群的传统备份。
-
唯一的 24 位十六进制数字字符串,用于标识分片集群检查点。检查点表示要还原数据的时间点。此参数适用于
"delivery.methodName" : "AUTOMATED_RESTORE"
。此参数仅适用于分片集群。- 如果您设置 checkpointId,则无法设置 oplogInc、oplogTs、snapshotId 或 pointInTimeUTCMillis。
- 如果提供此参数,则此端点会将截至此检查点的所有数据还原到您在交付对象中指定的数据库。
格式应符合以下模式:
^([a-f0-9]{24})$
。 -
说明如何交付恢复的快照数据的方法和详细信息。
-
32 位递增序数,表示特定秒内的操作。与 oplogTs 配合使用时,这表示 MongoDB Cloud 将数据恢复到的时间点。此参数在
"delivery.methodName" : "AUTOMATED_RESTORE"
时适用。- 如果设置了 oplogInc,则必须设置 oplogTs,并且无法设置 checkpointId、snapshotId 或 pointInTimeUTCMillis。
- 如果您提供此参数,则此端点会将截至且包括此 Oplog 时间戳在内的所有数据还原到您在交付对象中指定的数据库。
最小值为
1
。 -
要还原此快照的日期和时间。此参数以 UTC 的 ISO 8601 格式表示其值,代表了 Oplog 时间戳的第一部分。与 oplogTs 配合使用时,这些信息代表要将数据恢复到的上一次数据库操作的时间点。此参数在
"delivery.methodName" : "AUTOMATED_RESTORE"
时适用。在副本集上对 local.oplog.rs 运行查询,以查找所需的时间戳。- 如果设置了 oplogTs,则必须设置 oplogInc,并且无法设置 checkpointId、snapshotId 或 pointInTimeUTCMillis。
- 如果您提供此参数,则此端点会将截至且包括此 Oplog 时间戳在内的所有数据还原到您在交付对象中指定的数据库。
格式应符合以下模式:
^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z|[+-][01]\\d:[0-5]\\d)$
。 -
您要从中恢复此快照的时间戳。此参数以自 Unix 纪元以来经过的毫秒数来表示其值。此时间戳必须在当前时间的最后 24 小时内。此参数在
"delivery.methodName" : "AUTOMATED_RESTORE"
时适用。- 如果提供此参数,此端点会将截至该时间点的所有数据恢复到在交付对象中指定的数据库中。
- 如果设置了 pointInTimeUTCMillis,则无法设置 oplogInc、oplogTs、snapshotId 或 checkpointId。
最小值为
1199145600000
。UNIX Epoch -
唯一的 24 位十六进制数字字符串,用于标识要恢复的快照。如果设置了 snapshotId,则无法设置 oplogInc、oplogTs、pointInTimeUTCMillis 或 checkpointId。
格式应符合以下模式:
^([a-f0-9]{24})$
。
atlas api legacyBackup createGroupClusterRestoreJob --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20230201001/admin"
)
func main() {
ctx := context.Background()
clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
if err != nil {
log.Fatalf("Error: %v", err)
}
params = &sdk.CreateGroupClusterRestoreJobApiParams{}
sdkResp, httpResp, err := client.LegacyBackupApi.
CreateGroupClusterRestoreJobWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2023-02-01+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/restoreJobs" \
-d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2023-02-01+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/restoreJobs" \
-d '{ <Payload> }'
{
"checkpointId": "32b6e34b3d91647abb20e7b8",
"delivery": {
"expirationHours": 42,
"maxDownloads": 42,
"methodName": "CLIENT_PIT_HTTP",
"targetClusterId": "32b6e34b3d91647abb20e7b8",
"targetClusterName": "string",
"targetGroupId": "32b6e34b3d91647abb20e7b8"
},
"oplogInc": 42,
"oplogTs": "string",
"pointInTimeUTCMillis": 42,
"snapshotId": "32b6e34b3d91647abb20e7b8"
}
{
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"results": [
{
"batchId": "32b6e34b3d91647abb20e7b8",
"clusterId": "32b6e34b3d91647abb20e7b8",
"clusterName": "string",
"created": "2025-05-04T09:42:00Z",
"delivery": {
"authHeader": "string",
"authValue": "string",
"expirationHours": 42,
"expires": "2025-05-04T09:42:00Z",
"maxDownloads": 42,
"methodName": "CLIENT_PIT_HTTP",
"statusName": "NOT_STARTED",
"targetClusterId": "32b6e34b3d91647abb20e7b8",
"targetClusterName": "string",
"targetGroupId": "32b6e34b3d91647abb20e7b8",
"url": "string",
"urlV2": "string"
},
"encryptionEnabled": true,
"groupId": "32b6e34b3d91647abb20e7b8",
"hashes": [
{
"fileName": "string",
"hash": "string",
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"typeName": "SHA1"
}
],
"id": "32b6e34b3d91647abb20e7b8",
"links": [
{
"href": "https://cloud.mongodb.com/api/atlas",
"rel": "self"
}
],
"masterKeyUUID": "string",
"snapshotId": "32b6e34b3d91647abb20e7b8",
"statusName": "IN_PROGRESS",
"timestamp": {
"date": "2025-05-04T09:42:00Z",
"increment": 1199145600
}
}
],
"totalCount": 42
}
{
"error": 400,
"detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
"reason": "Bad Request",
"errorCode": "VALIDATION_ERROR"
}
{
"error": 401,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Unauthorized",
"errorCode": "NOT_ORG_GROUP_CREATOR"
}
{
"error": 403,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Forbidden",
"errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
{
"error": 404,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
"reason": "Not Found",
"errorCode": "RESOURCE_NOT_FOUND"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}