Mongodb複本集的維護

來源:互聯網
上載者:User

轉載自 http://www.cnblogs.com/spnt/

Mongodb複本集配置好以後,少不了維護,維護內容也不是很多,主要是現在狀態和增刪節點等。

 

在說維護之前,得先說說Mongodb複本集的同步機制。

資料複製的目的是使資料得到最大的可用性,避免單點故障引起的整站不能訪問的情況的發生,Mongodb的複本集在同一時刻只有一台伺服器是可以寫的,複本集的主從複製也是一個非同步同步的過程,是slave端從primary端擷取日誌,然後在自己身上完全順序的執行日誌所記錄的各種操作(該日誌是不記錄查詢操作的),這個日誌就是local資料庫中的oplog.rs表,預設在64位機器上這個表是比較大的,占磁碟大小的5%,oplog.rs的大小可以在啟動參數中設定:--oplogSize 1000,單位是M。

在生產環境中建議此值設定的大一些,以防止無法同步的情況發生。

 

現在開始正式說維護命令

1,查看同步狀態

  命令db.printSlaveReplicationInfo()可以查看slave延遲情況。

source:從庫的ip和連接埠

syncedTo:目前的同步情況,以及最後一次同步的時間

從上面可以看出,在資料庫內容不變的情況下他是不同步的,資料庫變動就會馬上同步。

2增刪節點

  1,增加節點

   Mongodb可以做到在不停機的情況下無縫增加節點。命令也很簡單,兩步就可以完成

    1,啟動新的Mongodb,並指定複本集

    2,把複本集添加到"串"中

啟動一個新的進程,我用的mongodb4這個目錄,連接埠號碼4444,然後運行添加命令。

命令的格式是:rs.add("ip+連接埠號碼")

注意:這個命令只能用在主庫中,可以看到我重新串連到了連接埠號碼是3333的主庫。

然後查看下狀態

  可以看到4444已經做為從庫添加到了複本集。

  大家也可以發現這裡多出了一個屬性:stateStr和errmsg,這兩個屬性工作表示當前同步的狀態,到了什麼進度

 stateStr:RECOVERING//表示正在同步資料,

              SECONDARY//表示已經成功同步,可以正常使用。

      2,刪除節點

          出於種種原因把,現在準備刪除一個節點,空閑出一台伺服器

        這時使用命令rs.remove("IP+連接埠")即可移除該節點

       現在我移除剛剛添加上的4444這個節點

4444已經被刪除。

複本集的基本維護也就這麼多了,能滿足大部分的需求。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.