🤖정보보안/💠1분지식

[정보] MongoDB Replica Set 구성법(우분투 3EA)

TwoIceFish 2024. 7. 26. 00:40

우분투 호스트 3EA에 메인 노드 및 조인노드 2개를 가정하고 설명한다.

 

각 몽고DB 설정파일에 레플리카 이름을 설정한다

vim /etc/mongod.conf
replication:
   replSetName: "rs0"

 

몽고DB를 재시작 한다

systemctl restart mongod

 

마스터 노드의 몽고DB 접속 후 다음 명령어를 입력한다.

rs.initiate( {
   _id : "rs0",
   members: [
      { _id: 0, host: "192.168.0.131:27017" },
      { _id: 1, host: "192.168.0.132:27017" },
      { _id: 2, host: "192.168.0.133:27017" }
   ]
})

 

적용 결과를 확인하다.

rs.conf()
rs0:PRIMARY> rs.conf()
{
        "_id" : "rs0",
        "version" : 1,
        "term" : 1,
        "protocolVersion" : NumberLong(1),
        "writeConcernMajorityJournalDefault" : true,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "192.168.0.131:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 1,
                        "host" : "192.168.0.132:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 2,
                        "host" : "192.168.0.133:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "catchUpTimeoutMillis" : -1,
                "catchUpTakeoverDelayMillis" : 30000,
                "getLastErrorModes" : {

                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                },
                "replicaSetId" : ObjectId("66a27110f4e019bb33cfd89c")
        }
}