oplog 문제 해결
프라이머리 클러스터 멤버에서 생성된 oplog 데이터의 양이 클러스터의 구성된 oplog 크기보다 클 때 복제 Oplog 알림이 트리거될 수 있습니다.
경고 조건
프로젝트 수준 경고 설정 페이지에서 다음과 같은 경고 조건을 구성하여 경고를 트리거할 수 있습니다.
Replication Oplog Window is (X)
프라이머리 복제 oplog에서 사용 가능한 대략적인 시간이 지정된 임계값을 충족하거나 그 이하로 떨어지는 경우 발생합니다. 이는 oplog 데이터가 생성되는 현재 속도를 고려하여 프라이머리가 로깅을 계속할 수 있는 시간을 나타냅니다.
Oplog Data Per Hour is (X)
프라이머리 서버의 복제 oplog에 기록되는 시간당 데이터 양이 지정된 임계값을 충족하거나 초과하는 경우 발생합니다.
일반적인 트리거
다음은 oplog 활동 증가로 이어질 수 있는 몇 가지 일반적인 이벤트입니다:
짧은 시간 내에 발생한 집중적인 쓰기 및 업데이트 작업.
클러스터의 구성된 oplog 크기가 클러스터 지표 보기에서 관찰된 Oplog GB / Hour 그래프의 값보다 작습니다.
즉각적인 문제 해결
복제 Oplog 경고를 해결하는 데 도움이 되는 몇 가지 작업은 다음과 같습니다.
클러스터 지표 보기 내 Oplog GB / Hour 그래프의 피크 값보다 커지도록 클러스터의 구성을 편집하여 oplog 크기를 늘립니다.
짧은 기간 동안 집중적인 쓰기 및 업데이트 작업이 발생할 것으로 예상되면 oplog 크기를 늘립니다.
참고
클러스터의 스토리지를 늘려서 oplog의 크기를 조정할 수 있는 충분한 공간을 확보해야 합니다.
모든 쓰기 작업이
majority
의 쓰기 고려를 지정하여 다음 쓰기 작업으로 이동하기 전에 쓰기가 하나 이상의 노드에 복제되도록 합니다. 이렇게 하면 프라이머리가 세컨더리가 처리할 수 있는 것보다 더 빨리 쓰기를 수락하지 못하도록 방지하여 애플리케이션의 트래픽 속도를 제어합니다.
장기적인 솔루션 구현
사용 사례에 맞는 oplog
크기 조정 요구 사항에 대한 자세한 내용은 더 큰 oplog 크기가 필요할 수 있는 워크로드를 참조하세요.
진행 상황 모니터링
이러한 알림이 트리거되는 경우 다음과 같은 시나리오가 발생할 수 있습니다:
지표 보기의 Oplog GB / Hour 그래프가 위쪽으로 치솟습니다.
지표 보기의 Replication Oplog Window 그래프가 낮습니다.
Atlas 또는 비정상 노드의 MongoDB 로그를 보고 다운로드 하면 다음 메시지가 표시됩니다.
We are too stale to use <node>:27017 as a sync source. Atlas 노드가 오랜 시간 동안 시작2 및 복구 중 상태를 보고하고 있습니다.
일반적으로 이는 노드가 'oplog'에서 떨어져서 프라이머리 노드에서 생성되는 oplog 데이터를 따라잡을 수 없음을 나타냅니다. 이 경우 노드는 데이터를 복구하고 모든 노드에서 일관성을 유지하기 위해 초기 동기화를 수행해야 합니다.
rs.status()
셸 메서드를 사용하여 노드의 상태를 확인할 수 있습니다.