이 페이지에서는 자동 백업을 예약 및 해제하고, 주문형 백업을 만들고 관리하며, Cloud SQL 인스턴스의 백업을 확인하는 방법을 설명합니다.
백업 작동 방식에 대한 자세한 내용은 백업 개요 를 참조하세요.
주문형 백업 만들기
주문형 백업을 만들려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
백업 만들기 를 클릭합니다.
백업 만들기 페이지에서 필요한 경우 설명을 추가하고 만들기 를 클릭합니다.
gcloud
백업을 만듭니다.
gcloud sql backups create \
--async \
--instance=INSTANCE_NAME
--description
매개변수를 사용하여 백업에 대한 설명을 제공할 수 있습니다.
커스텀 위치에 백업을 만들려면 다음 안내를 따르세요.
gcloud sql backups create \
--async \
--instance=INSTANCE_NAME \
--location=BACKUP_LOCATION
REST v1
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "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 POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | 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": "BACKUP_VOLUME",
"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:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "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 POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | 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": "BACKUP_VOLUME",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
자동 백업 예약
인스턴스의 자동 백업을 예약하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
설정 옆에 있는 수정 을 클릭합니다.
데이터를 자동으로 백업할 기간을 선택합니다.
저장 을 클릭합니다.
gcloud
인스턴스를 수정하여 백업 시작 시간을 지정합니다.
gcloud sql instances patch INSTANCE_NAME --backup-start-time=HH:MM
backup-start-time
매개변수는 UTC±00 시간대에서 24시간 형식으로 지정되고 4시간 백업 기간 시작을 지정합니다. 백업 기간에는 언제든지 백업이 시작될 수 있습니다.
변경사항을 확인합니다.
gcloud sql instances describe INSTANCE_NAME
backupConfiguration
섹션에서 enabled: true
및 지정한 시간이 표시되는지 확인합니다.
데이터베이스의 백업을 만들려면 Terraform 리소스 를 사용합니다.
변경사항 적용
Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.
Cloud Shell 준비
Cloud Shell 을 실행합니다.
Terraform 구성을 적용할 기본 Google Cloud 프로젝트를 설정합니다.
이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.
디렉터리 준비
각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈 이라고도 함)가 있어야 합니다.
Cloud Shell 에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는 .tf
확장자가 있어야 합니다(예: main.tf
). 이 튜토리얼에서는 파일을 main.tf
라고 합니다.
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.
샘플 코드를 새로 만든 main.tf
에 복사합니다.
필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.
환경에 적용할 샘플 매개변수를 검토하고 수정합니다.
변경사항을 저장합니다.
Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
terraform init
원하는 경우 최신 Google 공급업체 버전을 사용하려면 -upgrade
옵션을 포함합니다.
terraform init -upgrade
변경사항 적용
구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
terraform plan
필요에 따라 구성을 수정합니다.
다음 명령어를 실행하고 프롬프트에 yes
를 입력하여 Terraform 구성을 적용합니다.
terraform apply
Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.
결과를 보려면 Google Cloud 프로젝트를 엽니다 . Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.
참고: Terraform 샘플은 일반적으로 필요한 API가 Google Cloud 프로젝트에서 사용 설정되었다고 가정합니다.
변경사항 삭제
변경사항을 삭제하려면 다음 단계를 따르세요.
Terraform 구성 파일에서 삭제 보호를 사용 중지하려면 deletion_protection
인수를 false
로 설정합니다.
deletion_protection = "false"
다음 명령어를 실행하고 프롬프트에 yes
를 입력하여 업데이트된 Terraform 구성을 적용합니다.
terraform apply
다음 명령어를 실행하고 프롬프트에 yes
를 입력하여 이전에 Terraform 구성에 적용된 리소스를 삭제합니다.
terraform destroy
REST v1
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID : 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
INSTANCE_NAME : 고가용성으로 구성하려는 기본 또는 읽기 복제본 인스턴스의 이름
START_TIME : 시간(시간 및 분)
HTTP 메서드 및 URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME
JSON 요청 본문:
{
"settings":
{
"backupConfiguration":
{
"startTime": "START_TIME ",
"enabled": true,
"binaryLogEnabled": true
}
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \ -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_NAME "
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME " | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
backupConfiguration
객체에서 pointInTimeEnabled
를 true
로 설정하여 바이너리 로깅도 함께 사용 설정할 수 있습니다.
REST v1beta4
backupConfiguration
객체에서 binaryLogEnabled
를 true
로 설정하여 바이너리 로깅도 함께 사용 설정할 수 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID : 인스턴스가 포함된 Google Cloud 프로젝트의 ID 또는 프로젝트 번호
INSTANCE_NAME : 고가용성으로 구성하려는 기본 또는 읽기 복제본 인스턴스의 이름
START_TIME : 시간(시간 및 분)
HTTP 메서드 및 URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID /instances/INSTANCE_NAME
JSON 요청 본문:
{
"settings":
{
"backupConfiguration":
{
"startTime": "START_TIME ",
"enabled": true,
"binaryLogEnabled": true
}
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID /instances/INSTANCE_NAME "
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID /instances/INSTANCE_NAME " | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID /instances/INSTANCE_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
참고: 자동 백업이 예약되어 있을 때 주문형 백업이 진행 중이면 자동 백업이 이후 시간으로 다시 예약됩니다. 커스텀 백업 위치 설정
커스텀 백업 위치는 규정에서 요구하는 경우에만 사용합니다. 요구하지 않는 경우 기본 멀티 리전 백업 위치를 사용합니다.
주문형 및 자동 백업에 커스텀 위치를 사용할 수 있습니다. 유효한 위치 값의 전체 목록은 인스턴스 위치 를 참조하세요.
참고: 백업이 저장된 위치를 변경해도 기존 백업은 원래 위치에 유지됩니다.
참고: 백업이 조직 정책에서 허용하지 않는 리전에 있으면 실패합니다. 인스턴스와 동일한 리전에서 수행된 백업은 조직 정책이나 기타 제약조건에 관계없이 항상 성공합니다.
커스텀 위치로 인스턴스를 업데이트하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
설정 옆에 있는 수정 을 클릭합니다.
백업 자동화 섹션에서 고급 옵션 을 확장합니다.
멀티 리전(기본값) 또는 리전 을 클릭합니다.
위치 드롭다운 메뉴에서 위치를 선택합니다.
저장 을 클릭합니다.
REST v1
인스턴스의 settings.backupConfiguration.location
매개변수를 백업 위치에 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
region : 프로젝트 리전
backup-region : 백업 리전
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id
JSON 요청 본문:
{
"region": "region "
"settings":
{
"backupConfiguration":
{
"location": "backup-region ",
"enabled": true,
}
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \ -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 "
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id " | 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": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
인스턴스의 settings.backupConfiguration.location
매개변수를 백업 위치에 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
region : 프로젝트 리전
backup-region : 백업 리전
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
JSON 요청 본문:
{
"region": "region "
"settings":
{
"backupConfiguration":
{
"location": "backup-region ",
"enabled": true,
}
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \ -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 "
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | 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": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
백업 목록 보기
백업 목록과 백업 세부정보를 보려면 다음 옵션을 사용합니다.
Google Cloud 콘솔은 건너뛰거나 실패한 백업을 백업 기록에 표시하지 않습니다. 건너뛴 백업을 보려면 gcloud
또는 API를 사용하세요.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택하여 백업 생성 시간 및 유형과 함께 최근 백업을 봅니다.
gcloud
인스턴스 백업을 나열합니다.
gcloud sql backups list \
--instance INSTANCE_NAME
표준 목록 매개변수를 사용하여 결과를 필터링하고 제어할 수 있습니다.
전체 목록은 gcloud sql backups list 명령어 참조 페이지를 확인하세요.
backups list
명령어 출력에서 백업 ID
를 지정하여 백업 세부정보를 봅니다.
gcloud sql backups describe BACKUP_ID \
--instance INSTANCE_NAME
REST v1
BackupRuns:list 페이지의 API 탐색기 를 사용하여 REST API 요청을 보낼 수도 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
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"
}
REST v1beta4
BackupRuns:list 페이지의 API 탐색기 를 사용하여 REST API 요청을 보낼 수도 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
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"
}
서비스 중단 시 백업 목록 보기
인스턴스가 서비스 중단된 리전에 있는 경우 backupRuns.list
API와 함께 와일드 카드(-
)를 사용하여 해당 인스턴스의 백업만 볼 수 있습니다.
와일드 카드는 프로젝트의 모든 백업을 반환합니다. 다른 인스턴스로 복원 을 참조하세요.
고객 관리 암호화 키(CMEK)가 사용 설정된 인스턴스가 있는 리전이 중단되면 이 인스턴스의 백업을 다른 리전으로 복원할 수 없습니다. 인스턴스에서 CMEK가 사용 설정된 경우 Cloud SQL이 암호화에 리전 Cloud KMS 키 를 사용하기 때문입니다. CMEK 인스턴스의 백업을 복원하려면 Cloud SQL이 CMEK 키에 액세스할 수 있어야 합니다. 리전이 중단되면 리전의 Cloud KMS 키에 액세스할 수 없습니다.
gcloud
프로젝트의 모든 인스턴스에 대한 백업을 나열합니다.
gcloud sql backups list --instance -
이 명령어는 다음과 비슷한 정보를 반환합니다.
{
"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"
}
필요한 인스턴스의 백업을 찾습니다. 이 백업을 복원하려면 다른 인스턴스로 복원 을 참조하세요.
REST v1
프로젝트의 모든 백업을 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
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"
}
필요한 인스턴스의 백업을 찾습니다. 이 백업을 복원하려면 다른 인스턴스로 복원 을 참조하세요.
REST v1beta4
프로젝트의 모든 백업을 나열합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID 또는 프로젝트의 모든 백업 목록에 대한 -
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1beta4/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/v1beta4/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/v1beta4/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/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
"backupKind": "SNAPSHOT"
}
필요한 인스턴스의 백업을 찾습니다. 이 백업을 복원하려면 다른 인스턴스로 복원 을 참조하세요.
백업 위치 보기
인스턴스에 수행된 백업의 위치를 보려면 backupRuns
를 사용합니다.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
백업 목록의 위치 열에 위치 유형(멀티 리전 또는 리전)과 각 백업의 특정 멀티 리전 또는 리전이 나열됩니다.
gcloud
참조 정보는 gcloud sql instances describe 를 참조하세요.
인스턴스 백업을 나열합니다.
gcloud sql backups list \
--instance INSTANCE_NAME
표준 목록 매개변수를 사용하여 결과를 필터링하고 제어할 수 있습니다.
전체 목록은 gcloud sql backups list 명령어 참조 페이지를 확인하세요.
한 백업의 세부정보를 나열하려면 backups list
명령어 출력에서 ID
를 사용합니다.
gcloud sql backups describe BACKUP_ID \
--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 /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 응답이 표시됩니다.
이전 예시에서 각 항목의 의미는 다음과 같습니다.
REGION
은 원래 인스턴스의 리전입니다.
BACKUP_LOCATION
은 Cloud SQL에서 백업을 저장할 위치입니다.
REST v1beta4
요청 데이터를 사용하기 전에 다음을 바꿉니다.
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 응답이 표시됩니다.
이전 예시에서 각 항목의 의미는 다음과 같습니다.
REGION
은 원래 인스턴스의 리전입니다.
BACKUP_LOCATION
은 Cloud SQL에서 백업을 저장할 위치입니다.
자동 백업 보관 설정
보관할 자동 백업 수를 설정하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
수정 을 클릭합니다.
백업 자동화 섹션에서 고급 옵션 을 확장합니다.
한 번에 저장할 백업 수 를 입력합니다.
저장 을 클릭합니다.
gcloud
인스턴스를 수정하여 보관할 자동 백업 수를 설정합니다.
이 숫자는 기본값인 7보다 작을 수 없습니다.
gcloud sql instances patch INSTANCE_NAME \
--retained-backups-count=NUM_TO_RETAIN
REST v1beta4
요청 데이터를 사용하기 전에 다음을 바꿉니다.
unit : 선택사항: 보관 단위는 정수 또는 문자열일 수 있습니다. 현재 지원되는(및 기본값) 값은 1 또는 'COUNT'입니다.
num-to-retain : 1부터 365까지 보관할 자동 백업 수입니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
JSON 요청 본문:
{
"settings":
{
"backupConfiguration":
{
"backupRetentionSettings":
{
"retentionUnit": unit ,
"retainedBackups": "num-to-retain "
}
}
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \ -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 "
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | 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": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
백업 삭제
자동 백업 및 주문형 백업을 삭제할 수 있습니다.
MySQL 인스턴스의 경우 백업을 삭제해도 공간이 백업 크기만큼 확보되지 않을 수 있습니다. 백업이 증분 방식이므로 이전 백업을 삭제하면 최신 백업 무결성이 유지되도록 일부 콘텐츠가 최신 백업으로 전송될 수 있습니다.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
삭제할 백업의 추가 작업 을 클릭합니다.
삭제 를 선택합니다.
백업 삭제 창의 필드에 Delete
를 입력하고 삭제 를 클릭합니다.
gcloud
Cloud SQL 인스턴스의 백업을 삭제합니다.
gcloud beta sql backups delete BACKUP_ID \
--instance INSTANCE_NAME
매개변수 전체 목록은 gcloud beta sql backups delete 명령어 참조 페이지를 확인하세요.
REST v1
백업을 나열하여 삭제할 백업의 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:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-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/instance-id /backupRuns/backup-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/instance-id /backupRuns/backup-id " | 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": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
백업을 나열하여 삭제할 백업의 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:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-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/instance-id /backupRuns/backup-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/instance-id /backupRuns/backup-id " | 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": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
자동 백업 사용 중지
인스턴스의 자동 백업을 사용 중지하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
Cloud SQL 인스턴스로 이동
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
SQL 탐색 메뉴에서 백업 을 선택합니다.
자동 백업 관리 를 클릭합니다.
백업 자동화 를 선택 해제합니다.
저장 후 다시 시작 을 클릭합니다.
gcloud
인스턴스를 편집하여 백업을 사용 중지합니다.
gcloud sql instances patch INSTANCE_NAME \
--no-backup
REST v1
요청 데이터를 사용하기 전에 다음을 바꿉니다.
project-id : 프로젝트 ID
instance-id : 인스턴스 ID
HTTP 메서드 및 URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id
JSON 요청 본문:
{
"settings":
{
"backupConfiguration":
{
"enabled": false,
"binaryLogEnabled": false
}
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \ -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 "
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id " | 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": "UPDATE",
"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:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
JSON 요청 본문:
{
"settings":
{
"backupConfiguration":
{
"enabled": false,
"binaryLogEnabled": false
}
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \ -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 "
PowerShell(Windows)
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | 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": "UPDATE",
"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
point-in-time recovery 자세히 알아보기
다음 단계