1

我有一个包含三个成员的副本集,host0:27100作为主要成员。最近我更改了配置并将其host2:27102设为主要成员。遵循这些文档。

更改配置后,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
}
4

1 回答 1

1

这是一个已知的问题。如果当前主节点过去是辅助节点,则有一个关于 rs.status() 的未决票证在从辅助节点运行时将主节点显示为 syncingTo ( SERVER-9989 )。修复版本为 2.5.1

于 2013-09-25T16:53:59.677 回答