摘要:于是就有了这次的版本升级任务。如果返回的值小于,那么则需要用在库里具有权限的用户连上的库然后执行用户认证格式转换。参考文档及软件下载链接升级官方指南升级官方指南警告的解决方案下载下载
最近为了长远考虑想把项目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下载
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/18819.html
摘要:概述使用这个教程在和使用软件包安装社区版虽然发行版包含自己的软件包官方的社区版包通常是最新的平台支持本安装教程仅支持位操作系统详细信息请参阅平台支持软件包在自己的存储库中提供官方支持软件包此存储库包含以下软件包软件名简介一个元软件包将自动 概述 使用这个教程在 SUSE Linux 11 和 12 使用 .rpm 软件包安装 MongoDB 社区版. 虽然 SUSE 发行版包含自己的 ...
摘要:概述使用这个教程在使用软件包安装社区版本安装教程仅支持位操作系统详细信息请参阅平台支持软件包在自己的存储库中提供官方支持软件包此存储库包含以下软件包软件名简介一个元软件包将自动安装下面列出的四个组件包包含守护程序和关联配置和初始化脚本 概述 使用这个教程在 Amazon Linux 使用 .rpm 软件包安装 MongoDB 社区版. 本安装教程仅支持64位操作系统. 详细信息请参阅平...
阅读 4203·2021-09-24 09:47
阅读 1140·2021-09-03 10:33
阅读 2043·2019-08-30 11:13
阅读 1011·2019-08-30 10:49
阅读 1736·2019-08-29 16:13
阅读 1986·2019-08-29 11:28
阅读 3074·2019-08-26 13:31
阅读 3618·2019-08-23 17:14