백업 보관소에서 Cloud SQL 인스턴스 복원

이 문서에서는 Backup Vault에서 Cloud SQL 인스턴스를 복원하는 방법을 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 보여줍니다. 새 인스턴스 또는 기존 인스턴스로 복원하거나, 소스 인스턴스를 덮어쓰거나, PITR (point-in-time recovery)을 수행하는 방법을 설명합니다.

백업 및 DR 서비스 개념적 기능에 대한 자세한 내용은 백업 및 DR 서비스 개요를 참조하세요. 먼저 데이터베이스를 백업하려면 Backup Vault에 Cloud SQL 인스턴스 백업을 참조하세요.

재해 복구 및 복원력

백업 및 DR 서비스는 Cloud SQL 인스턴스에 재해 복구 옵션을 제공합니다. Backup Vault에 저장된 백업은 소스 인스턴스의 수명 주기 및 프로젝트와 독립적입니다.

  • 프로젝트 삭제: 소스 Cloud SQL 인스턴스가 포함된 원래 워크로드 프로젝트가 삭제된 경우에도 백업을 복원할 수 있습니다. 이는 CMEK로 암호화된 백업에 필요한 복호화 권한이 워크로드 프로젝트가 아닌 Backup Vault의 프로젝트 내 백업 및 DR 서비스 에이전트에 부여되기 때문입니다. 이렇게 하면 Backup Vault와 Cloud Key Management Service 키가 손상되지 않고 서비스 에이전트에 권한이 있는 한 백업에 계속 액세스하고 백업을 복원할 수 있습니다.

  • 유연한 복원 대상: 동일한 프로젝트 또는 다른 프로젝트의 새 인스턴스로 복원하여 복구 시나리오에서 유연성을 제공할 수 있습니다.

시작하기 전에

Backup Vault에서 Cloud SQL 인스턴스를 복원하기 전에 필요한 역할이 있는지 확인하세요.

Backup Vault에서 Cloud SQL 인스턴스를 복원하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 복원 대상을 만들려면: Cloud SQL 관리자 (roles/cloudsql.admin) 대상 인스턴스가 있는 프로젝트의
  • Vault에서 백업을 읽으려면: 백업 및 DR 복원 사용자 (roles/backupdr.restoreUser) 소스 백업이 있는 프로젝트의

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 Backup Vault에서 Cloud SQL 인스턴스를 복원하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

Backup Vault에서 Cloud SQL 인스턴스를 복원하려면 다음 권한이 필요합니다.

  • 복원 대상을 만들려면: cloudsql.instances.restore
  • Vault에서 백업을 읽으려면: backupdr.bvbackups.useReadOnlyForCloudSqlInstance

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

최신 백업에서 Cloud SQL 인스턴스 복원

다음 안내에 따라 Cloud SQL 인스턴스를 복원합니다.

콘솔

  1. 콘솔에서 Vaulted backups 페이지로 이동합니다. Google Cloud

    Vaulted backups로 이동

    Vaulted backups 페이지에는 백업 계획이 적용되고 해당 프로젝트 내의 Backup Vault에 백업이 저장된 데이터 리소스만 나열됩니다.

  2. 복원할 백업을 선택합니다. 백업의 백업 세부정보 페이지 또는 메뉴에서 복원 을 선택합니다.

    복원 페이지 에는 다음 복원 옵션을 선택하는 위치가 표시됩니다.

    • 리소스 유형Cloud SQL로 미리 채워져 있습니다.

    • 리소스 이름에서 복원할 Cloud SQL 인스턴스를 선택합니다.

    • 백업을 클릭하면 사용 가능한 모든 백업을 보여주는 창이 열립니다. 복원할 특정 백업을 선택합니다.

    • 복원 대상 선택에서 Cloud SQL 인스턴스를 복원할 프로젝트를 선택합니다.

  3. 계속 을 클릭합니다.

  4. 복원 대상 선택 메시지가 표시되면 다음 옵션 중에서 선택합니다.

    • 새 인스턴스로 복원: 백업에 저장된 구성을 기반으로 새 인스턴스를 만듭니다. 복원이 완료된 후 인스턴스를 맞춤설정할 수 있습니다. 소문자, 숫자, 하이픈을 사용하여 새 인스턴스 ID 를 제공합니다. 문자로 시작해야 합니다.
    • 기존 인스턴스 덮어쓰기: 사용 가능한 인스턴스 목록에서 덮어쓸 기존 인스턴스를 선택합니다.

    • 소스 인스턴스 덮어쓰기: 현재 인스턴스를 덮어씁니다. 이전 PITR(point-in-time recovery) 로그를 포함해 선택한 인스턴스의 현재 데이터를 모두 덮어쓰게 됩니다. 덮어쓴 데이터는 나중에 복구할 수 없습니다. 프로덕션용으로 권장되지 않습니다.

