1개의 레거시 백업 복원 작업 만들기
더 이상 사용되지 않습니다.
지정된 프로젝트의 클러스터 한 개에 대해 레거시 백업 한 개를 복원합니다. 이 리소스를 사용하려면, 요청하는 서비스 계정 또는 API 키에 프로젝트 소유자 역할이 있어야 합니다. 2020년 3월 23일부터 모든 새 클러스터는 클라우드 백업만 사용할 수 있습니다. 4.2로 업그레이드하면, 현재 레거시 백업으로 설정되어 있는 경우 백업 시스템이 클라우드 백업으로 업그레이드됩니다. 이 업그레이드 후에도 기존의 모든 레거시 백업 스냅샷을 계속 사용할 수 있습니다. 사용자의 보유 정책에 따라 시간이 지나면 만료됩니다. 백업 정책은 기본 일정으로 재설정됩니다. 레거시 백업과 함께 사용자 지정 백업 정책을 적용한 경우, 클라우드 백업 문서에 설명된 절차에 따라 백업 정책을 다시 생성해야 합니다. 이 엔드포인트는 샤딩된 클러스터에 대한 체크포인트 복원 작업 생성이나 쿼리 가능 백업 스냅샷에 대한 복원 작업 생성을 지원하지 않습니다. 요청 본문에 AUTOMATED_RESTORE
의 delivery.methodName
을 지정하여 자동 복원 작업을 생성하는 경우, MongoDB Cloud는 복원 전에 대상 클러스터의 기존 데이터를 모두 제거합니다.
경로 매개변수
-
프로젝트 식별하는 고유한 24-16진수 문자열입니다. 인증된 사용자가 액세스 할 수 있는 모든 프로젝트를 조회 하려면 /groups 엔드포인트를 사용합니다.
참고: 그룹과 프로젝트는 동의어입니다. 그룹 ID는 프로젝트 ID와 동일합니다. 기존 그룹의 경우, 그룹/프로젝트 ID는 동일하게 유지됩니다. 리소스 및 해당 엔드포인트는 그룹이라는 용어를 사용합니다.
형식은
^([a-f0-9]{24})$
패턴 과 일치해야 합니다. -
반환하려는 스냅샷이 포함된 클러스터를 식별하는 사람이 읽을 수 있는 레이블입니다.
형식은
^[a-zA-Z0-9][a-zA-Z0-9-]*$
패턴 과 일치해야 합니다.
쿼리 매개변수
-
애플리케이션이 응답을
envelope
JSON 객체로 래핑할지 여부를 나타내는 플래그입니다. 일부 API 클라이언트는 HTTP 응답 헤더 또는 상태 코드에 액세스할 수 없습니다. 이 문제를 해결하려면 쿼리에서 envelope=true를 설정합니다. 결과 목록을 반환하는 엔드포인트는 결과 객체를 엔벨로프로 사용합니다. 애플리케이션은 응답 본문에 상태 매개변수를 추가합니다.기본값은
false
입니다. -
응답 본문이 프리티프린트 형식이어야 하는지 여부를 나타내는 플래그입니다.
기본값은
false
입니다.Prettyprint
body
필수 사항
레거시 백업으로 지정된 프로젝트의 cluster 한 개로 복원합니다.
-
샤딩된 클러스터 체크포인트를 식별하는 고유한 24자리 16진수 문자열입니다. 체크포인트는 데이터를 복원하려는 시점을 나타냅니다. 이 매개변수는
"delivery.methodName" : "AUTOMATED_RESTORE"
일 때 적용됩니다. 이 매개변수는 샤딩된 클러스터에만 사용합니다.- checkpointId를 설정하면 oplogInc, oplogTs, snapshotId 또는 pointInTimeUTCMillis는 설정할 수 없습니다.
- 이 매개변수를 제공하면 이 엔드포인트는 이 체크포인트까지의 모든 데이터를 전달 객체에서 지정한 데이터베이스에 복원합니다.
형식은
^([a-f0-9]{24})$
패턴 과 일치해야 합니다. -
복원된 스냅샷 데이터를 전달하는 방법을 나타내는 메서드 및 세부 정보입니다.
-
주어진 초 내의 작업을 나타내는 32비트 증분 서수입니다. oplogT와 함께 사용할 경우 이는 MongoDB Cloud가 데이터를 복원하는 시점을 나타냅니다. 이 매개변수는
"delivery.methodName" : "AUTOMATED_RESTORE"
시 적용됩니다.- oplogInc를 설정하면 반드시 oplogT를 설정해야 하며 checkpointId, snapshotId 또는 pointInTimeUTCMillis는 설정할 수 없습니다.
- 이 매개변수를 제공하면 이 엔드포인트는 이 Oplog 타임스탬프를 포함한 모든 데이터를 전달 객체에서 지정한 데이터베이스에 복원합니다.
최소값은
1
입니다. -
이 스냅샷을 복원할 날짜 및 시간입니다. 이 매개변수는 값을 UTC의 ISO 8601 형식으로 표현합니다. 이는 Oplog 타임스탬프의 첫 번째 부분을 나타냅니다. oplogInc와 함께 사용하면 데이터를 복원하려는 마지막 데이터베이스 작업을 나타냅니다. 이 매개변수는
"delivery.methodName" : "AUTOMATED_RESTORE"
시 적용됩니다. 복제본 세트에서 local.oplog.rs에 대한 쿼리를 실행하여 원하는 타임스탬프를 찾습니다.- oplogT를 설정하면 반드시 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)$
패턴 과 일치해야 합니다. -
이 스냅샷을 복원하려는 타임스탬프입니다. 이 매개변수는 유닉스 시간 이후 경과된 시간(밀리초)으로 값을 표현합니다. 이 타임스탬프는 현재 시간으로부터 최근 24시간 이내여야 합니다. 이 매개변수는
"delivery.methodName" : "AUTOMATED_RESTORE"
시 적용됩니다.- 이 매개변수를 제공하면 이 엔드포인트는 이 시점까지의 모든 데이터를 전달 객체에서 지정한 데이터베이스에 복원합니다.
- pointInTimeUTCMillis를 설정하면 oplogInc, oplogTs, snapshotId 또는 checkpointId는 설정할 수 없습니다.
최소값은
1199145600000
입니다.UNIX Epoch -
복원할 스냅샷을 식별하는 고유한 24자리 16진수 문자열입니다. snapshotId를 설정하는 경우 oplogInc, oplogTs, pointInTimeUTCMillis 또는 checkpointId는 설정할 수 없습니다.
형식은
^([a-f0-9]{24})$
패턴 과 일치해야 합니다.
atlas api legacyBackup createGroupClusterRestoreJob --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20250312001/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.2025-03-12+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.2025-03-12+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"
}