Mongodb 版本升级与降级

举报
shm 发表于 2018/04/02 09:50:12 2018/04/02
【摘要】 几年前mongodb云服务还未普及,许多客户都是自己购买虚拟机,然后再在虚拟机上搭建自己的mongodb 服务,自己运维mongodb,这是前些年大部分客户的业务场景。最近Mongodb 版本迭代数据越来越快,这不自己的版本才刚熟悉起来,可上官网一看,官网上最新的版本早已超出自己运营的版本好几代了,最新的版本又是各自新特性,各种性能的提高,看的心痒痒,要不咱的老版本也升级下?下面就详细说说...

 

几年前mongodb云服务还未普及,许多客户都是自己购买虚拟机,然后再在虚拟机上搭建自己的mongodb 服务,自己运维mongodb,这是前些年大部分客户的业务场景。最近Mongodb 版本迭代数据越来越快,这不自己的版本才刚熟悉起来,可上官网一看,官网上最新的版本早已超出自己运营的版本好几代了,最新的版本又是各自新特性,各种性能的提高,看的心痒痒,要不咱的老版本也升级下?下面就详细说说升级的准备工作和步骤以及怎样确认升级是否成功,如果一旦升级失败,怎么降级来保障业务不受处理

 

升级前的准备工作

先确认目前业务运营的mongodb的版本,在mongodb二进制目录下执行mongod  --version,输出结果中有db version字段,这个字段显示的就是你当前的mongodb版本。然后确认下你想升级的mongodb版本。如果工作版本和目标版本相差比较大,那就必须一步一步的向上升级,最后达到目标版本。例如目前工作的版本是3.0,目标版本是3.6。那就必须先从3.0升级到3.2,再从3.2升级到3.4,最后在从3.4升级到3.6。在官网可以查到具体版本之间的升级,下图左面就是mongodb各个版本之间的关系了。

截图5.PNG

 

升级步骤

    假设目前我们的工作版本是3.2,我们想升级的版本是3.4。我们点击Release Note for MongoDB 3.4,找到Upgrade Procedures章节

截图6.PNG

Upgrade Procedures章节按照mongodb部署的三种形态做了区分,不同形态的升级方式不一样,我们先确认自己的部署形态然后做查看相应的升级章节(3.2升级到3.4的步骤详情可以参考我的前一篇文章: http://forum.huaweicloud.com/thread-7637-1-1.html)

 

版本升级成功后需要注意的问题

版本兼容性是版本升级最重要的问题,当从低版本升级到高版本,高版本肯定有一些特性是低版本没有的,在低版本刚升级到高版本后,一定先让我们的业务程序运行一段时间,只有在线上正常运行一段时间后,我们才可以开始使用非兼容的新特性。我们在目标数据库上执行

db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } ),执行完这个命令后才表示打开3.4数据库版本的非兼容特性,你的应用程序才能开始使用3.4的非兼容新特性。

 

版本降级

如果升级到高版本一段时间后,因为各种原因想继续使用以前的老版本,那就需要进行版本降级处理。版本降级中最复杂的问题还是兼容特性的处理,如果你已经使用了高版本的一些新特性,而这些特性在低版本中是不支持的,那么将版本降级到低版本mongodb肯定会运行出错。那么在替换 老版本的二进制程序前,我们首先需要移除高版本里面的非兼容特性,官网上有移除高版本非兼容特性的指导步骤,执行这些步骤就可以把非兼容的特性去掉,原理就是这些非兼容特性在生成的时候其实都在每个记录里面增加一个特殊的字段用于标明是新特性,查找含有这些标记的记录然后将其进行降级处理。昨晚非兼容特性降级处理后就可以执行二进制降级了,将高版本的二进制降级成低版本的二进制,步骤可以参考官网文档.

截图7.PNG


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。