프라이머리 페일오버 테스트
참고
이 기능은 M0
무료 클러스터, M2
및 M5
클러스터에서는 사용할 수 없습니다. 사용할 수 없는 기능에 대해 자세히 알아보려면 Atlas M0(무료 클러스터), M2 및 M5 제한을 참조하세요.
Atlas는 패치 업데이트, 확장 이벤트와 같은 구성 변경을 수행할 때와 장애가 발생할 때 복제본 세트 투표 를 수행합니다. 애플리케이션은 다운타임 없이 복제본 세트 투표를 처리해야 합니다. 복원력이 뛰어난 애플리케이션을 빌드하는 방법을 알아보려면 MongoDB Atlas로 복원력이 뛰어난 애플리케이션 빌드를 참조하세요.
Atlas URI 연결 문자열에 retryWrites=true 를 추가하여 재시도 가능 쓰기를 활성화할 수 있습니다. 자세한 내용은 재시도 가능 쓰기 항목을 참조하세요.
Atlas UI 및 API를 사용하여 Atlas cluster에서 프라이머리 복제본 세트의 장애를 테스트하고 애플리케이션이 복제본 세트 페일오버를 처리하는 방식을 관찰할 수 있습니다.
필요한 액세스 권한
페일오버 테스트를 시작하려면 프로젝트에 대한 Organization Owner
또는 Project Owner
Organization Owner
액세스 권한이 있어야 합니다.
전제 조건
복제본 세트 프라이머리의 장애를 테스트하기 전에는 다음 조건을 충족해야 합니다.
cluster의 보류 중인 변경 사항이 모두 완료되어야 합니다.
cluster의 모든 멤버는 최신 모니터링 데이터가 있는 정상 상태여야 합니다.
각 복제본 세트 또는 샤드에는 프라이머리 노드가 있어야 합니다.
cluster의 모든 노드는 복제 지연 시간이 10초 미만이어야 합니다.
cluster의 모든 멤버는 사용 가능한 디스크 공간이 5% 이상 남아 있어야 합니다.
모든 프라이머리 노드 조작 로그(oplog)에는 3시간 동안 작동할 수 있는 충분한 공간이 있어야 합니다.
프라이머리 페일오버 프로세스 테스트
중요
프라이머리 페일오버를 테스트하기 전에 Atlas cluster가 정상인지 확인하세요. 그렇지 않으면 Atlas가 귀하의 요청을 거부할 수 있습니다.
프라이머리 페일오버를 테스트하기 위한 요청을 제출하면 Atlas는 페일오버 이벤트를 시뮬레이션합니다. 이 프로세스에서
Atlas는 현재 프라이머리를 종료합니다.
복제본 세트의 멤버는 투표 를 통해 세컨더리 중 어느 것이 새 프라이머리가 될 것인지 선택합니다.
Atlas는 원본 프라이머리를 복제본 세트에 세컨더리로 가져옵니다. 기존 프라이머리가 복제본 세트에 재결합되면 다운타임에 발생한 모든 쓰기를 따라잡기 위해 새 프라이머리와 동기화됩니다.
다음 설명은 롤오버와 샤드 클러스터에서 페일오버를 테스트할 때 Atlas 동작을 설명합니다.
원래의 프라이머리가 프라이머리가 물러날 때 세컨더리에 성공적으로 복제되지 않은 쓰기 작업을 수락한 경우, 프라이머리는 복제본 세트에 다시 합류하고 동기화를 시작할 때 해당 쓰기 작업을 롤백합니다. 자세한 내용은 복제본 세트 페일오버 중 롤백 을 참조하세요. 롤백을 해결하는 데 도움이 필요하면 MongoDB 지원팀 에 문의하세요.
샤드 클러스터에 있는 복제본 세트의 프라이머리 인스턴스와 동일한 인스턴스에 있는
mongos
프로세스만 다시 시작됩니다.샤드 클러스터에 있는 복제본 세트의 프라이머리가 병렬로 재시작됩니다.
페일오버 확인
페일오버에 성공했는지 확인하는 방법:
Atlas UI에 로그인하고 Database을(를) 클릭합니다.
페일오버를 수행한 cluster의 이름을 클릭합니다.
Overview 탭의 노드 목록에서 다음과 같은 변경 사항을 확인하세요.
원래
PRIMARY
노드는 이제SECONDARY
노드입니다.이전
SECONDARY
노드는 이제PRIMARY
노드입니다.
페일오버 문제 해결
애플리케이션이 페일오버를 정상적으로 처리하지 못하는 경우 다음 사항을 확인하세요.
최신 버전의 드라이버를 사용하고 있는지 여부
애플리케이션에서 적절한 재시도 논리를 구현했는지 여부