Mongodb現(xiàn)在最新已經(jīng)發(fā)布到4.4.5版,在日常運(yùn)維工作中,時(shí)常有數(shù)據(jù)庫(kù)升級(jí)的需求,相對(duì)于其他數(shù)據(jù)庫(kù)產(chǎn)品來(lái)說(shuō),Mongodb的版本升級(jí)相對(duì)簡(jiǎn)單,所以本文對(duì)mongodb的升級(jí)進(jìn)行簡(jiǎn)單介紹,以及介紹一下之前升級(jí)過(guò)程中碰到的問(wèn)題總結(jié)。
與所有數(shù)據(jù)庫(kù)產(chǎn)品一樣,有邏輯遷移升級(jí)和物理升級(jí)兩種方式。
不管數(shù)據(jù)庫(kù)是什么架構(gòu),若允許停庫(kù)進(jìn)行升級(jí),則直接用新版本的軟件,讀取舊版本的數(shù)據(jù)庫(kù)文件(--dbpath),重新啟動(dòng)即可。如果是復(fù)制集或者分片集群架構(gòu),則可利用復(fù)制集可以在線進(jìn)行備機(jī)初始化的特性,進(jìn)行滾動(dòng)升級(jí)。滾動(dòng)升級(jí)具有如下優(yōu)勢(shì):
用新版本軟件新加從節(jié)點(diǎn)或者刪除原有從節(jié)點(diǎn)進(jìn)行重新初始化,然后主從切換,此方案對(duì)業(yè)務(wù)基本無(wú)影響,只有幾秒鐘的切換時(shí)間。
滾動(dòng)升級(jí)多了一層數(shù)據(jù)保護(hù),若升級(jí)異常,可快速回退。避免了升級(jí)異常導(dǎo)致業(yè)務(wù)異常或者數(shù)據(jù)丟失等問(wèn)題。
從低版本升級(jí)到3.4以上版本時(shí),在升級(jí)完成后,需要修改數(shù)據(jù)庫(kù)兼容性參數(shù),低于3.4以下版本,則無(wú)需修改,方法如下:
▼▼▼
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) ;
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } );
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) ;
對(duì)于分片集群來(lái)說(shuō),由于每一個(gè)片和config都是一個(gè)復(fù)制集,所以可以同樣可以采用復(fù)制集滾動(dòng)升級(jí)的方式實(shí)現(xiàn),并且mongos也可以滾動(dòng)替換,業(yè)務(wù)基本無(wú)感知。但對(duì)于分片集群的升級(jí),有一下情況需要注意:
停止業(yè)務(wù)側(cè)的元數(shù)據(jù)變更
禁止分片集群的balancer操作,及停止在不同的分片間移動(dòng)chunk。
sh.stopBalancer()
sh.getBalancerState()
升級(jí)完成后,啟用分片balancer。sh.setBalancerState(true)
備份config數(shù)據(jù)庫(kù)
修改兼容性參數(shù)只能從mongos上修改
另外升級(jí)過(guò)程中,需要注意以下問(wèn)題:
如果由3.4升級(jí)到3.6 ,可能存在部分實(shí)例沒(méi)有配置bind_ip參數(shù),因?yàn)?.6以前版本默認(rèn)監(jiān)聽(tīng)所有IP,3.6及以后默認(rèn)只監(jiān)聽(tīng)127.0.0.1 需要修改監(jiān)聽(tīng)I(yíng)P
bind_iP=localhost,IP
升級(jí)到3.6以后,PSA架構(gòu)需要添加參數(shù)enableMajorityReadConcern=false
往期推薦
更多精彩干貨分享
點(diǎn)擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/129937.html
摘要:第一部分包括一個(gè)視圖示例以及在構(gòu)建視圖時(shí)需要考慮的要點(diǎn)概述,第二部分將介紹一個(gè)示例數(shù)據(jù)模型的實(shí)現(xiàn),第三部分將深入探討如何將數(shù)據(jù)遷移到的機(jī)制。讓我們假設(shè)你已經(jīng)有創(chuàng)建一個(gè)視圖的想法了。 本文源地址:http://www.mongoing.com/archives/884 本系列的三篇博客將會(huì)提供一個(gè)關(guān)于在MongoDB上構(gòu)建360°視圖的介紹。第一部分包括一個(gè)360°視圖示例以及在構(gòu)建...
摘要:第一部分包括一個(gè)視圖示例以及在構(gòu)建視圖時(shí)需要考慮的要點(diǎn)概述,第二部分將介紹一個(gè)示例數(shù)據(jù)模型的實(shí)現(xiàn),第三部分將深入探討如何將數(shù)據(jù)遷移到的機(jī)制。讓我們假設(shè)你已經(jīng)有創(chuàng)建一個(gè)視圖的想法了。 本文源地址:http://www.mongoing.com/archives/884 本系列的三篇博客將會(huì)提供一個(gè)關(guān)于在MongoDB上構(gòu)建360°視圖的介紹。第一部分包括一個(gè)360°視圖示例以及在構(gòu)建...
摘要:監(jiān)控和管理概述監(jiān)控和管理是一個(gè)用于管理和監(jiān)控和性能的開(kāi)源平臺(tái)。是收集性能指標(biāo)的。刪除數(shù)據(jù)容器升級(jí)服務(wù)器先停再刪,如果如要保留收集數(shù)據(jù),不要執(zhí)行此操作在和上安裝客戶(hù)端客戶(hù)端是安裝在您要監(jiān)視的或主機(jī)上的一組代理和出口商。 Percona監(jiān)控和管理概述 Percona監(jiān)控和管理(PMM)是一個(gè)用于管理和監(jiān)控MySQL和MongoDB性能的開(kāi)源平臺(tái)。 它由Percona與托管數(shù)據(jù)庫(kù)服務(wù),支持和...
閱讀 1493·2023-01-11 13:20
閱讀 1851·2023-01-11 13:20
閱讀 1289·2023-01-11 13:20
閱讀 2041·2023-01-11 13:20
閱讀 4242·2023-01-11 13:20
閱讀 2948·2023-01-11 13:20
閱讀 1581·2023-01-11 13:20
閱讀 3853·2023-01-11 13:20