Mongodb

mongo primary 顯示在主節點後面?

  • January 20, 2022

mongo primary 顯示在主節點後面??它隨著時間的推移而增加。請建議?

monRepl:PRIMARY> rs.printSlaveReplicationInfo()
source: xxxxxx:27017
   syncedTo: Mon Apr 27 2015 10:39:02 GMT+0530 (IST)
   **25835 secs (7.18 hrs) behind the primary** 

monRepl:PRIMARY> rs.status();
{
   "set" : "monRepl",
   "date" : ISODate("2015-04-27T12:20:38Z"),
   "myState" : 1,
   "members" : [
       {
           "_id" : 3,
           "name" : "xxxxx:27017",
           "health" : 1,
           "state" : 2,
           "stateStr" : "SECONDARY",
           "uptime" : 329104,
           "optime" : Timestamp(1430111629, 90),
           "optimeDate" : ISODate("2015-04-27T05:13:49Z"),
           "lastHeartbeat" : ISODate("2015-04-27T12:20:36Z"),
           "lastHeartbeatRecv" : ISODate("2015-04-27T12:20:37Z"),
           "pingMs" : 0,
           "syncingTo" : "yyyyyy:27017"
       },
       {
           "_id" : 5,
           "name" : "xxxxxx:27017",
           "health" : 1,
           "state" : 7,
           "stateStr" : "ARBITER",
           "uptime" : 329104,
           "lastHeartbeat" : ISODate("2015-04-27T12:20:38Z"),
           "lastHeartbeatRecv" : ISODate("2015-04-27T12:20:37Z"),
           "pingMs" : 0
       },
       {
           "_id" : 6,
           "name" : "yyyyyyy:27017",
           "health" : 1,
           "state" : 1,
           "stateStr" : "PRIMARY",
           "uptime" : 579120,
           "optime" : Timestamp(1430137238, 300),
           "optimeDate" : ISODate("2015-04-27T12:20:38Z"),
           "electionTime" : Timestamp(1429808169, 7),
           "electionDate" : ISODate("2015-04-23T16:56:09Z"),
           "self" : true
       }
   ],
   "ok" : 1
}

我不知道我看到了問題。它在第二行顯示源數據是“源:xxxxxx:27017”,如果您進一步往下看,在狀態結果中,該伺服器實際上是輔助伺服器。所以我讀這個的方式(如果我錯了請告訴我)你是在主節點上送出命令,但它實際上是在查詢輔助節點並說它比主節點晚了 7 個多小時。然後你做一個狀態,它顯示具有相同時差的 optTimeDate 的副本集。

如果我要猜測,(這只是一個猜測)我會說兩台機器中的一台是通過 ntp 進行時間同步的,但另一台不是(並且仲裁器似乎與主伺服器匹配,所以它更有可能是時間同步的,這意味著您的輔助伺服器執行緩慢)。

來自MongoDB 文件(重點是我的)rs.printSlaveReplicationInfo

從副本集的次要成員的角度返回副本集狀態的格式化報告。輸出與 db.printSlaveReplicationInfo() 的輸出相同。

所以它表明你的中學比你的小學晚 7 小時。

引用自:https://dba.stackexchange.com/questions/98944