点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


在日常运维工作中,时常有数据库升级的需求,相对于其他数据库产品来说,Mongodb的版本升级相对简单,所以本文对mongodb的升级进行简单介绍,以及介绍一下之前升级过程中碰到的问题总结。
逻辑迁移升级
使用此方案的优点是可以跨多个版本进行迁移升级,缺点是数据迁移速度慢。
物理升级
滚动升级具有如下优势:
用新版本软件新加从节点或者删除原有从节点进行重新初始化,然后主从切换,此方案对业务基本无影响,只有几秒钟的切换时间。 滚动升级多了一层数据保护,若升级异常,可快速回退。避免了升级异常导致业务异常或者数据丢失等问题。
▼▼▼
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) ;
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } );
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) ;
对于分片集群来说,由于每一个片和config都是一个复制集,所以可以同样可以采用复制集滚动升级的方式实现,并且mongos也可以滚动替换,业务基本无感知。但对于分片集群的升级,有以下情况需要注意:
停止业务侧的元数据变更。 禁止分片集群的balancer操作,及停止在不同的分片间移动chunk。 sh.stopBalancer() sh.getBalancerState() 升级完成后,启用分片balancer。sh.setBalancerState(true) 备份config数据库。 修改兼容性参数只能从mongos上修改。
另外升级过程中,需要注意以下问题:
如果由3.4升级到3.6 ,可能存在部分实例没有配置bind_ip参数,因为3.6以前版本默认监听所有IP,3.6及以后默认只监听127.0.0.1 需要修改监听IP。 bind_iP=localhost,IP 升级到3.6以后,PSA架构需要添加参数enableMajorityReadConcern=false。

本文作者:刘运彬(上海新炬王翦团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




