mongoDB 던 전 집합 설정

4330 단어
nodejs 에서 어떻게 사용 하 는 지:
https://github.com/christkv/node-mongodb-native/blob/master/docs/replicaset.md
던 전 집합 을 만 드 는 데 필요 한 절차:
각 노드 를 시작 해 야 합 니 다 그리고 초기 화 설정 을 진행 합 니 다.
여기 서 먼저 한 그룹 (세 노드) 을 설정 합 니 다. 이것 은 표준 설정 입 니 다.몬 god 노드 가 시작 되면 설정 을 정확하게 초기 화하 기 위해 명령 을 내 립 니 다.몇 초 후에 선 거 를 주 노드 로 만 들 면 쓰기 와 조회 집 을 시작 할 수 있다.
시작 노드
우선, 각 노드 의 데이터 디 렉 터 리 를 만 듭 니 다.
# sudo mkdir -p /data/db/data/20       # sudo mkdir -p /data/db/data/21       # sudo mkdir -p /data/db/data/22
다음은 "sudo mongod -- replset" 을 사용 하여 모든 mongod 프로 세 스 를 시작 합 니 다. "– replset" 인 자 는 복사 본 집합 논리 이름 을 지정 해 야 합 니 다. 여 기 는 "blort" 를 첫 번 째 노드 의 이름 으로 사용 합 니 다.
첫 번 째 노드 를 시작 합 니 다. 포트 27020.
sudo mongod --port 27020 --replSetblort/localhost:27021 --dbpath/data/db/data/20/ 
/ / 메모: localhost 는 호스트 이름 입 니 다.
두 번 째 노드 를 시작 합 니 다. 포트 27021.
sudo mongod --port 27021 --replSetblort/localhost:27020 --dbpath/data/db/data/21/ 
마지막 으로 세 번 째 노드, 포트 27022 를 시작 합 니 다.
sudo mongod --port 27022 --replSetblort/localhost:27020 --dbpath/data/db/data/22/ 
현재 세 개의 노드 가 실행 중 입 니 다. 모든 노드 는 다음 과 같은 경 고 를 표시 해 야 합 니 다.
Mon Aug 2 11: 30: 19 [startReplSets] replset can 't getlocal. system. replset config from self or any seed (EMPTY CONFIG) 는 이 노드 를 초기 화하 기 전에 이 복사 본 집합 을 사용 할 수 없습니다.
노드 초기 화:
그 중 한 노드 에 연결 하고 replSetInitiate 명령 을 사용 하여 초기 화 합 니 다.이 명령 은 설정 대상 (configurationobject) 이 필요 합 니 다. 설정 한 모든 구성원 의 이름 을 지정 합 니 다.
# mongo localhost:27020

MongoDB shell version: 2.0.4
connecting to: localhost:27020/test
> config = {_id: 'blort', members: [
{_id: 0, host: 'localhost:27020'},
{_id: 1, host: 'localhost:27021'},
{_id: 2, host: 'localhost:27022'}]
}

> rs.initiate(config);
{
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}

지정 한 설정 대상 을 rs. initiate () 에 전달 합 니 다.그리고 모든 것 이 정상 이면 응답 을 받 습 니 다. 던 전 집 은 1 분 안에 온라인 입 니 다.이 기간 에 그 중의 한 노드 는 주요 노드 로 당 선 될 것 이다.
rs. status 를 실행 하여 노드 상 태 를 검사 합 니 다:

> rs.status() { "set" : "blort", "date" : ISODate("2012-09-24T07:11:08Z"), "myState" : 2, "syncingTo" : "localhost:27020", "members" : [ { "_id" : 0, "name" : "localhost:27020", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 5384, "optime" : { "t" : 1348470385000, "i" : 2 }, "optimeDate" : ISODate("2012-09-24T07:06:25Z"), "lastHeartbeat" : ISODate("2012-09-24T07:11:08Z"), "pingMs" : 0 }, { "_id" : 1, "name" : "localhost:27021", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "optime" : { "t" : 1348470385000, "i" : 2 }, "optimeDate" : ISODate("2012-09-24T07:06:25Z"), "self" : true }, { "_id" : 2, "name" : "localhost:27022", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 5384, "optime" : { "t" : 1348470385000, "i" : 2 }, "optimeDate" : ISODate("2012-09-24T07:06:25Z"), "lastHeartbeat" : ISODate("2012-09-24T07:11:06Z"), "pingMs" : 0 } ], "ok" : 1 } 

state 값 은 1 입 니 다. 이것 은 메 인 노드 에 연결 되 었 음 을 나타 내 고 값 은 2 로 보조 노드 를 표시 합 니 다.
참고:http://snoopyxdy.blog.163.com/blog/static/60117440201241694254441/
          http://docs.mongodb.org/manual/reference/replica-configuration/
         http://docs.mongodb.org/manual/tutorial/deploy-replica-set/
마스터 노드 를 설정 하 는 방법:
(-- dbpath 는 데이터 디 렉 터 리, -- source 노드 에서 주 노드 의 주 소 를 가리 키 기 위해 같은 기계 에서 같은 디 렉 터 리 와 포트 를 선택 할 수 없다 면)
 
/ / 시작 메 인 노드
sudo mongod --dbpath /data/db/data/master --port 30000 --master
/ / 시작 노드 에서
sudo mongod --dbpath /data/db/data/slave --port 30001 --slave--source 192.168.1.102:30000

좋은 웹페이지 즐겨찾기