다음을 통해 공유


Azure DocumentDB의 고가용성

HA(지역 내 고가용성)는 클러스터에 있는 모든 분할된 데이터베이스의 대기 복제본을 유지 관리하여 데이터베이스 가동 중지 시간을 방지합니다. 어떤 이유로든 샤드가 응답하지 않게 되면 Azure DocumentDB는 들어오는 연결을 실패한 샤드에서 대기 중인 샤드로 전환합니다. 장애 조치(failover)가 발생하면 승격된 분할에는 항상 동기 복제를 통한 새 데이터가 있습니다.

클러스터의 모든 주 분할된 데이터베이스는 분할된 데이터베이스 간의 대기 시간을 높이기 위해 하나의 AZ(가용성 영역) 로 프로비전됩니다. 대기 샤드는 다른 가용성 영역으로 프로비전됩니다.

HA를 사용하지 않더라도 각 샤드에는 Azure Storage 서비스에서 유지 관리하는 세 개의 동기 복제본이 있는 자체 로컬 중복 스토리지(LRS)가 있습니다. 세 복제본은 모두 클러스터의 Azure 지역에 있습니다. 단일 복제본 오류가 있는 경우 Azure Storage 서비스는 이를 감지하고 실패한 복제본을 투명하게 다시 만듭니다. LRS 스토리지 내구성 은 이 페이지의 메트릭을 참조하세요.

HA를 활성화하면 Azure DocumentDB는 클러스터의 각 주 샤드에 대해 하나의 대기 샤드를 실행합니다. 각 주 샤드 및 대기 샤드에는 동일한 컴퓨팅 및 스토리지 구성이 있습니다. 주 시스템 및 보조 시스템은 동기 복제를 사용합니다. 이 유형의 복제를 사용하면 항상 클러스터의 기본 및 대기 분할된 데이터베이스에 동일한 데이터를 가질 수 있습니다. 간단히 말해서, 우리 서비스는 주 샤드에서 오류를 감지하고, 데이터 손실 없이 대기 샤드로 장애 조치를 수행합니다.

클러스터 연결 문자열은 장애 조치(failover)에 관계없이 항상 동일하게 유지됩니다. 이를 통해 서비스는 애플리케이션의 요청을 제공하는 실제 분할된 데이터베이스의 변경 내용을 추상화할 수 있습니다.

클러스터에서 지역 내 고가용성을 사용하도록 설정하면 각 클러스터 분할에는 가용성에 대한 99.99% SLA(서비스 수준 계약)가 적용됩니다.

클러스터를 만들 때 고가용성을 사용하도록 설정할 수 있습니다. 또한 기존 Azure DocumentDB 클러스터에서 언제든지 고가용성을 사용하도록 설정하고 사용하지 않도록 설정할 수 있습니다. Azure DocumentDB 클러스터에서 고가용성을 사용하거나 사용하지 않도록 설정한 경우 데이터베이스 가동 중지 시간이 없습니다.

장애 조치(failover) 중에 발생하는 작업

각 샤드 장애 조치는 비가용성 감지, 대기 샤드로의 전환 및 대기 샤드의 재생성의 세 단계로 구성됩니다. 서비스는 주기적인 상태 검사를 수행하여 클러스터의 각 기본 및 대기 분할된 데이터베이스에 대한 지속적인 가용성 모니터링을 수행합니다. 상태 검사에서 분할이 응답하지 않고 실패했다고 선언해야 하는 경우 대기 분할의 실제 장애 조치(failover)(스위치)가 시작됩니다.

전환 단계에서 데이터베이스 읽기 및 쓰기는 대기 샤드로 리디렉션됩니다. 각 주 분할된 데이터베이스와 대기 분할된 데이터베이스 간의 동기 복제는 대기 분할된 데이터베이스가 항상 기본 데이터베이스와 동일한 데이터 집합을 갖도록 합니다. 이렇게 하면 데이터 손실이 0인 모든 장애 조치(failover)를 수행할 수 있습니다. 대기로 전환은 읽기에 대한 가동 중지 시간 없이 수행됩니다. 쓰기 작업을 수행하려면 전환 단계 중에 내부 서비스를 다시 시도해야 할 수 있습니다. 이러한 재시도는 애플리케이션 쪽에서 쓰기 속도 저하로 보일 수 있습니다.

샤드 장애 조치가 완료되면 클러스터가 정상적으로 운영됩니다. 원래 고가용성 구성으로 되돌아가는 마지막 단계는 대기 샤드를 다시 만드는 것입니다. 이 대기 분할된 데이터베이스 다시 생성은 주 분할된 데이터베이스에 가동 중지 시간 또는 성능에 영향을 주지 않고 수행됩니다.