网站和优化 · 2 1 月, 2024

MongoDB 詞彙表 – 操作日誌

MongoDB 詞彙表 – 操作日誌(Oplog)

在 MongoDB 的世界中,「oplog」指的是「操作日誌」。它是 MongoDB 複製過程中的一個關鍵組件,允許在分佈式數據庫環境中跨多個節點進行數據同步。在本文中,我們將詳細探討 oplog 的概念、用途以及其運作方式。

什麼是 Oplog?

Oplog 是 MongoDB 中一個特殊的有上限集合,用於按特定順序記錄所有寫入操作。它充當事務日誌,捕捉對數據庫所做的每個更改,包括插入、更新和刪除。通過以時間順序存儲這些操作,oplog 使複製成為可能,並確保副本集中的數據一致性。

Oplog 結構

Oplog 是一個名為「oplog.rs」的集合,位於每個 MongoDB 副本集成員的本地數據庫中。它由個別文檔組成,每個文檔代表一個單獨的寫入操作。這些文檔包含一些重要信息,例如操作類型、命名空間、時間戳以及被修改的實際數據。

每個 oplog 文檔具有以下字段:

  • ts: 表示操作發生時間的時間戳。
  • h: 操作的唯一標識符。
  • v: oplog 格式的版本。
  • op: 操作類型(例如,「i」代表插入,「u」代表更新,「d」代表刪除)。
  • ns: 操作的命名空間,指示正在修改的數據庫和集合。
  • o: 被修改的實際數據。

Oplog 與複製

Oplog 在 MongoDB 的複製過程中扮演著至關重要的角色。當主節點接收到寫入操作時,它首先在本地應用該操作,然後將其記錄在自己的 oplog 中。主節點隨後將該操作複製到副本集的次節點。

次節點不斷從主節點提取 oplog,並以相同的順序應用這些操作。通過從 oplog 重播操作,次節點可以複製主節點所做的更改,確保副本集中的數據一致性。

Oplog 大小與保留

由於 oplog 是一個有上限的集合,因此它具有固定大小並保留有限數量的操作。oplog 的大小由在初始化副本集時指定的 oplogSize 參數決定。一旦 oplog 達到其最大大小,最舊的操作將自動被刪除,以便為新操作騰出空間。

根據工作負載和複製延遲容忍度適當配置 oplog 大小至關重要。如果 oplog 大小過小,可能會導致 oplog 包裝(oplog wrapping),即新操作在所有次節點複製之前覆蓋舊操作。另一方面,過大的 oplog 可能會消耗大量磁碟空間。

結論

Oplog 是 MongoDB 複製機制中的一個基本組件,確保副本集中的數據一致性。通過按時間順序記錄所有寫入操作,oplog 使次節點能夠複製主節點所做的更改。了解 oplog 的結構及其在複製中的作用對於有效管理 MongoDB 部署至關重要。

總結:

總之,oplog 是 MongoDB 複製過程中的一個關鍵部分。它是一個有上限的集合,按特定順序記錄所有寫入操作。Oplog 使副本集之間的數據同步成為可能,並確保數據的一致性。了解 oplog 的結構及其在複製中的作用對於有效管理 MongoDB 部署至關重要。

如需了解有關 VPS 託管及其如何使您的 MongoDB 部署受益的更多信息,請訪問 Server.HK