1. 리플리카 셋의 개념과 동작원리
* 리플리카 셋 (ReplicaSet)
: primary 서버 - 리플리카셋에서 첫번째 입력을 담당하는 서버
: secondary 서버 - primary 서버를 제외한 나머지 서버
: primary 서버에 문제가 생기면 자동으로 secondary 서버에서 I/O를 담당함
* 리플리카 셋 주요 특징
: primary 서버는 secondary 서버의 상태를 2초단위로 heartbeat 확인
: secondary 서버가 중단되도 primary는 그대로 작동
: 이후 secondary서버가 복구되면 oplog를 전달하여 동기화
: primary 서버가 중단되면 secondary 서버가 primary서버로 됨
* 동작원리
: 한개의 primary와 두개의 secondary로 구성
: 자신을 제외한 다른 노드가 죽었는지 주기적으로 heartbeat 검사
:
* 복제 시스템 한계
: 한 복제 집합을 구성할 수 있는 노드 최대 개수는 12개
: 투표할 수 있는 노드 최대 개수는 7개
: 마스터와의 통신지연 만큼의 슬레이브의 데이터 동기화 차이
: 동기화를 미처 못하고 죽었을 시 데이터 손실
: 저널링 파일에 데이터를 저장하는 경우에도 주기 사이의 데이터 손실
2. 리플리카셋 시스템 구성
: 서버 만들기
> mongod --replSet 리플리카셋이름 -dbpath 경로 -port 포트번호 // 리플리카 셋 이름은 모두 동일해야함.
> mongod --replSet 리플리카셋이름 -dbpath 경로 -port 포트번호
> mongod --replSet 리플리카셋이름 -dbpath 경로 -port 포트번호
* 셋으로 만들기
> mongo localhost:10000 // 프라이머리 셋에 접속
> var config = {_id:'리플리카셋명', members:[{_id:0, host: 'localhost:10000'},{_id:1, host: 'localhost:10001'},{_id:2, host: 'localhost:10002'}]}
> rs.initiate(config); // 동기화 시작
'프로그래밍 > NoSQL - MongoDB' 카테고리의 다른 글
MongoDB 집계 명령 & 리모트 명령 (0) | 2017.04.04 |
---|---|
MapReduce (0) | 2017.04.04 |
MongoDB를 이용한 복제 방법 살펴보기 (0) | 2017.04.04 |
MongoDB 샤딩 (1) | 2017.04.03 |
MongoDB Index기능 (0) | 2017.04.03 |