2013-09-25 4 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(), показывающий первичный как syncingTo при запуске из вторичного, если текущий первичный был вторичным в прошлом (SERVER-9989). Fix verion - 2.5.1

Смежные вопросы