溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

3分鐘完成MongoDB2.6升級(jí)3.0

發(fā)布時(shí)間:2020-06-30 15:05:24 來(lái)源:網(wǎng)絡(luò) 閱讀:16598 作者:dbapower 欄目:MongoDB數(shù)據(jù)庫(kù)

3分鐘完成MongoDB2.6升級(jí)3.0

3分鐘完成MongoDB2.6升級(jí)3.0

前言

Part1:寫在最前

自從3.0版本起,MongoDB支持了WT存儲(chǔ)引擎,這個(gè)引擎相對(duì)老的MMAPv1存儲(chǔ)引擎來(lái)講,具有更高的壓縮比,且支持文檔級(jí)并發(fā)控制。也正因?yàn)閃T的優(yōu)良特性,在MongoDB3.2版本起,WT存儲(chǔ)引擎作為了默認(rèn)存儲(chǔ)引擎。本文將簡(jiǎn)述2.6升級(jí)3.0的過(guò)程和注意事項(xiàng)

實(shí)戰(zhàn)

Part1:建議和清單

限制

要升級(jí)到3.0版本,首先現(xiàn)有集群必須是2.6版本。如果是早期的版本,則必須先升級(jí)到2.6版本才可以升級(jí)3.0版本。如果2.6集群已經(jīng)開(kāi)啟了認(rèn)證模式,升級(jí)前需進(jìn)行authSchema 版本升級(jí),詳見(jiàn)關(guān)于認(rèn)證章節(jié)。

 

準(zhǔn)備

在開(kāi)始升級(jí)之前,請(qǐng)參閱MongoDB 3.0文檔中的兼容性更改,以確保您的應(yīng)用程序和部署與MongoDB 3.0兼容。 在開(kāi)始升級(jí)之前解決部署中的不兼容問(wèn)題。

升級(jí)MongoDB之前,請(qǐng)先在臨時(shí)環(huán)境中測(cè)試應(yīng)用程序,以確保升級(jí)順利進(jìn)行

 

降級(jí)版本的限制

升級(jí)到3.0后,您只能降級(jí)到2.6.8或更高版本。

注意:避免重新配置包含不同MongoDB版本成員的副本集,因?yàn)?/span>MongoDB版本中的權(quán)限驗(yàn)證規(guī)則可能會(huì)有所不同。

 

低版本升級(jí)先決條件

要將副本集升級(jí)到3.0,所有副本集成員必須運(yùn)行版本2.6 要從早期的MongoDB版本升級(jí)副本集,請(qǐng)先將副本集的所有成員升級(jí)到最新的2.6系列版本,然后按照以下步驟從MongoDB 2.6升級(jí)到3.0。

 

 

Part2:升級(jí)過(guò)程

先升級(jí)副本集中的一個(gè)Secondary

關(guān)閉mongod實(shí)例,并用3.0二進(jìn)制文件的bin目錄代替2.6二進(jìn)制文件的bin目錄。

重新啟動(dòng)成員并等待成員恢復(fù)到Secondary狀態(tài),然后再升級(jí)下一個(gè)Secondary成員。 要檢查成員的狀態(tài),請(qǐng)?jiān)?/span>mongo shell中發(fā)出rs.status()。

 

 

stepdown副本集中的Primary

mongo shell連接到Primary服務(wù)器并使用rs.stepDown()來(lái)降級(jí)主服務(wù)器并強(qiáng)制其他節(jié)點(diǎn)選舉新的Primary服務(wù)器。

 

 

升級(jí)Primary服務(wù)器

當(dāng)rs.status()顯示原Primary節(jié)點(diǎn)已經(jīng)變?yōu)?/span>Secondary,新的PRIMARY已經(jīng)被選舉出來(lái)的時(shí)候,開(kāi)始升級(jí)原Primary節(jié)點(diǎn):

關(guān)閉數(shù)據(jù)庫(kù),并用3.0二進(jìn)制文件的bin目錄代替2.6二進(jìn)制文件的bin目錄。