gcloud

  1. 복원할 백업이 포함된 데이터 소스를 찾습니다. Cloud SQL 인스턴스 프로젝트 또는 Backup Vault 프로젝트에서 데이터 소스를 찾을 수 있습니다.

    • Cloud SQL 인스턴스 프로젝트에서: data-source-reference 사용

      gcloud alpha backup-dr data-source-references fetch-for-resource-type sqladmin.googleapis.com/Instance \
      --location=LOCATION \
      --project=CSQL_INSTANCE_PROJECT_ID \
      --filter='dataSourceGcpResourceInfo.cloudSqlInstanceProperties.name="projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID"' \
      --format="table(RESOURCE_NAME,DATA_SOURCE)"
      

      다음을 바꿉니다.

      • LOCATION: Backup Vault 위치

      • CSQL_INSTANCE_ID: Cloud SQL 인스턴스의 데이터베이스 이름

      • CSQL_INSTANCE_PROJECT_ID: Cloud SQL 인스턴스가 포함된 프로젝트

    • Backup Vault 프로젝트에서: data-source 사용

      gcloud backup-dr data-sources list \
      --location=LOCATION \
      --project=BACKUP_VAULT_PROJECT_ID \
      --filter='dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name=projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID' \
      --format="table(dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name:label=RESOURCE_NAME,name:label=DATA_SOURCE)"
      

      다음을 바꿉니다.

      • LOCATION: Backup Vault 위치

      • CSQL_INSTANCE_ID: Cloud SQL 인스턴스 이름

      • CSQL_INSTANCE_PROJECT_ID: Cloud SQL 인스턴스가 포함된 프로젝트

      • BACKUP_VAULT_PROJECT_ID: Backup Vault가 포함된 프로젝트

  2. gcloud backup-dr backups list 명령어를 사용하여 데이터 소스의 모든 백업을 나열하여 복원할 백업을 나열하고 선택합니다.

    gcloud backup-dr backups list --data-source=DATA_SOURCE \
    --format="table(consistencyTime,backupType,name:label=BACKUP_NAME)"
    
  3. gcloud sql backups restore 명령어를 사용하여 Cloud SQL 인스턴스를 복원합니다.

    gcloud sql backups restore BACKUP_NAME \
    --restore-instance=RESTORE_INSTANCE \
    --project=RESTORE_PROJECT
    --region=RESTORE_REGION
    

    다음을 바꿉니다.

    • BACKUP_NAME: 데이터를 복원할 Backup Vault 이름

    • RESTORE_INSTANCE: 대상 Cloud SQL 인스턴스 이름

    • RESTORE_PROJECT: Cloud SQL 인스턴스를 복원할 프로젝트

    • RESTORE_REGION: 새 Cloud SQL 인스턴스를 복원할 리전 리전 백업의 경우 선택사항입니다. 기존 인스턴스로 복원할 때는 사용하지 마세요.

  4. 선택사항: 다른 속성을 재정의하려면 백업 및 DR 서비스 Google Cloud CLI 명령어 개요를 참조하세요.

다른 시점으로 Cloud SQL 인스턴스 복원

다음 안내에 따라 Cloud SQL 인스턴스를 특정 시점으로 복원합니다. 특정 시점으로 복원하면 Cloud SQL 클론이 생성됩니다.

  1. 콘솔에서 Vaulted backups 페이지로 이동합니다. Google Cloud

    Vaulted backups로 이동

  2. 표 상단에서 표 필터링 을 선택한 후 리소스 유형 을 클릭합니다. Cloud SQL 을 선택합니다. 이렇게 하면 백업 계획이 적용되고 프로젝트 내의 Backup Vault에 백업이 저장된 Cloud SQL 인스턴스만 표시됩니다.

  3. 특정 시점에서 복원 을 클릭합니다. Cloud SQL 클론 만들기 페이지가 열립니다.

  4. Backup Vault를 사용하여 PITR 수행의 절차를 따릅니다.

다음 단계

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.