1 つのレガシーバックアップ復元ジョブを作成
非推奨
指定されたプロジェクト内の 1 つのクラスターのレガシーバックアップを 1 件復元します。このリソースを使用するには、リクエスト元のサービス アカウントまたは API キーにプロジェクト オーナー ロールが必要です。2020 年 3 月 23 日以降、すべての新しいクラスターが使用できるのはクラウドバックアップのみです。4.2 にアップグレードすると、バックアップ システムが現在レガシーバックアップに設定されている場合、クラウドバックアップにアップグレードされます。このアップグレード後も、既存のレガシーバックアップ スナップショットはすべて引き続き利用できますが、保持ポリシーに従い、時間の経過とともに期限が切れます。バックアップ ポリシーがデフォルトのスケジュールにリセットされます。レガシーバックアップでカスタム バックアップ ポリシーを設定していた場合は、クラウドバックアップに関するドキュメントに記載されている手順に従ってポリシーを再作成する必要があります。このエンドポイントは、シャーディングされたクラスターのチェックポイント復元ジョブの作成、またはクエリ可能なバックアップ スナップショットの復元ジョブの作成をサポートしていません。リクエスト本文に AUTOMATED_RESTORE
の delivery.methodName
を指定して自動復元ジョブを作成すると、MongoDB Cloud により、復元前にターゲット クラスター上の既存のデータがすべて削除されます。
path パラメータ
-
プロジェクトを識別する一意の 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
です。 -
レスポンス本体を pretty-print 形式にするかどうかを示すフラグ。
デフォルト値は
false
です。Prettyprint
body
必須
指定されたプロジェクト内の 1 つのクラスターに復元するレガシー バックアップ。
-
シャーディングされたクラスターのチェックポイントを識別する、ユニークな 24 桁の 16 進数文字列。チェックポイントは、データを復元する点を表します。このパラメーターは
"delivery.methodName" : "AUTOMATED_RESTORE"
の場合に適用されます。このパラメーターはシャーディングされたクラスターでのみ使用してください。- checkpointId を設定した場合、oplogInc、oplogTs、snapshotId、pointInTimeUTCMillis は設定できません。
- このパラメータを指定すると、このエンドポイントは、このチェックポイントまでのすべてのデータを、delivery オブジェクトで指定したデータベースに復元します。
形式は次のパターンと一致する必要があります:
^([a-f0-9]{24})$
。 -
復元されたスナップショットデータの配信方法を示す方法と詳細。
-
特定の秒内の操作を表す 32 ビットの増分序数。oplogTs と組み合わせると、MongoDB Cloud がデータをリストアする時点を表します。このパラメータは、
"delivery.methodName" : "AUTOMATED_RESTORE"
の場合に適用されます。- oplogInc を設定する場合は、 oplogTs を設定する必要があります。このとき、checkpointId 、 snapshotId 、または pointInTimeUTCMillis を設定することはできません。
- このパラメータを指定すると、このエンドポイントは、Oplog のタイムスタンプで指定された時刻までのすべてのデータを、delivery オブジェクトで指定したデータベースに復元します。
の最小値は
1
です。 -
このスナップショットを復元する日時。このパラメーターは、UTC の ISO 8601 期間形式で値を表します。これは Oplog タイムスタンプの最初の部分を表します。oplogInc と組み合わせると、データを復元する最後のデータベース操作を表します。このパラメータは、
"delivery.methodName" : "AUTOMATED_RESTORE"
場合に適用されます。レプリカセットの local.oplog.rs に対してクエリを実行し、目的のタイムスタンプを見つけます。- oplogTs を設定する場合は、oplogInc を設定する必要があります。このとき、checkpointId 、 snapshotId 、または pointInTimeUTCMillis を設定することはできません。
- このパラメータを指定すると、このエンドポイントは、Oplog のタイムスタンプで指定された時刻までのすべてのデータを、delivery オブジェクトで指定したデータベースに復元します。
形式は次のパターンと一致する必要があります:
^(?:[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"
の場合に適用されます。- このパラメータを指定すると、このエンドポイントはその時点までのすべてのデータを、delivery オブジェクトで指定したデータベースに復元します。
- 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/v20250219001/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-02-19+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-02-19+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"
}