A서버 1234 port에서 돌고있는 mongod가 있는 상태에서
5678 port mongod를 같이 돌리려고 한다.
master : A
slave : B
1. A서버와 B서버 동일하게 conf파일을 복사하여 포트번호를 5678로 수정하고
replica 이름과 host도 설정해준다. (master의 host로 설정한다, name은 동일하게)
2. conf파일이 2개가 생겼으므로 mongod를 실행할 때 --config 옵션을 주어야 하는데 귀찮으므로 shell 파일을 따로 생성한다.
~~~1234.start
~~~5678.start
3. 기존 db폴더의 이름을 db_1234로 바꾸고 mkdir db_5678하여 하나 더 생성해준다 (빈 디렉터리만 생성하면 된다)
4. A, B 서버에서 mongod를 실행하고 돌고있는지 확인한다. (각각 2개씩 돌면 된다(1234, 5678)
5. A서버에서 새로 만든 5678포트로 접속하여 (mongo localhost:5678)
>config = {_id: '[replicaName]', members: [{_id: 0, host: '[A host]:1234'},{_id: 1, host: '[B host]:5678'}]}
------ 재민씨 추가 -----
master---------------------------------------------------------------
config={ _id:"[replicaName]", members:[{_id:0, host:"[HOSTNAME]:[PORT]", priority:1}] }
rs.initiate(config)
rs.add({_id:1, host:"[HOSTNAME]:[PORT]", priority:0, votes:0})
slave---------------------------------------------------------------
rs.slaveOk()
config 설정에서 priority를 1로 주면 master라고, 0으로 주면 slave라고 명시해주는 것이기 때문에
master가 죽어도 slave가 master로 변하는 것이 아니가 그대로 slave로 남게된다.
--------------------------------------------------------------------------
라고 친 후
rs.initiate(config)를 해준다.
그럼 A 서버가 PRIMARY로 바뀐것을 볼 수 있다.
6. 이제 slave인 B서버에 들어가 master에서 해준것과 동일하게 해준다.(config도 위와 동일하게 한다)
B서버가 SECONDARY가 되었다.
7. 마지막으로 master에서 db와 collecion 하나를 생성하여 data를 insert 해보고 slave에도 제대로 들어가는지 확인한다.
출처 : 껸
'IT > Database' 카테고리의 다른 글
[mongodb] sql과 mongodb 쿼리 차이 (0) | 2014.09.26 |
---|---|
[mongodb] db 복제 (0) | 2014.09.23 |
[mongodb] $text Indexes 설정하기 (0) | 2014.09.21 |
[mongodb] shell에서 find할 때 pretty() 기능 사용 (출력 이쁘게 나옴) (0) | 2014.09.18 |
[mongodb] update , upsert (0) | 2014.09.11 |