본문 바로가기

MongoDB2

MongoDB Oplog 크기 변경하기 MongoDB 복제 구성에서 Primary로부터 발생한 변경사항을 다른 Secondary 멤버에 복제하기 위해 Oplog라는 Capped Collection을 사용한다. Capped Collection은 크기가 제한 된 Collection이다. 예를 들어 10GB의 Capped Collection을 생성하면 10GB를 넘어서는 순간 가장 오래된 데이터를 삭제하는 FIFO 구조의 Collection이다. MongoDB의 상태가 정상일 때는 oplog를 통해 금방 복제를 따라간다. 그래서 Oplog의 Capped 크기가 상관없을 것 같지만, 운영 환경에서 의외로 여러가지 이유에 의해 크기를 조절해줘야한다. 몇 가지 예를 들어보면 서버 점검이 오래 걸려서 다시 정상으로 돌아왔을 때, initial sync가 .. 2023. 5. 8.
MongoDB Primary Member 선출을 못할 때 복구하는 방법 Replica Set은 과반수의 멤버가 정상일 때, Primary role을 갖는 Member를 선출할 수 있다. 즉, 과반수를 채우지 못하면 Write는 불가능하고 Read만 가능한 상태가 된다. 위의 예시처럼 3개중 1개 멤버가 죽었을 때는 문제가 없지만, 2개의 멤버가 죽으면 Primary Role이 없다. 또한 과반수는 Voting 멤버를 기준으로한다. 4개의 멤버를 기준으로 했을 때 과반수는 3개이다. 하지만, MongoDB의 선출 알고리즘은 voting member를 기준으로하기 때문에 Replica Set 구성이 4개이더라도 3개 멤버에서만 선출작업을 진행한다. 그래서 위의 이미지처럼 voting멤버 3개 중 과반수인 2개 멤버만 살아 있다면 Primary를 선출한다. 참고로 MongoDB는.. 2023. 5. 5.