호스트 및 MongoDB 인스턴스에 대한 예기치 못한 문제로 인하여 프로세스가 down되는 등 장애 상황이 발생하거나 데이터 유실이 발생 함
이를 대비하기 위해 여러 다른 종류의 DBMS와 비슷하게 MongoDB 또한 복제 구성을 통한 DB HA(High Availability) 사용 해야 함
이렇게 복제 구성된 그룹은 Replica Set이라 하며, 나아가 다수의 Replica Set을 함께 구성하여 쿼리의 분산 처리와 Scale out에 유리하게 구성한 형태를 Sharded Cluster 라고 부름
https://docs.mongodb.com/manual/replication/
(from ncloud MongoDB Cluster)
[중요] replica set 구성은 “security: enable” 상태에서는 설정되지 않는다 → 나중에 key로 대체
# /etc/mongod.conf replication: replSetName: "mobidicSet"
sudo systemctl stop mongod sudo systemctl start mongod sudo systemctl status mongod
TIPS
[몽고db 클러스터끼리 통신이 안될 때]
[몽고db 클러스터가 잘 뜨지 않을 경우]
위 부분까지 세팅이 잘 되었다면 Replica Set을 이어주어야 한다
mongo shell 접속
mongo
rs세팅
rs.initiate({ _id : "<Replica Set 명>", members : [ {_id : 0, host : "<BindIp>:<Port>"}, {_id : 1, host : "<BindIp>:<Port>"}, {_id : 2, host : "<BindIp>:<Port>"}, ] })
위의 형태로 작성하고, 주의 할 점은 IP,PORT가 모두 ""(큰따옴표) 안에 들어 가 있어야 한다
ex)
rs.initiate({ _id : "mobidicSet", members : [ {_id : 0, host : "1.2.3.4:27017"}, {_id : 1, host : "3.2.1.4:27017"}, {_id : 2, host : "4.3.1.2:27017"}, ] })
결과 확인하기
잘 이어졌다면 몽고디비 shell에 PRIMARY 혹은 SECONDARY라고 뜬다
rs.status()