mongodb复制节点卡在optimeDate为1970的“ STARTUP2”上

Soy*_*eed 3 mongodb

我刚刚设置了三个节点的副本集。第三个节点通过“ optimeDate”:ISODate(“ 1970-01-01T00:00:00Z”)卡在stateStr STARTUP2上。但是,它没有显示错误消息。这样好吗 在主要rs.status()上

{
    "set" : "qdit",
    "date" : ISODate("2013-06-18T22:49:41Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "q.example.com:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 2940,
            "optime" : {
                "t" : 1371593311,
                "i" : 1
            },
            "optimeDate" : ISODate("2013-06-18T22:08:31Z"),
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "q1.example.com:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 457,
            "optime" : {
                "t" : 1371593311,
                "i" : 1
            },
            "optimeDate" : ISODate("2013-06-18T22:08:31Z"),
            "lastHeartbeat" : ISODate("2013-06-18T22:49:40Z"),
            "lastHeartbeatRecv" : ISODate("2013-06-18T22:49:40Z"),
            "pingMs" : 0,
            "syncingTo" : "twitnot.es:27017"
        },
        {
            "_id" : 2,
            "name" : "q2.example.com:27017",
            "health" : 1,
            "state" : 5,
            "stateStr" : "STARTUP2",
            "uptime" : 300,
            "optime" : {
                "t" : 0,
                "i" : 0
            },
            "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
            "lastHeartbeat" : ISODate("2013-06-18T22:49:40Z"),
            "lastHeartbeatRecv" : ISODate("2013-06-18T22:49:41Z"),
            "pingMs" : 7
        }
    ],
    "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

db.printSlaveReplicationInfo()的产量

source:   qdit1.queuedit.com:27017
     syncedTo: Tue Jun 18 2013 22:08:31 GMT+0000 (UTC)
         = 2894 secs ago (0.8hrs)
source:   qdit2.queuedit.com:27017
     syncedTo: Thu Jan 01 1970 00:00:00 GMT+0000 (UTC)
         = 1371596205 secs ago (380998.95hrs)
Run Code Online (Sandbox Code Playgroud)

这样好吗 还有我如何测试我的复制尤其是第三个节点

小智 5

副本集完全同步后,您的STARTUP2状态应得到解决。当副本由于硬件或任何其他问题而滞后并且您重新启动mongod实例或重新启动节点时,通常会发生这种情况。请注意,STARTUP阶段与STARTUP2阶段完全不同,在STARTUP2阶段中,它已完成配置解析,并在下一个阶段中分叉线程以及进行初始同步。仅当db.printReplicationInfo()中的oplog第一个事件时间晚于您在该从节点的db.printSlaveReplicationInfo()命令中看到的时间时,此阶段才会解决,在这种情况下,将进行完全手动重新同步必要。因此,如果此时间在PRIMARY实例中oplog的第一个和最后一个事件时间之内,则STARTUP2阶段应仅是瞬态的。