본문 바로가기
Server

몽고디비 1) Replica Set 설정

by Gil Granger 2019. 4. 12.

 

 

각 서버에 데몬을 설치후 Replica 서버를 설정 합니다. (Primary , Secondary, Arbiter)

 

 

Primary Host : mongo1

Secondary Host : mongo2

Arbiter Host : mongo3

 

# Where and how to store data.
storage:
#  dbPath: /var/lib/mongodb
  dbPath: /home/mongodb/data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /home/mongodb/mongod.log

# network interfaces
net:
  port: 25249
  bindIp: mongo1


processManagement:
  fork : true
  pidFilePath : /home/mongodb/config.pid


#security:
 # keyFile: /home/mongodb/mongodb.key
 # clusterAuthMode: "keyFile"

#operationProfiling:

replication:
  replSetName: "rs"

 

- port , bindIp는 각 서버의 host를 설정합니다.

- repication 항목은 같은 name을 사용합니다.

 

 

 

 

서버에 접속 

./mongo -host mongo1 -port 25249

 

 

replica set 설정

rs.initiate({ _id : "rs", members: [  { _id: 0, host: "mongo1:25249" }, { _id: 1, host: "mongo2:25249" } ] }  )

#확인
rs.status()

 

 

수행결과 메세지 "ok" 이후 각 Primary , Secondary에 접속하여 커맨드를 엔터쳐가며 prompt에  Primary 또는 Secondary 뜨는지 확인 한다..

"mongo1:PRIMARY > " 혹은 "mongo2:SECONDARY> "

Primary 및 Secondary 상태를 확인 후 아래와 같이 Arbiter를 추가합니다.(2가지 방법 모두 같은 동작이므로 이 중에 하나만 수행하면 된다)

 

 

 

 

Arbiter 추가

rs.addArb("192.10.10.13:27019") 혹은 rs.add( { host: "192.10.10.13:27019", arbiterOnly: true } )

 

 

 

구성이 잘되었는지 확인한다.

PRIMARY> rs.status()

 

 

 

 

테스트

 

PRIMARY> use test
PRIMARY> db.testcollections.insertOne({x:1})
SECONDARY> rs.slaveOk()
SECONDARY> use test
SECONDARY> db.testcollections.find({})

 

데이터가 제대로 복제되었는지 확인한다.

'Server' 카테고리의 다른 글

몽고디비 2) Security Authentication 설정 (with Replica Set)  (0) 2019.04.12
Redis Replication - Master Slave Sentinel  (0) 2019.03.20
Redis 5.0.4 Install  (0) 2019.03.20

댓글