2016-11-18 4 views
0

IP 주소가 10.1.1.52 및 10.1.1.11 인 두 대의 PC가 있습니다. 하나의 주 노드와 하나의 보조 노드가 10.1.1.52에서 실행되고 하나의 보조 노드가 10.1.1.11에서 실행되는 mongo 복제 (샤딩없이)를 구성하려고합니다.3 노드 복제본 세트에서 연결할 수없는 원격 노드

나는 다음 단계를 따랐다 :

다음 명령 :: 나는 복제 세트 ('A'를) 생성 및 추가

mongod --configsvr --port 26050 --logpath /data/db/log.cfg0 --logappend --dbpath /data/db/cfg0 –fork 
mongod --configsvr --port 26051 --logpath /data/db/log.cfg1 --logappend --dbpath /data/db/cfg1 –fork 
mongod --configsvr --port 26052 --logpath /data/db/log.cfg2 --logappend --dbpath /data/db/cfg2 –fork 

다음과 같이 10.1.1.11 PC에 세 개의 설정 서버를 실행 (10.1.1.52에서 10.1.1.11 & 다른 두의 첫 번째) 다음 명령을 사용하여 세 개의 노드 :

mongod --replSet a --dbpath /data/a/a0 --logpath /data/a/log.a0 --port 27000 --fork --logappend --smallfiles --oplogSize 50 
mongod --replSet a --dbpath /data/a/a1 --logpath /data/a/log.a1 --port 27001 --fork --logappend --smallfiles --oplogSize 50 
mongod --replSet a --dbpath /data/a/a2 --logpath /data/a/log.a2 --port 27002 --fork --logappend --smallfiles --oplogSize 50 

내가 10.1.1.11에 쿼리 라우터를 설정 다음 명령을 : 노드를 추가 한 후입니다 직면하고 있습니다

mongo --port 27000 
rs.initiate() 

문제 :

그 후

mongos --configdb gaugedata-elastic:26050,gaugedata-elastic:26051,gaugedata-elastic:26052 --fork --logappend --logpath /data/db/log.mongos --port 26060 

나는 복제 세트를 mongos에서 연결하고 시작하려면 다음 명령을 입력

rs.add("10.1.1.52:27001") 
rs.add("10.1.1.52:27002") 

원격 PC, 즉 10.1.1.52에서 실행되는 노드에 도달 할 수없고 건강에 좋지 않습니다. 그러나 내 PC에서 실행되는 노드, 즉 10.1.1.11은 자동으로 SECONDARY로 선언됩니다.

+0

방화벽 규칙이 포트 27001 및 27002에 통신을 차단하는 것이 가능한가? –

답변

0

확인. 여기에는 몇 가지 실수가 있습니다. 샤딩이 필요 없다면 mongoS 또는 설정 서버가 필요하지 않습니다 ... 순수 복제본 세트 (이 경우)는 둘 다 mongod 프로세스 만 실행하는 두 머신입니다 ...

(다른 두 머신에서)

mongod --replSet = a --dbpath =/data/--logpath =/data/mongod.log --port = 27017 --fork --logappend --smallfiles --oplogSize = 50

그럼 몽고와 노드 중 하나에 연결 :

몽고 10.1.1.11

01,235,164 호스트, 0 : "10.1

rs.initiate (_id { :"A ", 버전 : 1, 회원 : [ {_id

은 그럼 당신은 하나의 명령으로, 복제 초기 설정합니다. 1.11 : 27017 ", 우선 순위 : 2}, {_id : 1, 호스트 :"10.1.1.52:27017 ", 우선 순위 : 1} ] } )

그리고 당신은 정말 두 개의 서로 다른 RS를 갖고 싶어 하나의 물리적 머신에 노드가 있다면 물론 다른 포트에 하나 더 추가 할 수 있습니다 ...

여기

은 하나 개의 시스템으로 예를하고있다 :

#> mkdir /data 
#> mkdir /data2 

#> mongod --replSet=a --dbpath=/data --logpath=/data/mongod.log --port=27001 --fork --logappend --smallfiles --oplogSize=50 

#> mongod --replSet=a --dbpath=/data2 --logpath=/data2/mongod.log --port=27001 --fork --logappend --smallfiles --oplogSize=50 

#> mongo --port=27000 

MongoDB Enterprise > rs.initiate({_id:"a", version:1, members:[{_id:0,host:"127.0.0.1:27000",priority:2},{_id:1,host:"127.0.0.1:27001",priority:1}]}) 
{ "ok" : 1 } 
MongoDB Enterprise a:OTHER> 
MongoDB Enterprise a:PRIMARY> rs.status() 
{ 
     "set" : "a", 
     "date" : ISODate("2016-12-04T08:47:33.254Z"), 
     "myState" : 1, 
     "term" : NumberLong(1), 
     "heartbeatIntervalMillis" : NumberLong(2000), 
     "members" : [ 
       { 
         "_id" : 0, 
         "name" : "127.0.0.1:27000", 
         "health" : 1, 
         "state" : 1, 
         "stateStr" : "PRIMARY", 
         "uptime" : 451, 
         "optime" : { 
           "ts" : Timestamp(1480841055, 1), 
           "t" : NumberLong(1) 
         }, 
         "optimeDate" : ISODate("2016-12-04T08:44:15Z"), 
         "electionTime" : Timestamp(1480841054, 1), 
         "electionDate" : ISODate("2016-12-04T08:44:14Z"), 
         "configVersion" : 1, 
         "self" : true 
       }, 
       { 
         "_id" : 1, 
         "name" : "127.0.0.1:27001", 
         "health" : 1, 
         "state" : 2, 
         "stateStr" : "SECONDARY", 
         "uptime" : 209, 
         "optime" : { 
           "ts" : Timestamp(1480841055, 1), 
           "t" : NumberLong(1) 
         }, 
         "optimeDate" : ISODate("2016-12-04T08:44:15Z"), 
         "lastHeartbeat" : ISODate("2016-12-04T08:47:32.831Z"), 
         "lastHeartbeatRecv" : ISODate("2016-12-04T08:47:33.128Z"), 
         "pingMs" : NumberLong(0), 
         "syncingTo" : "127.0.0.1:27000", 
         "configVersion" : 1 
       } 
     ], 
     "ok" : 1 
} 
+0

나는 당신이 말한대로 정확하게했습니다. * mongo 10.1.1.11 *을 사용하여 노드 중 하나에 연결하면 **이 노드는 replSet 옵션으로 시작되지 않았습니다 ** ** 다음에 무엇을해야하는지 알려주십시오. – Sidd

+0

확인. ** mongo --port 27000 **을 사용하고 ** rs.initiate ({_id : "a", 버전 : 1, 멤버 : [{_id : 0, host : "10.1.1.11:27000" 호스트 : "10.1.1.52 : 27001", 우선 순위 : 1}, {_id : 2, 호스트 : "10.1.1.52:27002", 우선 순위 : 2}]) ** rs.status()가 id : 1 및 id : 2에 여전히 도달 할 수 없다는 것을 보여준 후 outut가 발생했습니다. 아이디어가 있으십니까? – Sidd