显示"RECOVERING"的 Mongodb 副本集状态



我已经在3mongo服务器上设置了副本集,并导入了5gb的数据。现在辅助服务器的状态显示为"正在恢复"。你能告诉我"恢复"是什么意思以及如何解决这个问题吗?

状态如下

rs.status()
{
    "set" : "kutendarep",
    "date" : ISODate("2013-01-15T05:04:18Z"),
    "myState" : 3,
    "members" : [
        {
            "_id" : 0,
            "name" : "10.1.4.138:27017",
            "health" : 1,
            "state" : 3,
            "stateStr" : "RECOVERING",
            "uptime" : 86295,
            "optime" : Timestamp(1357901076000, 4),
            "optimeDate" : ISODate("2013-01-11T10:44:36Z"),
            "errmsg" : "still syncing, not yet to minValid optime 50f04941:2",
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "10.1.4.21:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 86293,
            "optime" : Timestamp(1358160135000, 18058),
            "optimeDate" : ISODate("2013-01-14T10:42:15Z"),
            "lastHeartbeat" : ISODate("2013-01-15T05:04:18Z"),
            "pingMs" : 0
        },
        {
            "_id" : 2,
            "name" : "10.1.4.88:27017",
            "health" : 1,
            "state" : 3,
            "stateStr" : "RECOVERING",
            "uptime" : 86291,
            "optime" : Timestamp(1357900674000, 10),
            "optimeDate" : ISODate("2013-01-11T10:37:54Z"),
            "lastHeartbeat" : ISODate("2013-01-15T05:04:16Z"),
            "pingMs" : 0,
            "errmsg" : "still syncing, not yet to minValid optime 50f04941:2"
        }
    ],
    "ok" : 1

关于"正在恢复"的消息副本集节点意味着这些节点仍在执行初始同步。这些节点在转换到Secondary状态之前是不可读的。

初始同步有几个步骤。

查看复制集同步过程的更多信息:https://www.mongodb.com/docs/manual/core/replica-set-sync/

登录恢复实例
查看正在恢复 instance replication status
db.printReplicationInfo()
你会得到这样的结果,

oplog第一个事件时间:2019年7月30日星期二17:26:37 GMT+0000 (UTC)
oplog最后事件时间:2019年7月31日星期三16:46:53 GMT+0000
现在:星期四Aug 22 2019 07:36:38 GMT+0000 (UTC)

如果您发现现在之间存在差异,则oplog最后一次事件时间

这意味着该实例不是PRIMARYSECONDARY,也不是复制集活动成员

现在有两个解决方案
首先
1. 登录到恢复实例
2. 删除现有db中的数据,即/data/db
3.重启恢复实例
4. (optional)如果发现以下错误。去掉那个mongod。

Error starting mongod. /var/run/mongod/mongod.pid


5. 重启实例。
6. 现在,您的恢复实例将处于运行状态
,并且它将显示PRIMARY或Secondary,而不是正在恢复。第二
复制其他运行实例数据恢复实例重启mongodb

相关内容

  • 没有找到相关文章

最新更新