without haste but without rest

몽고디비 레플리카 셋에서 primary 노드 유연하게 변경하기 본문

Database/MongoDB

몽고디비 레플리카 셋에서 primary 노드 유연하게 변경하기

JinungKim 2021. 5. 11. 17:09

    업무 중 레플리카 셋의 primary 노드의 dns가 변경되어야 하는 이슈가 있었다. 아무래도 dns기준으로 인프라를 구축할 때가 많아서 ip가 아닌 dns가 변경되면 분산 디비 운영하는 입장에서 난감하다..

 

    몽고 디비는 어떻게 처리를 해야할까 고민을 하다가 다음과 같이 처리했다. dns가 변경된 몽고 디비를 A라고 하겠다.

1. A를 primary에서 secondary로 변경 / rs.stepDown()

2. 변경된 primary에서 A를 제거 rs.remove("A:27017")

3. A 재시작 

4. 변경된 primary에서 A를 추가 rs.add("A:27017")

5. 변경되어있는 primeary에서 rs.stepDown()

6. A가 Primary 가 될 때까지 반복..

 

    세컨더리 노드를 지정해서 프라미어리로 변경하는 방법이 있긴 할텐데.. rs 셋 멤버가 셋 밖에 없어서 위 방법으로 종료했다.

 

 

Comments