您好,登錄后才能下訂單哦!
Part1:寫在最前
自從3.0版本起,MongoDB支持了WT存儲引擎,這個引擎相對老的MMAPv1存儲引擎來講,具有更高的壓縮比,且支持文檔級并發控制。也正因為WT的優良特性,在MongoDB3.2版本起,WT存儲引擎作為了默認存儲引擎。本文將簡述2.6升級3.0的過程和注意事項
Part1:建議和清單
限制
要升級到3.0版本,首先現有集群必須是2.6版本。如果是早期的版本,則必須先升級到2.6版本才可以升級3.0版本。如果2.6集群已經開啟了認證模式,升級前需進行authSchema 版本升級,詳見關于認證章節。
準備
在開始升級之前,請參閱MongoDB 3.0文檔中的兼容性更改,以確保您的應用程序和部署與MongoDB 3.0兼容。 在開始升級之前解決部署中的不兼容問題。
升級MongoDB之前,請先在臨時環境中測試應用程序,以確保升級順利進行
降級版本的限制
升級到3.0后,您只能降級到2.6.8或更高版本。
注意:避免重新配置包含不同MongoDB版本成員的副本集,因為MongoDB版本中的權限驗證規則可能會有所不同。
低版本升級先決條件
要將副本集升級到3.0,所有副本集成員必須運行版本2.6。 要從早期的MongoDB版本升級副本集,請先將副本集的所有成員升級到最新的2.6系列版本,然后按照以下步驟從MongoDB 2.6升級到3.0。
Part2:升級過程
先升級副本集中的一個Secondary
關閉mongod實例,并用3.0二進制文件的bin目錄代替2.6二進制文件的bin目錄。
重新啟動成員并等待成員恢復到Secondary狀態,然后再升級下一個Secondary成員。 要檢查成員的狀態,請在mongo shell中發出rs.status()。
stepdown副本集中的Primary
將mongo shell連接到Primary服務器并使用rs.stepDown()來降級主服務器并強制其他節點選舉新的Primary服務器。
升級Primary服務器
當rs.status()顯示原Primary節點已經變為Secondary,新的PRIMARY已經被選舉出來的時候,開始升級原Primary節點:
關閉數據庫,并用3.0二進制文件的bin目錄代替2.6二進制文件的bin目錄。
啟動原Primary節點。
Part3:關于認證
authSchema
2.6版本開啟認證模式要升級3.0,必須先升級authSchema。
運行authSchemaUpgrade并升級3.0后,無法降級到2.6并開啟認證模式
查看authSchema版本是不是3.0(at least)
use admin
db.system.version.find( { _id: "authSchema" })
升級SchemaUpgrade,復制集的話在主庫執行該命令
db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });
Part4:變更存儲引擎
您必須使用MongoDB 3.0或更高版本才能使用WiredTiger存儲引擎。 如果從早期版本的MongoDB升級,請參閱升級到MongoDB 3.0或升級到MongoDB 3.2的指導,然后再繼續更改存儲引擎。
在啟用新的WiredTiger存儲引擎之前,請確保所有副本集/分片集群成員至少運行MongoDB 2.6.8版,最好是3.0.0版或更高版本。副本集可以具有不同存儲引擎的成員。 因此,您可以更新成員以滾動的方式使用WiredTiger存儲引擎。 在更改所有成員使用WiredTiger之前,您可能希望在一段時間內運行混合存儲引擎。 但是,性能會因工作量而異。
在configurefile中添加engine: "wiredTiger",并更換—dbpath 后重啟實例
由于dbpath是新目錄,副本集會執行initial sync進行重新同步,重新同步的時間取決于數據量的大小和網絡情況。
為使用WiredTiger存儲引擎運行的新mongod實例準備數據目錄。 mongod必須具有此目錄的讀寫權限。 您可以刪除已停止的輔助成員的當前數據目錄的內容,也可以完全創建新的目錄。
與WiredTiger的mongod不會從使用不同的存儲引擎創建的數據文件開始。
Part5:Driver兼容性
絕大部分dirver版本只要支持3.0也支持3.2
更多driver兼容性參見:
https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/
Warning:警告
2.6升級3.0
升級后不能降級低于2.6.8版本
2.6版本開啟認證模式要升級3.0,必須先升級authSchema。
運行authSchemaUpgrade并升級3.0后,無法降級到2.6并開啟認證模式
——總結——
同小版本升級一樣,2.6升級3.0版本沒有什么難度,主要在于如果您在2.6版本已經開啟了認證,那么一定要做好authSchema的相關升級操作,并了解降級的限制。由于編寫時間也很倉促,文中難免會出現一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正。
喜歡的讀者可以點個贊來個關注,您的贊美和關注是對筆者繼續發文的最大鼓勵與支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。