2012-04-09 21 views
4

「的MongoDB在行動」一書中說:應該在複製數據庫中的mongodb節點需要時間同步?

想象一下,你發出一個副本集的主節點的寫入。接下來發生什麼?首先,寫入被記錄並且然後被添加到主要的oplog中 。同時,所有的仲裁者都有自己的oplog ,它們複製了主要的oplog。因此,當給定的輔助節點 準備好自行更新時,它有三件事。首先,它在它自己的oplog中查看最新條目的 時間戳。接下來,它查詢 主要的oplog,查找大於該時間戳的所有條目。最後, 它增加了每個這些條目的自身的OPLOG和適用的條目 本身

因此,這意味着節點必須及時同步?因爲時間戳必須在所有節點上相等。

回答

4

一般來說,是的,讓你的主機同步是一個非常好的主意(NTP是通常的解決方案)。事實上,我看到的問題比不同步oplog造成的問題要嚴重得多 - 羣集中數據庫主機上的不同時間應該被視爲必須的。

這在文檔實際上提到的製作筆記頁:

http://www.mongodb.org/display/DOCS/Production+Notes#ProductionNotes-Linux

見約減少時鐘偏移的說明。

1

根據您提供的文字,節點將所有內容都基於最近接收的寫入的時間戳,而不是自己的時鐘。但是,當主控人員降級並且輔助人員成爲主要人員時,會出現問題。如果時間偏差很大,可能會導致複製延遲或其他問題。

相關問題