暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

记录 MongoDB集群 3.4升级至3.6

我的DBA 2021-04-21
2192


Why?

由于业务扩大,部分业务开始有了独立部署集群的需求,需要秦阿姨数据到新集群,同时为将生产影响降到最低,需要支持实时迁移,利用mongo在3.6版本提供的Change Stream特性可实现该功能,新版本在安全性,功能性及性能上有巨大提升,遂拟定升级mongo集群至3.6版本。


How?

不停机升级可以按照cfg->shard->mongos 来逐个升级服务版本,由于采用的是三副本模式,故不会影响正常使用。

具体流程如下:

1.关闭集群blance

    mongos> sh.stopBalancer()

    2.修改用户 PATH,指定mongod 为新版本路径,切记需要新开bash或者应用bash_profile使配置生效

      [admin@localhost ~]$ cat  .bash_profile 
      # .bash_profile


      # Get the aliases and functions
      if [ -f ~/.bashrc ]; then
      . ~/.bashrc
      fi


      # User specific environment and startup programs
      PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/admin/mongodb_x64_3.4.17/bin
      export PATH

      3.依次关闭服务并使用3.6版本启动服务,主节点需先 执行 

        mongod > rs.stepDown()

        待从节点切换为主节点后再执行shutdown 关闭

        4.所有节点替换完软件版本后,最好检查一下集群状态及软件版本,一旦有节点版本不一致,会因集群节点通信问题导致节点不可用

        5.在任一mongos节点,修改集群FCV后,重启所有mongos

          mongosdb.adminCommand( { setFeatureCompatibilityVersion"3.6" } )

          检查状态无误,确认升级完成。


          问题总结

          1. 如存在节点报错日志如下,则说明在修改FCV值,集群节点版本存在不一致的情况,重新替换正确版本即可。

              Server min and max wire version are incompatible (6,6) with client mi
              n wire version (0,5)


            • mongo服务关闭一定要通过shutdown命令,若直接使用kill,在启动时有概率会出现如下报错

                [initandlisten] WiredTiger error (-31802) [1565933984:78859][31235:0
                x7f4ace0cad00], txn-recover: unsupported WiredTiger file version: this build  only supports major/minor versions up to 1/0,  and the file is version 2/0: WT_ERROR: non-specific WiredTiger error

                此时删除数据目录下 lock文件,重新启动即可

                  cd /data/db    进入数据文件夹
                  rm -r journal
                  rm -r mongod.lock
                  rm -r WiredTiger.lock



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

                评论