啟動(dòng)原Primary節(jié)點(diǎn)。

 

 

 

 Part3:關(guān)于認(rèn)證

authSchema

2.6版本開(kāi)啟認(rèn)證模式要升級(jí)3.0,必須先升級(jí)authSchema。

運(yùn)行authSchemaUpgrade并升級(jí)3.0后,無(wú)法降級(jí)到2.6并開(kāi)啟認(rèn)證模式

查看authSchema版本是不是3.0at least

use admin

db.system.version.find( { _id: "authSchema" })

升級(jí)SchemaUpgrade,復(fù)制集的話在主庫(kù)執(zhí)行該命令

db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });

 

 Part4:變更存儲(chǔ)引擎

您必須使用MongoDB 3.0或更高版本才能使用WiredTiger存儲(chǔ)引擎。 如果從早期版本的MongoDB升級(jí),請(qǐng)參閱升級(jí)到MongoDB 3.0或升級(jí)到MongoDB 3.2的指導(dǎo),然后再繼續(xù)更改存儲(chǔ)引擎。

 

在啟用新的WiredTiger存儲(chǔ)引擎之前,請(qǐng)確保所有副本集/分片集群成員至少運(yùn)行MongoDB 2.6.8版,最好是3.0.0版或更高版本。副本集可以具有不同存儲(chǔ)引擎的成員。 因此,您可以更新成員以滾動(dòng)的方式使用WiredTiger存儲(chǔ)引擎。 在更改所有成員使用WiredTiger之前,您可能希望在一段時(shí)間內(nèi)運(yùn)行混合存儲(chǔ)引擎。 但是,性能會(huì)因工作量而異。

 

configurefile中添加engine: "wiredTiger",并更換—dbpath 后重啟實(shí)例

由于dbpath是新目錄,副本集會(huì)執(zhí)行initial sync進(jìn)行重新同步,重新同步的時(shí)間取決于數(shù)據(jù)量的大小和網(wǎng)絡(luò)情況。

 

為使用WiredTiger存儲(chǔ)引擎運(yùn)行的新mongod實(shí)例準(zhǔn)備數(shù)據(jù)目錄。 mongod必須具有此目錄的讀寫權(quán)限。 您可以刪除已停止的輔助成員的當(dāng)前數(shù)據(jù)目錄的內(nèi)容,也可以完全創(chuàng)建新的目錄。

 

WiredTigermongod不會(huì)從使用不同的存儲(chǔ)引擎創(chuàng)建的數(shù)據(jù)文件開(kāi)始。

 

 

 Part5:Driver兼容性

絕大部分dirver版本只要支持3.0也支持3.2

更多driver兼容性參見(jiàn):

https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/



Warning:

2.6升級(jí)3.0

升級(jí)后不能降級(jí)低于2.6.8版本

2.6版本開(kāi)啟認(rèn)證模式要升級(jí)3.0,必須先升級(jí)authSchema

運(yùn)行authSchemaUpgrade并升級(jí)3.0后,無(wú)法降級(jí)到2.6并開(kāi)啟認(rèn)證模式





——總結(jié)——

同小版本升級(jí)一樣,2.6升級(jí)3.0版本沒(méi)有什么難度,主要在于如果您在2.6版本已經(jīng)開(kāi)啟了認(rèn)證,那么一定要做好authSchema的相關(guān)升級(jí)操作,并了解降級(jí)的限制。由于編寫時(shí)間也很倉(cāng)促,文中難免會(huì)出現(xiàn)一些錯(cuò)誤或者不準(zhǔn)確的地方,不妥之處懇請(qǐng)讀者批評(píng)指正。


喜歡的讀者可以點(diǎn)個(gè)贊來(lái)個(gè)關(guān)注,您的贊美和關(guān)注是對(duì)筆者繼續(xù)發(fā)文的最大鼓勵(lì)與支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI