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
}