为什么mongodb的成员一直在恢复?

sol*_*wzs 3 database mongodb

我建立了一个包含三个成员的副本集,其中一个是仲裁者。

有一次我重启了一个成员,这个成员保持了很长时间的RECOVERING并且没有再次成为SECONDARY,即使数据库不大。

副本集的状态是这样的:

rs:PRIMARY> rs.status()
{
        "set" : "rs",
        "date" : ISODate("2013-01-17T02:08:57Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 1,
                        "name" : "192.168.1.52:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 67968,
                        "optime" : Timestamp(1358388479000, 1),
                        "optimeDate" : ISODate("2013-01-17T02:07:59Z"),
                        "self" : true
                },
                {
                        "_id" : 2,
                        "name" : "192.168.1.50:29017",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 107,
                        "lastHeartbeat" : ISODate("2013-01-17T02:08:56Z"),
                        "pingMs" : 0
                },
                {
                        "_id" : 3,
                        "name" : "192.168.1.50:27017",
                        "health" : 1,
                        "state" : 3,
                        "stateStr" : "RECOVERING",
                        "uptime" : 58,
                        "optime" : Timestamp(1358246732000, 100),
                        "optimeDate" : ISODate("2013-01-15T10:45:32Z"),
                        "lastHeartbeat" : ISODate("2013-01-17T02:08:55Z"),
                        "pingMs" : 0,
                        "errmsg" : "still syncing, not yet to minValid optime 50f6472f:5d"
                }
        ],
        "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

我应该如何解决这个问题?

Bes*_*ros 6

我有完全相同的问题:副本的次要成员卡在恢复模式。这里如何解决这个问题:

  1. 停止辅助 mongo db
  2. 删除所有辅助数据库数据文件
  3. 启动辅助 mongo

它将以 startup2 模式启动,并将从主复制所有数据