MongoDB版本升級指南


MongoDB官方文檔提供了版本升級的說明,本文只介紹3.0==>3.2==>3.4==>3.6==>4.0==>4.2之間的升級文檔,其他版本之間的暫不添加,可自行到官網搜索。

注意:MongoDB的升級路徑必須是按偶數版本循序漸進的(偶數版本一般是穩定版本)。不能直接跨偶數版本的由3.2升級至3.6或者3.4升級至4.0。

一、3.2==>3.4

 

二、3.4==>3.6

三、3.6==>4.0

 

四、4.0==>4.2

 

五、示例升級流程:

鑒於文檔和場景較多,只里只選一個3.4ReplicaSet升級至3.6ReplicaSet的文檔做解釋,不通版本的副本集升級大同小異,查看各個版本的升級文檔即可;分片集的升級則需要細看升級文檔,官方提示:升級之前要做到對升級文檔了熟於心!!!

 

5.1 升級前的checklist

1. 確保未跨偶數版本升級,即3.4只能升級到3.6

2. 確保應用使用的mongodb驅動兼容了.6版本

    通過Start Developing with MongoDB — MongoDB Drivers來查看各語言的mongo驅動。

3. 查看3.6的兼容性更改,確保你的應用和服務部署與3.6版本兼容,文檔地址:Compatibility Changes in MongoDB 3.6 — MongoDB Manual

    簡單的看了一眼第一個localhost binding需要注意,3.6以后為安全起見mongodb默認綁定到localhost地址,這樣會禁止外部連接訪問,需要你設置為綁定本地網卡外部IP地址,同時建議開啟權限認證,確保安全。

    然后配置文件中有些配置項被移除了,需要看下自己用沒用,用了的也一並提前移除,否則會導致實例起不來。至於查詢語句的差異則可以不用重視。

net.http.enabled
net.http.JSONPEnabled
net.http.port
net.http.RESTInterfaceEnabled
httpinterface
nohttpinterface
jsonp
rest

4. 確保沒有Initial Sync在跑

    即確保沒有其他secondary在做全量同步(一般新增secondary節點或者secondary節點數據目錄被清空時會觸發initial sync)

5. 3.6后新增read concern=majority選項

    此配置項確保數據被多數節點同步后才會讀取到數據,一般使用默認的local配置項即可,無需特意修改。

 

5.2 升級前的准備

1. 確保所有節點的featureCompatibilityVersion參數設置正確,查詢和更改語句如下:

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )

2. 確保沒有副本集節點處於ROLLBACK or RECOVERING狀態。

3. 在要升級的節點安裝3.6版本的mongodb。

 

5.3 升級流程

1. 關閉3.4版本的實例(如果是primary,當然要先stepdown啦),然后使用3.6的二進制文件替換3.4版本的。

    這里要注意,如果單機多實例部署且公用二進制文件,則需要確認是否一並升級所有集群,如果否那么先把其他節點遷走。如果不共用二進制文件那么替換自己的二進制文件即可。

2. 依次替換所有節點的二進制文件。

3. 設置版本兼容性為3.6,primary節點執行,可重試(冪等操作)。

db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )

升級完畢。


免責聲明!

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



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