이 페이지에서는 백업에서 인스턴스를 복원하고 인스턴스의 point-in-time recovery를 수행하는 방법을 설명합니다.
복원 작업 또는 point-in-time recovery에 대한 정보, 권장사항, 요구사항은 인스턴스 복원 개요 를 참조하세요.
를 참조하세요.
백업에서 인스턴스 복원
백업을 사용하여 해당 백업을 가져온 인스턴스를 복원하거나 동일한 프로젝트 내의 다른 인스턴스를 복원할 수 있습니다.
다른 인스턴스로 복원
백업에서 다른 인스턴스로 복원할 경우, 대상 인스턴스의 데이터를 백업을 가져왔을 때 소스 인스턴스의 상태로 업데이트합니다. 자세한 내용은 복원 실행에 관한 일반적인 팁 과 다른 인스턴스로 복원할 때의 팁 및 요구사항 을 참조하세요.
프로젝트의 백업 목록이 필요하며 서비스 중단으로 인해 인스턴스 개요 페이지에서 백업을 볼 수 없는 경우 와일드 카드(-
)와 함께 backupRuns.list
API를 사용합니다. 와일드 카드 옵션은 프로젝트의 모든 인스턴스에서 모든 백업 목록을 검색합니다. 자세한 내용은 서비스 중단 시 백업 보기 를 참조하세요.
경고: 복원 프로세스에서는 이전 point-in-time recovery 로그를 포함하여 인스턴스의 현재 데이터를 모두 덮어씁니다.
덮어쓴 데이터는 복구할 수 없습니다.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
대상 인스턴스에 읽기 복제본이 있는 경우 맨 오른쪽에 있는 추가 작업 메뉴( )를 사용하여 해당 복제본을 삭제합니다.
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
복원하려는 백업을 찾고 복원 을 선택합니다.
백업에서 인스턴스 복원 페이지의 백업 세부정보 검토 에서 올바른 백업을 선택했는지 확인합니다.
복원 대상 선택 에서 기존 인스턴스 덮어쓰기 를 선택합니다.
인스턴스 드롭다운 메뉴에서 복원에 사용할 인스턴스를 선택합니다. 선택한 인스턴스와 모든 데이터를 덮어씁니다.
선택을 확인하려면 대상 인스턴스 ID 필드에 덮어쓸 인스턴스의 이름을 입력합니다.
복원 프로세스를 시작하려면 복원 을 클릭합니다.
대상 인스턴스의 작업 탭으로 이동하여 복원 작업 상태를 확인합니다.
복원이 완료된 후 앞에서 삭제한 복제본을 다시 만듭니다.
gcloud
대상 인스턴스를 설명하여 인스턴스에 복제본이 있는지 확인합니다.
gcloud sql instances describe TARGET_INSTANCE_NAME
replicaNames
에 나열된 모든 인스턴스를 기록합니다.
모든 복제본을 삭제합니다.
gcloud sql instances delete REPLICA_NAME
이 과정을 각 복제본에 반복합니다.
소스 인스턴스 백업을 나열합니다.
gcloud sql backups list \
--instance SOURCE_INSTANCE_NAME
사용하려는 백업을 찾아서 해당 백업의 ID
값을 기록합니다.
참고: SUCCESSFUL
이라고 표시된 백업을 선택합니다.
지정한 백업에서 대상 인스턴스로 복원합니다.
gcloud sql backups restore BACKUP_ID \
--restore-instance=TARGET_INSTANCE_NAME \
--backup-instance=SOURCE_INSTANCE_NAME
복원이 완료된 후 앞에서 삭제한 복제본을 다시 만듭니다.
REST v1
대상 인스턴스의 모든 복제본을 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"replicaNames": [
"replica-name "
]
}
모든 복제본을 삭제합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
replica-id : 복제본 ID
HTTP 메서드 및 URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id "
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id " | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
이 과정을 각 복제본에 반복합니다.
소스 인스턴스의 백업을 나열하여 사용하려는 백업의 ID를 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
-또는-
인스턴스가 서비스 중단이 발생한 리전에 있으면 프로젝트의 모든 백업을 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID 또는 프로젝트의 모든 백업 목록에 대한 -
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
"backupKind": "SNAPSHOT"
}
복원해야 하는 인스턴스의 백업을 찾습니다.
백업에서 대상 인스턴스를 복원합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
target-instance-id : 대상 인스턴스 ID
source-instance-id : 소스 인스턴스 ID
backup-id : 백업 ID
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup
JSON 요청 본문:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"instanceId": "source-instance-id "
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
복원이 완료된 후 앞에서 삭제한 복제본을 다시 만듭니다.
REST v1beta4
대상 인스턴스의 모든 복제본을 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"replicaNames": [
"replica-name "
]
}
모든 복제본을 삭제합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
replica-id : 복제본 ID
HTTP 메서드 및 URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id "
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id " | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
이 과정을 각 복제본에 반복합니다.
소스 인스턴스의 백업을 나열하여 사용하려는 백업의 ID를 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
백업에서 대상 인스턴스를 복원합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
target-instance-id : 대상 인스턴스 ID
source-instance-id : 소스 인스턴스 ID
backup-id : 백업 ID
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup
JSON 요청 본문:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"instanceId": "source-instance-id "
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
복원이 완료된 후 앞에서 삭제한 복제본을 다시 만듭니다.
동일한 인스턴스로 복원
백업에서 동일한 인스턴스로 복원할 경우 해당 인스턴스의 데이터를 백업을 가져올 때의 상태로 되돌립니다. 인스턴스를 복원하는 방법에 대한 자세한 내용은 복원 수행에 관한 일반적인 팁 을 참조하세요.
경고: 복원 프로세스에서는 이전 point-in-time recovery 로그를 포함하여 인스턴스의 현재 데이터를 모두 덮어씁니다. 덮어쓴 데이터는 복구될 수 없습니다. 이 복원 프로세스는 프로덕션에 권장되지 않습니다.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
대상 인스턴스에 읽기 복제본이 있는 경우 맨 오른쪽에 있는 추가 작업 메뉴( )를 사용하여 해당 복제본을 삭제합니다.
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
사용할 백업을 찾고 복원 을 선택합니다.
백업에서 인스턴스 복원 페이지의 백업 세부정보 검토 에서 올바른 백업을 선택했는지 확인합니다.
복원 대상 선택 에서 소스 인스턴스 덮어쓰기 를 선택합니다.
괄호 안에 소스 인스턴스 이름이 지정되었는지 확인합니다.
선택을 확인하려면 대상 인스턴스 ID 필드에 인스턴스 이름을 입력합니다.
복원 프로세스를 시작하려면 복원 을 클릭합니다.
인스턴스의 작업 페이지로 이동하여 복원 작업 상태를 확인합니다.
복원 작업이 완료되면 첫 번째 단계에서 삭제한 복제본을 다시 만듭니다.
gcloud
인스턴스를 설명하여 인스턴스에 복제본이 있는지 확인합니다.
gcloud sql instances describe INSTANCE_NAME
replicaNames
에 나열된 모든 인스턴스를 기록합니다.
모든 복제본을 삭제합니다.
gcloud sql instances delete REPLICA_NAME
이 과정을 모든 복제본에 반복합니다.
인스턴스 백업을 나열합니다.
gcloud sql backups list --instance INSTANCE_NAME
사용하려는 백업을 찾아서 해당 백업의 ID
값을 기록합니다.
참고: SUCCESSFUL
이라고 표시된 백업을 선택합니다.
지정한 백업에서 인스턴스를 복원합니다.
gcloud sql backups restore BACKUP_ID \
--restore-instance=INSTANCE_NAME
복원 작업이 완료된 후 첫 번째 단계에서 삭제한 복제본을 다시 만듭니다.
REST v1
인스턴스의 모든 복제본을 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"replicaNames": [
"replica-name "
]
}
모든 복제본을 삭제합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
replica-id : 복제본 ID
HTTP 메서드 및 URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id "
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id " | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
이 과정을 각 읽기 복제본에 반복합니다.
인스턴스의 백업을 나열하여 사용하려는 백업의 ID를 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
백업에서 인스턴스를 복원합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
backup-id : 백업 ID
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup
JSON 요청 본문:
{
"restoreBackupContext":
{
"backupRunId": "backup-id ",
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup"
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
복원이 완료된 후 앞에서 삭제한 복제본을 다시 만듭니다.
REST v1beta4
인스턴스의 모든 복제본을 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"replicaNames": [
"replica-name "
]
}
모든 복제본을 삭제합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
replica-id : 복제본 ID
HTTP 메서드 및 URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id "
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id " | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
이 과정을 각 읽기 복제본에 반복합니다.
인스턴스의 백업을 나열하여 사용하려는 백업의 ID를 확인합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
백업에서 인스턴스를 복원합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
backup-id : 백업 ID
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup
JSON 요청 본문:
{
"restoreBackupContext":
{
"backupRunId": "backup-id ",
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup"
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
복원이 완료된 후 앞에서 삭제한 복제본을 다시 만듭니다.
다른 프로젝트의 인스턴스로 복원
project
매개변수를 사용하여 백업을 수행한 프로젝트와 다른 프로젝트의 인스턴스로 데이터를 복원할 수 있습니다. project
매개변수를 사용할 경우 데이터를 복원하려는 프로젝트 및 인스턴스에서 restoreBackup
을 호출합니다. 백업에서 다른 인스턴스로 복원할 경우, 대상 인스턴스의 데이터를 백업을 가져왔을 때 소스 인스턴스의 상태로 업데이트합니다.
권한
다른 프로젝트로 복원하는 사용자는 대상 프로젝트에 대한 cloudsql.instances.restoreBackup
권한과 소스 인스턴스에 대한 cloudsql.backupRuns.get
권한이 있어야 합니다.
이러한 권한은 Cloud SQL Admin
역할에 포함되어 있습니다.
경고: 복원 프로세스에서는 이전 point-in-time recovery 로그를 포함하여 인스턴스의 현재 데이터를 모두 덮어씁니다.
덮어쓴 데이터는 복구할 수 없습니다.
다른 프로젝트의 인스턴스로 데이터를 복원하려면 다음 안내를 따르세요.
REST v1
backupId
를 가져오려면 다음을 실행합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
백업을 다른 프로젝트의 인스턴스로 복원합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
source-project-id : 소스 프로젝트 ID
target-project-id : 대상 프로젝트 ID
target-instance-id : 대상 인스턴스 ID
source-instance-id : 소스 인스턴스 ID
backup-id : 백업 ID
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup
JSON 요청 본문:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"project": "source-project-id ",
"instanceId": "source-instance-id "
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_VOLUME",
"name": "operation-id ",
"targetId": "target-instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id /operations/operation-id ",
"targetProject": "target-project-id "
}
project
속성에 대한 자세한 내용은 restoreBackup 을 참조하세요.
REST v1beta4
backupId
를 가져오려면 다음을 실행합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
백업을 다른 프로젝트의 인스턴스로 복원합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
source-project-id : 소스 프로젝트 ID
target-project-id : 대상 프로젝트 ID
target-instance-id : 대상 인스턴스 ID
source-instance-id : 소스 인스턴스 ID
backup-id : 백업 ID
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup
JSON 요청 본문:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"project": "source-project-id ",
"instanceId": "source-instance-id "
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_VOLUME",
"name": "operation-id ",
"targetId": "target-instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /operations/operation-id ",
"targetProject": "target-project-id "
}
project
속성에 대한 자세한 내용은 restoreBackup 을 참조하세요.
PITR(point-in-time recovery) 수행하기
point-in-time recovery를 수행하려면 point-in-time recovery 를 참조하세요.
복구 위치 식별
point-in-time recovery를 수행하려면 인스턴스를 복구하려는 특정 시점에 해당하는 바이너리 로그 파일 이름과 위치를 확인해 두어야 합니다.
이 작업을 수행하려면 복구 위치 확인하기 를 참조하세요.
다음 단계