MongoDB複製整合員的重新同步

來源:互聯網
上載者:User

MongoDB複製整合員的重新同步

複製整合員的重新同步

當複製失敗,且落後於 primary 中oplog最大可承受的範圍的時候,replica set 成員將變為 “陳舊” (stale)。該節點無法追上主節點就變的 “陳舊”了。當發生這種情況時,我們就不得不刪除其資料檔案,並通過 initial sync 來重新同步。

本教程包含了為陳舊的節點重新同步與新節點重新同步。當同步一個節點的時候,請確保機器有足夠的空餘頻寬,並盡量在維護時間內進行,或是業務最不繁忙時。

MongoDB提供2中初始化同步(initial sync)的方式:

a.清空資料目錄,重啟 mongod 執行個體,讓MongoDB進行正常的初始化同步。這是個簡單的方式,但是耗時較長。

b.為該機器從其他節點上複製一份最近的資料檔案,並重啟。本方式操作步驟較多,但是最為快速。

步驟

自動同步

警告

在初始化同步的過程中,mongod 將會清空 dbPath 中的內容。

該步驟依靠MongoDB 自身的定期進程 initial sync 。這將恢複節點上最新的資料。有關MongoDB初始化恢複,請參考 複製過程 。

如果該執行個體沒有資料,我們可以通過 為複製集新增節點 或是 更換複製集節點 來為複製集新增一個節點。

我們也可以通過指定一個空的 dbPath 並重啟來將一個複製集中的 mongod 執行個體強制初始化同步。

    a.關閉 mongod 進程。通過在 mongo 視窗中使用 db.shutdownServer() 命令或者在Linux系統中使用 mongod --shutdown 參數來安全關閉。

    b.清空複製集節點的資料目錄和其子目錄,清除 dbPath 中的資料,MongoDB將會進行重新複製。可以考慮在這麼做之前先做備份以防萬一。

這時, mongod 將會進行初始化複製。初始化複製的耗時,將取決於資料庫資料量和兩節點之間的網路情況。

初始化複製將會影響其他節點,也會加大主節點的網路流量壓力,且只會在有一個節點資料是最新的且串連無問題的時候進行。

通過從其他節點複製資料檔案來同步

本方法通過使用已有節點上的資料檔案來進行。資料檔案 必須 是較新的(能夠追上 oplog ).不然的話該節點還是需要進行初始化複製。

複製資料檔案

我們可以直接複製資料檔案也可以通過鏡像。然而,大多數情況下,我們不應該複製未關閉的 mongod 執行個體的資料檔案,因為複製過程中資料檔案是會變動的。

重要

在複製資料檔案的時候,我們也必須複製 local 資料庫的資料檔案。

我們*不應該*使用 mongodump 的備份作為資料檔案,僅使用檔案快照 。關於如何在運行中的 mongod 執行個體中獲得一致性的資料檔案,參考 MongoDB備份方案 。

同步節點

在我們複製了其他節點的資料檔案後,啟動 mongod 執行個體,其會追趕最新的資料直到資料一致。

MongoDB 3.0 正式版發布下載 

CentOS編譯安裝MongoDB

CentOS 編譯安裝 MongoDB與mongoDB的php擴充

CentOS 6 使用 yum 安裝MongoDB及伺服器端配置

Ubuntu 13.04下安裝MongoDB2.4.3

MongoDB入門必讀(概念與實戰並重)

Ubunu 14.04下MongoDB的安裝指南

《MongoDB 權威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

Nagios監控MongoDB分區叢集服務實戰

基於CentOS 6.5作業系統搭建MongoDB服務

MongoDB 的詳細介紹:請點這裡
MongoDB 的:請點這裡

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.