[英]Can I force a replica set PRIMARY to recognize the optime of a newly re-synced SECONDARY member in mongodb?
最近,我有一個副本集成員在幾天內不同步。 使用“重新同步非常陳舊的副本集成員”指令,我在輔助計算機上停止了mongod
,清除了數據目錄,重新啟動了該過程,然后將計算機重新同步至主計算機。
一切工作正常,或者看起來。 記錄表明同步正常。 最終,它顯示為已完成,從而在輔助計算機上產生以下rs.status()
輸出:
# The secondary machine's status for itself and its primary:
{
"_id" : 0,
"name" : "myprimary:myport",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 497,
"optime" : {
"t" : 1347562257000,
"i" : 1
},
"optimeDate" : ISODate("2012-09-13T18:50:57Z"),
"lastHeartbeat" : ISODate("2012-09-13T19:00:34Z"),
"pingMs" : 3
},
{
"_id" : 2,
"name" : "mysecondary:myport",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"optime" : {
"t" : 1347562257000,
"i" : 1
},
"optimeDate" : ISODate("2012-09-13T18:50:57Z"),
"self" : true
}
正如預期的那樣,這些機器是同步的,並共享一個optime值。 但是主要的機器是另一回事。 它仍然顯示不同步的輔助節點,即使自重新同步完成以來主要節點的高級操作時間也是如此。
# The primary machine's status for itself and its secondary:
{
"_id" : 0,
"name" : "myprimary:myport",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 497,
"optime" : {
"t" : 1347562257000,
"i" : 1
},
"optimeDate" : ISODate("2012-09-13T18:50:57Z"),
"self" : true
},
{
"_id" : 2,
"name" : "mysecondary:myport",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"optime" : {
"t" : 1347103757000,
"i" : 1
},
"optimeDate" : ISODate("2012-09-08T11:29:17Z"),
"lastHeartbeat" : ISODate("2012-09-11T17:27:06Z"),
"pingMs" : 3
}
我想念什么? 起初我以為“等一下”,但是已經快一個小時了,數據庫在那段時間里已經插入了。 我可以強制主節點對心跳進行心跳檢查嗎,還是需要再次重新同步它們?
我可以在主數據庫上找到的唯一真正的奇怪之處是:
PRIMARY> use local;
PRIMARY> db.slaves.find()
{ "_id" : ObjectId("4f675b909d8e143a90055864"), "host" : "<hostIP>", "ns" : "local.oplog.rs", "syncedTo" : { "t" : 1347395837000, "i" : 1 } }
{ "_id" : ObjectId("50522761212b77e9637ad541"), "host" : "<hostIP>", "ns" : "local.oplog.rs", "syncedTo" : { "t" : 1347562257000, "i" : 1 } }
這些是相同的主機(有問題的輔助計算機)。 我的理解是,這應該顯示一個條目,但是在不更好地了解其跟蹤內容和更新方式的情況下,我猶豫不決。
嘗試關閉輔助數據庫,刪除主數據庫的db.slaves集合上的兩個條目,然后重新啟動輔助數據庫,可能是一個好主意。
數據文件是否證實機器是同步的?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.