개발자의 노트
반응형

MongoDB 설치 (CentOS 기준)  에서 간단하게 MongoDB를 설치했었다.


이번에는 두대의 서버에 MongoDB를 설치하고, Master / Slave 로 구성해보자


Master는 쓰기 전용, Slave는 읽기 전용으로 쓸 계획이다.


192.168.0.204와 192.168.0.205에 동일하게 MongoDB를 설치했다는 상황에서..

204번을 Master로, 205를 Slave로 설정하자. 


개발할때 Master는 쓰기용, Slave는 읽기용으로 활용하도록!!!


 

mongodb.conf 를 열어서 replSet=abcd 을 설정해준다. 

abcd은 Replica Set의 그룹명이라고 보면 된다. 아무거나 의미있게 만들어쓰자. 

# vi mongodb.conf

dbpath=/data/mongodb

logpath=/log/mongodb/mongodb.log

logappend=true

verbose=true

#bind_ip=127.0.0.1

port=27017

fork=true

# rest 옵션은 브라우저에서 접속할건지 여부, 브라우저포트는 port로 잡은 거에 +1000 한 값 (28017)

rest=true

#auth=true

#noauth=true

# Replica Set 설정

replSet=abcd


모든 몽고디비를 실행해준다. 

# mongod --config /usr/local/mongodb/mongodb.conf


Master로 사용할 몽고디비 클라이언트 접속 (204번)

아래 부분은 Master에만 하면 된다.

# mongo localhost:27017

MongoDB shell version: 2.2.1

connecting to: localhost:27017/test

> config = {_id: 'abcd', members: [

... {_id: 0, host: '192.168.0.204:27017'},

... {_id: 1, host: '192.168.0.205:27017'}]

... }

엔터를 치면

{

"_id" : "abcd",

"members" : [

{

"_id" : 0,

"host" : "192.168.0.204:27017"

},

{

"_id" : 1,

"host" : "192.168.0.205:27017"

}

]

}

> rs.initiate(config);

엔터를 치면

{

"info" : "Config now saved locally.  Should come online in about a minute.",

"ok" : 1

}

tone:STARTUP2>


성공적으로 저장이 되었다. 시간이 몇분 정도 걸린다고 하니. 기다렸다 확인해보자.


Master에 접속해보자.

# mongo 192.168.0.204:27017

MongoDB shell version: 2.2.1

connecting to: 192.168.0.204:27017/test

tone:PRIMARY>


Slave에 접속해보자.

# mongo 192.168.0.205:27017

MongoDB shell version: 2.2.1

connecting to: 192.168.0.205:27017/test

tone:SECONDARY> rs.status()

{

"set" : "abcd",

"date" : ISODate("2012-11-28T09:24:51Z"),

"myState" : 2,

"syncingTo" : "192.168.0.204:27017",

"members" : [

{

"_id" : 0,

"name" : "192.168.0.204:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 337,

"optime" : Timestamp(1354093387000, 1),

"optimeDate" : ISODate("2012-11-28T09:03:07Z"),

"lastHeartbeat" : ISODate("2012-11-28T09:24:50Z"),

"pingMs" : 0

},

{

"_id" : 1,

"name" : "192.168.0.205:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 337,

"optime" : Timestamp(1354093387000, 1),

"optimeDate" : ISODate("2012-11-28T09:03:07Z"),

"self" : true

}

],

"ok" : 1

}


profile

개발자의 노트

@곽코딩

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!