Docker 的優(yōu)點(diǎn)
1299
2025-04-02
幾年前mongodb云服務(wù)還未普及,許多客戶都是自己購買虛擬機(jī),然后再在虛擬機(jī)上搭建自己的mongodb 服務(wù),自己運(yùn)維mongodb,這是前些年大部分客戶的業(yè)務(wù)場(chǎng)景。最近Mongodb 版本迭代數(shù)據(jù)越來越快,這不自己的版本才剛熟悉起來,可上官網(wǎng)一看,官網(wǎng)上最新的版本早已超出自己運(yùn)營的版本好幾代了,最新的版本又是各自新特性,各種性能的提高,看的心癢癢,要不咱的老版本也升級(jí)下?下面就詳細(xì)說說升級(jí)的準(zhǔn)備工作和步驟以及怎樣確認(rèn)升級(jí)是否成功,如果一旦升級(jí)失敗,怎么降級(jí)來保障業(yè)務(wù)不受處理
升級(jí)前的準(zhǔn)備工作
先確認(rèn)目前業(yè)務(wù)運(yùn)營的mongodb的版本,在mongodb二進(jìn)制目錄下執(zhí)行mongod? --version,輸出結(jié)果中有db version字段,這個(gè)字段顯示的就是你當(dāng)前的mongodb版本。然后確認(rèn)下你想升級(jí)的mongodb版本。如果工作版本和目標(biāo)版本相差比較大,那就必須一步一步的向上升級(jí),最后達(dá)到目標(biāo)版本。例如目前工作的版本是3.0,目標(biāo)版本是3.6。那就必須先從3.0升級(jí)到3.2,再從3.2升級(jí)到3.4,最后在從3.4升級(jí)到3.6。在官網(wǎng)可以查到具體版本之間的升級(jí),下圖左面就是mongodb各個(gè)版本之間的關(guān)系了。
升級(jí)步驟
假設(shè)目前我們的工作版本是3.2,我們想升級(jí)的版本是3.4。我們點(diǎn)擊Release Note for MongoDB 3.4,找到Upgrade Procedures章節(jié)
Upgrade Procedures章節(jié)按照mongodb部署的三種形態(tài)做了區(qū)分,不同形態(tài)的升級(jí)方式不一樣,我們先確認(rèn)自己的部署形態(tài)然后做查看相應(yīng)的升級(jí)章節(jié)(3.2升級(jí)到3.4的步驟詳情可以參考我的前一篇文章: http://forum.huaweicloud.com/thread-7637-1-1.html)
版本升級(jí)成功后需要注意的問題
版本兼容性是版本升級(jí)最重要的問題,當(dāng)從低版本升級(jí)到高版本,高版本肯定有一些特性是低版本沒有的,在低版本剛升級(jí)到高版本后,一定先讓我們的業(yè)務(wù)程序運(yùn)行一段時(shí)間,只有在線上正常運(yùn)行一段時(shí)間后,我們才可以開始使用非兼容的新特性。我們?cè)谀繕?biāo)數(shù)據(jù)庫上執(zhí)行
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } ),執(zhí)行完這個(gè)命令后才表示打開3.4數(shù)據(jù)庫版本的非兼容特性,你的應(yīng)用程序才能開始使用3.4的非兼容新特性。
版本降級(jí)
如果升級(jí)到高版本一段時(shí)間后,因?yàn)楦鞣N原因想繼續(xù)使用以前的老版本,那就需要進(jìn)行版本降級(jí)處理。版本降級(jí)中最復(fù)雜的問題還是兼容特性的處理,如果你已經(jīng)使用了高版本的一些新特性,而這些特性在低版本中是不支持的,那么將版本降級(jí)到低版本mongodb肯定會(huì)運(yùn)行出錯(cuò)。那么在替換 老版本的二進(jìn)制程序前,我們首先需要移除高版本里面的非兼容特性,官網(wǎng)上有移除高版本非兼容特性的指導(dǎo)步驟,執(zhí)行這些步驟就可以把非兼容的特性去掉,原理就是這些非兼容特性在生成的時(shí)候其實(shí)都在每個(gè)記錄里面增加一個(gè)特殊的字段用于標(biāo)明是新特性,查找含有這些標(biāo)記的記錄然后將其進(jìn)行降級(jí)處理。昨晚非兼容特性降級(jí)處理后就可以執(zhí)行二進(jìn)制降級(jí)了,將高版本的二進(jìn)制降級(jí)成低版本的二進(jìn)制,步驟可以參考官網(wǎng)文檔.
MongoDB
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。