point-in-time recovery(PITR) 사용

이 페이지에서는 클러스터를 최근 이전 상태로 복원하는 방법을 설명합니다. 대규모 데이터 손실에서 빠르게 복구하려면 특정 시점의 데이터를 PostgreSQL용 AlloyDB 클러스터에 복원하는 것이 좋습니다.

시작하기 전에

  • 사용 중인 Google Cloud 프로젝트에 AlloyDB에 액세스할 수 있는 권한이 사용 설정되어 있어야 합니다.
  • 사용 중인 Google Cloud 프로젝트에 다음 IAM 역할 중 하나가 있어야 합니다.
    • roles/alloydb.admin (AlloyDB 관리자가 사전 정의한 IAM 역할)
    • roles/owner(소유자 기본 IAM 역할)
    • roles/editor(편집자 기본 IAM 역할)

    이러한 역할이 없는 경우 조직 관리자에게 문의하여 액세스 권한을 요청하세요.

  • 사용 중인 Google Cloud 프로젝트에 다음 IAM 역할이 모두 있어야 합니다.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • compute.globalAddresses.create
    • compute.globalAddresses.list
    • servicenetworking.services.addPeering

    최소 권한 원칙을 준수하면서 이러한 권한을 얻으려면 관리자에게 roles/alloydb.admin(AlloyDB 관리자 사전 정의된 IAM) 역할을 부여해 달라고 요청하세요.

최근 시점 복원

AlloyDB를 사용하면 특정 최근 범위 내의 모든 시점부터 활성 클러스터의 데이터를 완전히 복원할 수 있습니다.

사용 가능한 PITR 기간

다음 두 시점 중 더 최근의 시점 이후의 시점부터 복원할 수 있습니다.

  • 복구 기간 제한으로 표시되는 순간입니다. 예를 들어 복구 기간이 14일인 경우 이 순간은 14일 전입니다.

  • 연속 백업을 마지막으로 사용 설정한 이후에 생성된 가장 오래된 백업의 생성 시간입니다. 지속적인 백업을 사용 설정한 상태에서 클러스터를 만들고 그 이후로 지속적인 백업을 사용 중지하지 않은 경우 이 시점이 클러스터의 가장 오래된 백업 생성 시간이 됩니다.

연속 백업을 사용 중지했다가 나중에 다시 사용 설정하면 나 또는 AlloyDB에서 클러스터의 첫 번째 새 백업을 만들 때까지 point-in-time recovery를 실행할 수 없습니다. 주문형 백업일 수도 있고, 지속적 백업을 사용 설정한 후 AlloyDB에서 수행하는 일일 백업 중 첫 번째 백업일 수도 있습니다. 백업 유형에 관한 자세한 내용은 데이터 백업 및 복원 개요를 참고하세요.

특정 시점 복원 수행

  1. Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 복원을 실행합니다.

    콘솔

    1. 클러스터 페이지로 이동합니다.

      클러스터로 이동

    2. 리소스 이름 열에서 클러스터를 클릭합니다.

    3. 데이터 보호를 클릭합니다.

    4. 특정 시점으로 복원에서 복원을 클릭합니다.

    5. 타겟 시간 필드에 복원할 날짜와 시간을 입력합니다.

    6. 클러스터 ID 필드에 새 클러스터의 이름을 입력합니다.

    7. 네트워크 필드에서 새 클러스터에서 사용할 Virtual Private Cloud 네트워크를 선택합니다.

    8. 기본 Google 관리 암호화 대신 고객 관리 암호화 키(CMEK)를 사용하여 이 클러스터의 연속 백업 및 데이터 변경 로그를 암호화하려면 다음 추가 단계를 따르세요.

      1. 고급 암호화 옵션을 클릭합니다.

      2. 고객 관리 암호화 키 (CMEK) 라디오 버튼을 클릭합니다.

      3. 고객 관리 키 선택 목록을 클릭하고 키를 선택합니다.

    9. 복원을 클릭합니다.

    gcloud

    gcloud alloydb clusters restore 명령어를 사용하여 클러스터와 타임스탬프를 지정합니다. 백업에서 복원과 달리 특정 시점 복원에는 원래 클러스터가 여전히 존재해야 합니다. 삭제된 클러스터에는 이러한 유형의 복원을 실행할 수 없습니다.

    gcloud alloydb clusters restore NEW_CLUSTER \
      --source-cluster=SOURCE_CLUSTER \
      --point-in-time=TIMESTAMP \
      --region=REGION

    이 명령어는 작업을 반환하며, 이 작업의 상태는 gcloud alloydb operations describe 명령어를 사용하여 쿼리할 수 있습니다.

    gcloud alloydb operations describe OPERATION_ID \
      --region=REGION

    다음을 바꿉니다.

    • NEW_CLUSTER: 새 클러스터에 사용할 ID입니다.

    • SOURCE_CLUSTER: 데이터를 복구할 클러스터의 ID입니다.
      다른 프로젝트의 클러스터에서 복원하려면 다음 형식의 전체 클러스터 경로로 바꿉니다.
      projects/SOURCE_PROJECT/locations/SOURCE_REGION/clusters/SOURCE_CLUSTER

    • TIMESTAMP: 데이터를 복구할 시점의 설명으로, RFC 3339 형식으로 표현됩니다(예: 2012-11-15T16:19:00.094Z). 마이크로초만큼 작은 초의 소수점을 지정할 수 있습니다.

      이 타임스탬프는 클러스터를 만들 때 지정한 보관 기간 내에 있어야 합니다.

    • REGION: 소스 클러스터가 포함된 리전으로, AlloyDB에서 새 클러스터를 만듭니다. 예를 들면 us-central1입니다.

    • PROJECT_ID: 새 클러스터가 있는 프로젝트의 ID입니다.

    Google 관리 암호화 대신 고객 관리 암호화 키(CMEK)로 새 클러스터의 데이터를 암호화하려면 다음과 같은 추가 인수를 제공해야 합니다.

    • --kms-key=KEY_ID: 사용할 CMEK 키의 ID입니다. * --kms-keyring=KEYRING_ID: 키의 키링 ID입니다. * --kms-location=LOCATION_ID: 키링의 리전 ID입니다. 클러스터의 리전과 일치해야 합니다.
    • --kms-project=PROJECT_ID: 키링 프로젝트의 ID입니다.

    Private Service Connect가 사용 설정된 클러스터를 복원하려면 --enable-private-service-connect 플래그를 추가해야 합니다.

  2. AlloyDB에서 클러스터 생성을 완료하면 클러스터의 기본 인스턴스를 만듭니다. 이 인스턴스를 통해 복원된 데이터에 액세스할 수 있습니다. 새 인스턴스의 구성은 원래 기본 인스턴스의 구성과 정확하게 일치하지 않아도 됩니다.

  3. 선택사항: 읽기 풀 인스턴스를 만듭니다.

복원 작업이 완료되면 클러스터를 사용할 수 있습니다.

다음 단계