고가용성 구성

고가용성 구성의 목적은 데이터베이스 클러스터 인스턴스를 사용할 수 없게 되었을 때 다운타임을 줄이는 것입니다. 이러한 상황은 인스턴스에 메모리가 부족할 때 발생할 수 있습니다. 고가용성을 사용하면 클라이언트 애플리케이션에서 데이터를 계속 사용할 수 있습니다.

사이트 내에서 구성은 기본 인스턴스와 대기 복제본으로 이루어집니다. 기본 인스턴스에 대한 모든 쓰기 작업은 트랜잭션이 커밋된 것으로 보고되기 전에 대기 복제본에 복제됩니다. 인스턴스 장애가 발생하면 대기 복제본이 새 기본 인스턴스가 되도록 요청할 수 있습니다. 그러면 애플리케이션 트래픽이 새 기본 인스턴스로 다시 라우팅됩니다. 이 프로세스를 장애 조치라고 합니다.

언제든지 수동으로 장애 조치를 트리거할 수 있습니다. 장애 조치에는 다음 프로세스가 순서대로 포함됩니다.

  1. GDC가 기본 인스턴스를 오프라인으로 전환합니다.

  2. GDC는 대기 복제본을 새 활성 데이터베이스 클러스터로 전환합니다.

  3. GDC가 이전 활성 데이터베이스 클러스터를 삭제합니다.

  4. GDC에서 새 대기 모드 복제본을 만듭니다.

AlloyDB Omni 및 PostgreSQL 데이터베이스 클러스터의 경우 동일한 영역의 고가용성을 사용 설정하거나 사용 중지할 수 있습니다.

기존 클러스터 업데이트

기존 데이터베이스 클러스터의 고가용성 설정을 업데이트할 수 있습니다.

콘솔

  1. 탐색 메뉴에서 데이터베이스 서비스를 선택합니다.

  2. 데이터베이스 클러스터 목록에서 업데이트할 데이터베이스 클러스터를 클릭합니다.

  3. 고가용성 섹션에서 수정 수정을 선택합니다.

    데이터베이스 클러스터의 고가용성 설정을 수정합니다.

  4. 동일한 영역의 대기 인스턴스 사용 설정을 선택하여 기본 데이터베이스 클러스터와 동일한 영역에 있는 대기 인스턴스의 가용성을 전환합니다.

  5. 저장을 클릭합니다.

  6. 데이터베이스 클러스터 목록의 고가용성 열에서 상태를 확인하여 데이터베이스 클러스터에 고가용성 업데이트가 반영되었는지 확인합니다.

gdcloud

  1. 데이터베이스 클러스터의 고가용성 구성을 업데이트합니다.

    gdcloud database clusters update CLUSTER_NAME \
        --availability-type HA_TYPE
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
    • HA_TYPE: 데이터베이스 클러스터의 고가용성 수준입니다. zonal 또는 zonal_ha를 설정할 수 있습니다. zonal 값은 기본적으로 설정됩니다.
  2. 데이터베이스 클러스터에 고가용성 업데이트가 반영되었는지 확인합니다.

    gdcloud database clusters list
    

API

  1. 데이터베이스 클러스터의 고가용성 구성을 업데이트합니다.

      kubectl patch dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
        -n USER_PROJECT \
        -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \
        --type=merge
    

    다음 변수를 바꿉니다.

    • DBENGINE_NAME: 데이터베이스 엔진의 이름입니다. alloydbomni, postgresql, oracle 중 하나입니다.
    • DBCLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
    • USER_PROJECT: 데이터베이스 클러스터가 생성된 사용자 프로젝트의 이름입니다.
    • HA_ENABLED: 데이터베이스 클러스터의 고가용성 수준입니다. true 또는 false를 설정할 수 있습니다. false 값은 기본적으로 설정됩니다.
  2. 데이터베이스 클러스터에 고가용성 업데이트가 반영되었는지 확인합니다.

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
      -n USER_PROJECT \
      -o yaml
    

장애 조치 트리거

데이터베이스 클러스터에 고가용성을 구성한 경우 장애 조치를 트리거할 수 있습니다. 장애 조치를 트리거하려면 다음 단계를 완료하세요.

콘솔

  1. 탐색 메뉴에서 데이터베이스 서비스를 선택합니다.

  2. 데이터베이스 클러스터 목록에서 장애 조치를 트리거할 데이터베이스 클러스터를 클릭합니다. 장애 조치를 수행하려면 데이터베이스 클러스터에 고가용성이 사용 설정되어 있어야 합니다.

  3. 장애 조치를 클릭합니다.

  4. 확인 문구에 클러스터의 ID를 입력하고 장애 조치를 클릭하여 장애 조치 프로세스를 트리거합니다.

gdcloud

  • 데이터베이스 클러스터의 장애 조치를 트리거합니다.

    gdcloud database clusters failover CLUSTER_NAME
    

    CLUSTER_NAME을 데이터베이스 클러스터 이름으로 바꿉니다.

API

  apiVersion: fleet.dbadmin.gdc.goog/v1
  kind: Failover
  metadata:
    name: FAILOVER_NAME
  spec:
    dbclusterRef: DBCLUSTER_NAME

다음 변수를 바꿉니다.

  • DBCLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
  • FAILOVER_NAME: 장애 조치의 고유 이름입니다(예: failover-sample).