如何无缝对MongoDB集群版本升级 2.8以下
升级需要做什么
数据备份
非常重要
用于数据回滚
下载目标版本Binary
Mongos mongod
2.8以上升级类型
Upgrade MonoDB instance
单个Mongodb实例升级
步骤
下载bin程序
解压
停止老的mongod节点
使用下载的mongod节点代替老的mognod节点
重启下载的mongod节点
问题
shut down & restart可能导致短暂暂停
可以脚本化加速切换过程
Upgrade Relica Sets
副本集实例升级
步骤
下载bin
解压
每个节点需要单独升级
首先升级Second节点
停止老的mongod节点
使用下载的节点代替老的mongodb节点
登录mongo客户端,使用rs.status()查看second恢复情况
startup2 or recovering表示正在回复
secondary表示恢复成功
继续采用以上方式进行剩余second节点升级
使用rs.stepDown()降级当前主节点
使用rs.status()查看是否已有新的primary,老的节点降级为Second节点
采用升级Second节点方式升级老的主节点
Upgrade Sharded Clusters
集群实例升级
步骤
下载bin
解压
解压
每个节点单独升级
首先升级mongos即诶但那
其次升级config server节点
mognos --configdb cfg1:xx,cfg2:xxx,cfg2:xxx
每个config server节点单独升级
升级顺序
cfg3->cfg2->cfg1
数据节点升级
upgrade a mognodb instance
采用upgrade replica sets方式
根据情况使用两种方式进行升级
2.8以上
2.8->3.0
采用MMAP存储升级必要性不大
主要是为了3.0新的存储引擎的升级(Wired Tiger)
使用3.0存储引擎采用直接替换Binary方式不能无缝升级
MMAP->Wired Tiger
数据存储格式不同
数据导出->导入
既然不能直接替换Binary的方式无缝升级,那么如何进行无缝升级
通用数据迁移方案
适用于任何需要迁移数据的系统
适用于Replic Set内部以及Sharding分片
数据类型
时效性数据(双写)
过期作为(1个月)
迁移简单
永久性数据(线上线下、消息队列)
永久有效
迁移复杂
整体负载
MongoDB集群无缝升级实践 针对场景用适合的升级方案
2.8以下
单个mongo节点版本升级
测试环境
非线上
副本集合版本升级
线上较少
小业务量使用
集群Sharding版本升级
较多
采用文本的无缝迁移方案
---------------------
作者:断剑走江湖
来源:CSDN
原文:https://blog.csdn.net/hanyueqi/article/details/60580266?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!