Part1:寫在最前
自從3.0版本起,MongoDB支持了WT存儲引擎,這個引擎相對老的MMAPv1存儲引擎來講,具有更高的壓縮比,且支持文檔級并發(fā)控制。也正因為WT的優(yōu)良特性,在MongoDB3.2版本起,WT存儲引擎作為了默認存儲引擎。本文將簡述2.6升級3.0的過程和注意事項
Part1:建議和清單
限制
要升級到3.0版本,首先現(xiàn)有集群必須是2.6版本。如果是早期的版本,則必須先升級到2.6版本才可以升級3.0版本。如果2.6集群已經(jīng)開啟了認證模式,升級前需進行authSchema 版本升級,詳見關(guān)于認證章節(jié)。
準備
在開始升級之前,請參閱MongoDB 3.0文檔中的兼容性更改,以確保您的應(yīng)用程序和部署與MongoDB 3.0兼容。在開始升級之前解決部署中的不兼容問題。
升級MongoDB之前,請先在臨時環(huán)境中測試應(yīng)用程序,以確保升級順利進行
降級版本的限制
升級到3.0后,您只能降級到2.6.8或更高版本。
注意:避免重新配置包含不同MongoDB版本成員的副本集,因為MongoDB版本中的權(quán)限驗證規(guī)則可能會有所不同。
低版本升級先決條件
要將副本集升級到3.0,所有副本集成員必須運行版本2.6。要從早期的MongoDB版本升級副本集,請先將副本集的所有成員升級到最新的2.6系列版本,然后按照以下步驟從MongoDB 2.6升級到3.0。
Part2:升級過程
先升級副本集中的一個Secondary
關(guān)閉mongod實例,并用3.0二進制文件的bin目錄代替2.6二進制文件的bin目錄。
重新啟動成員并等待成員恢復(fù)到Secondary狀態(tài),然后再升級下一個Secondary成員。要檢查成員的狀態(tài),請在mongo shell中發(fā)出rs.status()。
stepdown副本集中的Primary
將mongo shell連接到Primary服務(wù)器并使用rs.stepDown()來降級主服務(wù)器并強制其他節(jié)點選舉新的Primary服務(wù)器。
升級Primary服務(wù)器
當rs.status()顯示原Primary節(jié)點已經(jīng)變?yōu)镾econdary,新的PRIMARY已經(jīng)被選舉出來的時候,開始升級原Primary節(jié)點:
關(guān)閉數(shù)據(jù)庫,并用3.0二進制文件的bin目錄代替2.6二進制文件的bin目錄。
啟動原Primary節(jié)點。
Part3:關(guān)于認證
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,復(fù)制集的話在主庫執(zhí)行該命令
db.getSiblingDB("admin").runCommand({authSchemaUpgrade:1 });
Part4:變更存儲引擎
您必須使用MongoDB 3.0或更高版本才能使用WiredTiger存儲引擎。如果從早期版本的MongoDB升級,請參閱升級到MongoDB 3.0或升級到MongoDB 3.2的指導(dǎo),然后再繼續(xù)更改存儲引擎。
在啟用新的WiredTiger存儲引擎之前,請確保所有副本集/分片集群成員至少運行MongoDB 2.6.8版,最好是3.0.0版或更高版本。副本集可以具有不同存儲引擎的成員。因此,您可以更新成員以滾動的方式使用WiredTiger存儲引擎。在更改所有成員使用WiredTiger之前,您可能希望在一段時間內(nèi)運行混合存儲引擎。但是,性能會因工作量而異。
在configurefile中添加engine: "wiredTiger",并更換—dbpath后重啟實例
由于dbpath是新目錄,副本集會執(zhí)行initial sync進行重新同步,重新同步的時間取決于數(shù)據(jù)量的大小和網(wǎng)絡(luò)情況。
為使用WiredTiger存儲引擎運行的新mongod實例準備數(shù)據(jù)目錄。 mongod必須具有此目錄的讀寫權(quán)限。您可以刪除已停止的輔助成員的當前數(shù)據(jù)目錄的內(nèi)容,也可以完全創(chuàng)建新的目錄。
與WiredTiger的mongod不會從使用不同的存儲引擎創(chuàng)建的數(shù)據(jù)文件開始。
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并開啟認證模式
——總結(jié)——
同小版本升級一樣,2.6升級3.0版本沒有什么難度,主要在于如果您在2.6版本已經(jīng)開啟了認證,那么一定要做好authSchema的相關(guān)升級操作,并了解降級的限制。由于編寫時間也很倉促,文中難免會出現(xiàn)一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正。
喜歡的讀者可以點個贊來個關(guān)注,您的贊美和關(guān)注是對筆者繼續(xù)發(fā)文的大鼓勵與支持!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。