Mongodb副本集状态显示“正在恢复”

ryevplcw  于 2023-03-22  发布在  Go
关注(0)|答案(2)|浏览(190)

我已经安装了副本集超过3 mongo服务器和导入5 GB的数据。现在二级服务器的状态显示“恢复”。你能让我知道什么是“恢复”的意思,以及如何解决这个问题。
状态如下

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
nnt7mjpx

nnt7mjpx1#

“RECOVERING”副本集节点上的消息表示这些节点仍在执行初始同步。这些节点在转换到Secondary状态之前不可用于读取。
在初始同步中有几个步骤。
有关复制副本集同步过程的详细信息,请参阅此处:https://www.mongodb.com/docs/manual/core/replica-set-sync/

fcipmucu

fcipmucu2#

登录RECOVERING示例。

检查RECOVERING示例复制状态
db.printReplicationInfo()
你会得到这样的结果
oplog第一个事件时间:2019年7月30日星期二17:26:37 GMT+0000(UTC)
oplog上次事件时间:2019年7月31日星期三16:46:53 GMT+0000
2019年08月22日星期四07:36:38 GMT+0000(UTC)
如果您发现oplog last event timenow之间的差异。
这意味着此特定示例不是PRIMARYSECONDARY,也不是副本集活动成员

现在有两种解决方案
第一次

1.登录RECOVERING示例
2.从现有db中删除数据,将为**/data/db**
3.重启此RECOVERING示例
4.(可选)如果您发现以下错误。请从指定位置删除该mongod.pid。

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

5.重新启动示例。
6.现在,正在恢复的示例将处于运行状态
它将显示PRIMARY或Secondary,而不是RECOVERING。

第二个

将其他正在运行的示例数据复制到RECOVERING示例中,然后重启mongodb

相关问题