1. MongoDB Replica Set
네이버 사전 검색결과로 응답이라 나오는데 보통 기술분야나 바이오 ( DNA 관련 ) 이런 쪽에서는 '복제' 라는 뜻으로 사용된다. 마찬가지로 Replica 는 복제품이라는 뜻으로 Replica Set 이라 함은 원본 DB ( Master ) 의 내용을 고대로 복사해 새로운 복제품 ( Slave ) 을 만드는 것을 의미한다.
MongoDB 의 Replica Set 에서는 오직 하나의 쓰기가 가능한 DB = Primary 를 가질 수 있으며, Secondary 라 불리는 복제품들은 Primary 의 데이터 셋을 그대로 반영한다. Secondary는 Primary 에서 CRUD 작업에 의해 변경되는 사항들을 그대로 반영한다.
Secondary
우분투에서 MongoDB를 돌리고 있었는데 Replica Set을 적용한 이후 얼마 지나지 않아 Primary DB가 망가진 것을 확인하였고 로그를 확인해 보니 저장 공간이 부족하다는 내용이 나왔다. 서버 용량이 얼마 되진 않았지만 갑자기 이렇게 꽉 찰수도 있나 했는데 찾아보니 Default Oplog Size 때문인것같다.
Master / Slave
1) 저장공간을 생성하자.
- Master : /mongoDB/master
- Slave01 : /mongoDB/slave01
- Slave02 : /mongoDB/save02
2) Config 파일 작성 ( /mongoDB/master.config )
processManagement:
fork: true
net:
bindIp: localhost
port: 27017
storage:
dbPath: /mongoDB/master
systemLog:
destination: file
path: "/mongoDB/log/master.log"
logAppend: truestorage:
journal:
enabled: true
* fork : true ==> conf 파일을 이용해 mongodb를 돌릴건데 백그라운드로 실행하기 위해 사용
* net : bindip ==> localhost 입력 / port : 원하는 포트 작성 ( 해당 포트 방화벽 오픈 필요 )
* storage : dbPath ==> DB가 저장될 공간
* systemLog : destination : file ==> file로 남김 / path : ==> 로그파일이 작성될 곳 / logAppend : 끝에 이어서 기록하기
mongod -config master.config -master
5) 명령어를 이용하여 Slave 구동
mongod -config slave01.config -slave -source localhost:27017 ( <<- Master URL 입력 )
mongod -config slave02.config -slave -source localhost:27017 ( <<- Master URL 입력 )