이 페이지에서는 리전 마이그레이션 또는 재해 복구를 위해 리전 간 읽기 복제본(기본 리전이 아닌 다른 리전에서 생성된 복제본)을 사용하고 승격하는 방법을 설명합니다.
개요
리전 간 복제본을 승격하는 두 가지 일반적인 시나리오는 다음과 같습니다.
- 리전 마이그레이션: 한 데이터베이스를 다른 리전으로 마이그레이션하는 계획된 마이그레이션을 수행합니다.
- 재해 복구: 기본 리전을 사용할 수 없을 때 데이터베이스를 다른 리전으로 장애 조치합니다.
두 사용 사례 모두 리전 간 복제를 설정하고 복제본을 승격합니다. 두 사용 사례의 주요 차이점은 복제본 승격이 계획되었는지(리전 마이그레이션) 또는 계획되지 않았는지(기본 리전을 사용할 수 없기 때문에 작업을 계속하기 위해 복제본의 리전으로 장애 조치가 필요함) 여부입니다.
리전 마이그레이션
리전 간 복제본을 사용하여 데이터베이스를 다른 리전으로 마이그레이션하고 다운타임을 최소화할 수 있습니다. 일반적인 방법은 다른 리전에 복제본을 만들고, 복제가 완료될 때까지 기다린 후 복제본을 승격하고, 클라이언트를 새로 승격된 인스턴스로 연결하는 것입니다.
이러한 승격에 관련된 단계는 리전 내 복제본을 승격할 때와 동일합니다. 이 방법에 따라 새로 승격된 인스턴스에 원래 기본 인스턴스로 커밋되었던 트랜잭션이 모두 포함되었는지 확인합니다. 복제본을 승격하고 새로 승격된 인스턴스가 작동하는 것을 확인한 후에는 새 인스턴스에 연결되도록 모든 데이터베이스 클라이언트를 업데이트합니다.
재해 복구(DR)
리전 간 복제본은 재해 복구 절차의 일부로 사용될 수 있습니다. 기본 인스턴스의 리전을 장시간 사용할 수 없게 되면 다른 리전으로 장애 조치할 수 있도록 리전 간 복제본을 승격할 수 있습니다.
재해 복구에 대한 자세한 내용은 Cloud SQL의 재해 복구 정보를 참조하세요.
고급 재해 복구(DR)
Cloud SQL Enterprise Plus 버전을 사용하는 경우 리전 간 읽기 복제본을 고급 재해 복구(DR)를 위한 재해 복구 복제본(DR 복제본)으로 지정할 수 있습니다. 고급 DR을 사용하면 복제본 장애 조치를 수행하여 기본 인스턴스를 지정된 DR 복제본으로 바꿉니다. 이전 기본 인스턴스는 승격된 DR 복제본의 복제본이 됩니다. 지정된 DR 복제본으로만 복제본 장애 조치를 수행할 수 있습니다. 장애 조치 없이 다른 읽기 복제본을 승격할 수 있습니다.
복제본 장애 조치 후 데이터 손실 없이 배포를 원래 상태로 되돌리려면 전환을 수행하면 됩니다. 이전 기본 인스턴스는 새 기본 인스턴스의 복제본이므로 역할을 다시 전환하여 이전 기본 인스턴스를 복원할 수 있습니다.
자세한 내용은 고급 재해 복구(DR)를 참조하세요. 고급 DR은 미리보기 상태입니다.
장애 조치 기준 확인
복제는 비동기적이므로 리전 서비스 중단이 발생하고 장애 조치를 시도하면 기본 인스턴스에 커밋된 최근 트랜잭션이 손실될 수 있습니다 (복제본에 복제되지 않음). 기본 인스턴스를 사용할 수 없게 될 때마다 다음 단계는 (1) 리전 간 장애 조치에서 손실된 데이터의 양을 확인하는 방법 및 (2) 승격된 복제본에 가능한 한 많은 최근 쓰기를 반영하는 방법을 보여줍니다.
먼저 모니터링 대시보드에서 복제본 인스턴스의 Replication Lag
값을 확인합니다. 이 값은 복제본이 기본 인스턴스보다 얼마나 늦은지를 초 단위로 표시됩니다. 기본 인스턴스가 사용 중지되기 직전 이 측정항목의 값은 기본 인스턴스에 커밋된 트랜잭션이 손실된 기간을 나타냅니다. 예를 들어 Replication Lag
에 5초라고 표시되었다면 복제본은 기본 인스턴스가 사용 중지되기 5초 전부터 기본 인스턴스에 쓰기가 누락되었을 수 있습니다.
복제본에 성공적으로 수신되었지만 아직 적용되지 않은 트랜잭션도 Replication
Lag
에 포함되어 있기 때문에 실제로 손실된 데이터의 양이 이보다 적을 수 있습니다.
그런 다음 복제 상태 페이지의 안내에 따라 MySQL 클라이언트를 사용하여 복제본 인스턴스에 연결합니다(MySQL 클라이언트 탭 참조). Master_Log_File
, Read_Master_Log_Pos
, Relay_Master_Log_File
, Exec_Master_Log_Pos
측정항목과 관련된 안내를 참조하세요. 복제본이 기본 인스턴스에서 수신한 모든 트랜잭션을 처리했는지 확인합니다. 그러면 승격될 때 복제본은 기본 인스턴스가 사용 중지되기 전에 수신된 모든 트랜잭션을 반영합니다.
읽기 복제본 승격
장애 조치 기준이 충족되었는지 확인한 다음 복제본 중 하나를 쓰기 가능한 독립형 인스턴스로 승격할 수 있습니다. 다음 상황을 살펴보세요.
- 리전 A(us-central1)에는 고가용성 기본 인스턴스(db-a-0)가 있습니다.
- 리전 B(us-west1)에는 db-a-0의 고가용성 리전 간 복제본(db-b-1)이 있습니다.
- 리전 C(us-east1)에는 db-a-0의 리전 간 복제본(db-c-1)이 있습니다.
리전 B의 db-b-1을 독립형 쓰기 가능한 인스턴스가 되도록 승격할 수 있습니다.
자세한 내용은 복제본 승격을 참조하세요.
머신 유형이 적절한지 확인
CPU 및 메모리 사용량과 같이 인스턴스의 측정항목을 모니터링하여 새로 승격된 인스턴스의 머신 유형이 워크로드에 적합한지 확인합니다. 새로 승격된 인스턴스가 이전의 기본 인스턴스보다 작으면 승격된 인스턴스의 크기를 이전 기본 인스턴스와 일치하도록 조절하여 동일한 양의 부하를 처리할 수 있도록 하는 것이 좋습니다.
승격된 인스턴스에 고가용성 사용 설정
재해 복구 구성의 경우 고가용성 복제본으로 승격하려는 복제본을 구성하는 것이 좋습니다. 또는 새로 승격된 인스턴스를 고가용성으로 구성합니다. 읽기 복제본을 고가용성으로 구성하도록 선택하지 않은 경우에는 인스턴스를 승격할 때 고가용성으로 인스턴스를 구성할 수도 있습니다.
승격되면 읽기 복제본이 자동으로 백업으로 구성됩니다. 고가용성을 위해 읽기 복제본을 구성하는 작업은 기본 인스턴스와 동일한 방식으로 수행됩니다. 자세한 내용은 고가용성을 위한 인스턴스 구성을 참조하세요.
추가 복제본 다시 만들기
복제본을 기본 인스턴스로 승격하는 경우 이전 기본 인스턴스의 다른 복제본을 다시 만들어야 합니다. 예를 들어 앞에 설명된 다음과 같이 반복되는 구성을 생각해 보세요.
- 리전 A(us-central1)에는 고가용성 기본 인스턴스(db-a-0)가 있습니다.
- 리전 B(us-west1)에는 db-a-0의 리전 간 복제본(db-b-1)이 있습니다.
- 리전 C(us-east1)에는 db-a-0의 리전 간 복제본(db-c-1)이 있습니다.
기본 인스턴스(db-a-0)를 사용할 수 없게 되면 리전 B의 복제본을 기본 복제본으로 승격할 수 있습니다. 리전 A와 리전 C에 추가 복제본을 다시 만들려면 이전 인스턴스(A의 이전 기본 인스턴스 및 C의 복제본)를 삭제하고 B의 새로운 기본 인스턴스에서 새로운 읽기 복제본을 생성합니다.
결과 구성은 다음과 같습니다.
- 이제 리전 A(us-central1)에 리전 간 복제본(db-a-1)이 있습니다.
- 이제 리전 B(us-west1)에 기본 인스턴스(db-b-1)가 있습니다.
- 이제 리전 C(us-east1)에 새로운 리전 간 복제본(db-c-2)이 있습니다.