2013-09-25 2 views
1

복제 구성원 집합에 세 구성원이 있고 host0:27100을 기본 구성원으로 사용합니다. 최근에 구성을 변경하고 host2:27102을 기본 구성원으로 지정했습니다. 다음은 these 문서입니다.MongoDB 주 복제본 집합 구성원이 보조 서버와 동기화 중

구성을 변경 한 후에 rs.status() 출력은 host1:27101이 의도 된 "syncingTo" : "host2:27102"임을 나타냅니다.

그러나 새 기본 출력 host2:27102에 대한 출력은 이전 주 구성원 인 보조 입력으로 "syncingTo" : "host0:27100"임을 보여줍니다.

왜 보조 멤버와 동기화되는지 이해할 수 없습니다. 정상적인 행동입니까?

s0:SECONDARY> rs.status() 
{ 
     "set" : "s0", 
     "date" : ISODate("2013-09-25T12:31:42Z"), 
     "myState" : 2, 
     "syncingTo" : "host2:27102", 
     "members" : [ 
       { 
         "_id" : 0, 
         "name" : "host0:27100", 
         "health" : 1, 
         "state" : 2, 
         "stateStr" : "SECONDARY", 
         "uptime" : 428068, 
         "optime" : Timestamp(1380112272, 1), 
         "optimeDate" : ISODate("2013-09-25T12:31:12Z"), 
         "self" : true 
       }, 
       { 
         "_id" : 1, 
         "name" : "host1:27101", 
         "health" : 1, 
         "state" : 2, 
         "stateStr" : "SECONDARY", 
         "uptime" : 397, 
         "optime" : Timestamp(1380112272, 1), 
         "optimeDate" : ISODate("2013-09-25T12:31:12Z"), 
         "lastHeartbeat" : ISODate("2013-09-25T12:31:42Z"), 
         "lastHeartbeatRecv" : ISODate("2013-09-25T12:31:41Z"), 
         "pingMs" : 10, 
         "syncingTo" : "host2:27102" 
       }, 
       { 
         "_id" : 2, 
         "name" : "host2:27102", 
         "health" : 1, 
         "state" : 1, 
         "stateStr" : "PRIMARY", 
         "uptime" : 397, 
         "optime" : Timestamp(1380112272, 1), 
         "optimeDate" : ISODate("2013-09-25T12:31:12Z"), 
         "lastHeartbeat" : ISODate("2013-09-25T12:31:42Z"), 
         "lastHeartbeatRecv" : ISODate("2013-09-25T12:31:41Z"), 
         "pingMs" : 2, 
         "syncingTo" : "host0:27100" 
       } 
     ], 
     "ok" : 1 
} 

답변

1

이것은 알려진 문제입니다. rs.status()에 대한 티켓은 현재 주가 과거에 보조 (SERVER-9989) 인 경우 보조에서 실행될 때 기본을 syncingTo로 표시합니다. 수정 버전은 2.5입니다.

관련 문제