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