Mongodb副本集的維護


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已經被刪除。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM