摘要:于是就有了這次的版本升級(jí)任務(wù)。如果返回的值小于,那么則需要用在庫(kù)里具有權(quán)限的用戶連上的庫(kù)然后執(zhí)行用戶認(rèn)證格式轉(zhuǎn)換。參考文檔及軟件下載鏈接升級(jí)官方指南升級(jí)官方指南警告的解決方案下載下載
最近為了長(zhǎng)遠(yuǎn)考慮想把項(xiàng)目MongoDB里存放的400多萬(wàn)數(shù)據(jù)遷移到云服務(wù)廠商提供的MongoDB服務(wù)上,省去自己去維護(hù)的時(shí)間,但是看了下云服務(wù)對(duì)MongoDB數(shù)據(jù)遷移上云的要求是自建MongoDB數(shù)據(jù)庫(kù)的最低版本為3.0。 公司服務(wù)器上的MongoDB是當(dāng)時(shí)用yum安裝的,版本還是2.4。于是就有了這次MongoDB的版本升級(jí)任務(wù)。好了閑話少說(shuō)直接進(jìn)入正題部分。
首先闡明,本文描述的升級(jí)只針對(duì)單點(diǎn)部署或者是master-slave部署的MongDB的版本升級(jí),不過(guò)文中引用的官方文檔中有關(guān)于復(fù)制集或者分片MongoDB的版本升級(jí)指南,可以查閱后按照步驟操作。
2.4版本升級(jí)到3.0的話由于數(shù)據(jù)兼容性的問(wèn)題,需要先升級(jí)到2.6版本,再升級(jí)至3.0
升級(jí)前先來(lái)說(shuō)個(gè)老生常談的原則:版本升級(jí)一定要在測(cè)試環(huán)境成功測(cè)試后再在production機(jī)器上進(jìn)行版本升級(jí)。
步驟:
一、2.4升級(jí)到2.6
1、下載2.6版本的MongoDB程序包并解壓
curl https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.11.tgz -o ./mongodb-2.6.tgz tar -xzvf mongodb-2.6.tgz
2、用2.6版本的mongo shell 連接2.4版本的mongos 然后運(yùn)行升級(jí)檢查
mongo —-host db.yourdomain.com:27017 admin -u yourname -p your pass use admin db.upgradeCheckAllDBs()
如果mongo服務(wù)需要啟用用戶驗(yàn)證那么在升級(jí)到2.6版本之前要確保admin庫(kù)里至少有一個(gè)權(quán)限為userAdminAnyDatabase的用戶存在
use admin db.addUser({user: "root", pwd: "xxxxd", roles: ["userAdminAnyDatabase"]})
3.將2.4版本mongo的二進(jìn)制文件替換成剛才下載的程序包里的bin目錄里的二進(jìn)制文件
sudo service mongod stop sudo chown -R root:root yourmongo2.6dir/bin //把mongodb用到的二進(jìn)制文件換成2.6版本的二進(jìn)制文件然后再啟動(dòng)mongod sudo service mongod start
二、2.6升級(jí)到3.0
1、下載3.0的程序包
curl https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.9.tgz -o ./mongodb-3.0
2、升級(jí)mongodb的用戶數(shù)據(jù)格式
2.6升級(jí)到3.0前需要驗(yàn)證現(xiàn)有的用戶schema, 在3.0中MongoDB完全棄用了之前的用戶授權(quán)驗(yàn)證模式,所以在升級(jí)3.0前需要把2.6的用戶schema升級(jí)到兼容3.0的格式。
use admin db.system.version.find( { _id: "authSchema" })
如果返回的值小于3,那么則需要用在admin庫(kù)里具有userAdminAnyDatabase權(quán)限的用戶連上mongo的admin庫(kù)然后執(zhí)行用戶認(rèn)證格式轉(zhuǎn)換。
db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });
3、停掉mongod 將2.6版本mongo的二進(jìn)制文件替換成下載的3.0程序包里的bin目錄里的二進(jìn)制文件,然后重新啟動(dòng)mongod。
大功告成,用mongo連接上數(shù)據(jù)庫(kù)進(jìn)入mongo shell后就會(huì)發(fā)現(xiàn)命令提示出當(dāng)前版本是3.0,不過(guò)升級(jí)到3.0進(jìn)入mongo shell后會(huì)有WARNING提示當(dāng)前服務(wù)器的THP(Transparent Huge Pages)是打開(kāi)的,系統(tǒng)啟用這個(gè)策略會(huì)影響MongoDB的性能,在StackOverflow上發(fā)現(xiàn)了一個(gè)比較好的解決方案,稍后會(huì)給出鏈接。
好了,這就是我在本次MongoDB升級(jí)中執(zhí)行的所有步驟,說(shuō)簡(jiǎn)單也不簡(jiǎn)單,說(shuō)難也不難,主要是設(shè)計(jì)的參考文檔比較多,這里記錄下升級(jí)步驟即是希望幫助有升級(jí)需要的同仁能少走彎路也是方便自己備查。
參考文檔及軟件下載鏈接:
升級(jí)2.6MongoDB官方指南
升級(jí)3.0MongoDB官方指南
THP警告的解決方案
MongoDB2.6下載
MongoDB3.0下載
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/18819.html
摘要:概述使用這個(gè)教程在和使用軟件包安裝社區(qū)版雖然發(fā)行版包含自己的軟件包官方的社區(qū)版包通常是最新的平臺(tái)支持本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請(qǐng)參閱平臺(tái)支持軟件包在自己的存儲(chǔ)庫(kù)中提供官方支持軟件包此存儲(chǔ)庫(kù)包含以下軟件包軟件名簡(jiǎn)介一個(gè)元軟件包將自動(dòng) 概述 使用這個(gè)教程在 SUSE Linux 11 和 12 使用 .rpm 軟件包安裝 MongoDB 社區(qū)版. 雖然 SUSE 發(fā)行版包含自己的 ...
摘要:概述使用這個(gè)教程在使用軟件包安裝社區(qū)版本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請(qǐng)參閱平臺(tái)支持軟件包在自己的存儲(chǔ)庫(kù)中提供官方支持軟件包此存儲(chǔ)庫(kù)包含以下軟件包軟件名簡(jiǎn)介一個(gè)元軟件包將自動(dòng)安裝下面列出的四個(gè)組件包包含守護(hù)程序和關(guān)聯(lián)配置和初始化腳本 概述 使用這個(gè)教程在 Amazon Linux 使用 .rpm 軟件包安裝 MongoDB 社區(qū)版. 本安裝教程僅支持64位操作系統(tǒng). 詳細(xì)信息請(qǐng)參閱平...
閱讀 4319·2021-09-24 09:47
閱讀 1192·2021-09-03 10:33
閱讀 2077·2019-08-30 11:13
閱讀 1039·2019-08-30 10:49
閱讀 1762·2019-08-29 16:13
閱讀 2052·2019-08-29 11:28
閱讀 3102·2019-08-26 13:31
閱讀 3638·2019-08-23 17:14