3分钟完成MongoDB2.6升级3.0
3分钟完成MongoDB2.6升级3.0
前言
Part1:写在最前
自从3.0版本起,MongoDB支持了WT存储引擎,这个引擎相对老的MMAPv1存储引擎来讲,具有更高的压缩比,且支持文档级并发控制。也正因为WT的优良特性,在MongoDB3.2版本起,WT存储引擎作为了默认存储引擎。本文将简述2.6升级3.0的过程和注意事项
实战
Part1:建议和清单
限制
要升级到3.0版本,首先现有集群必须是2.6版本。如果是早期的版本,则必须先升级到2.6版本才可以升级3.0版本。如果2.6集群已经开启了认证模式,升级前需进行authSchema 版本升级,详见关于认证章节。
准备
在开始升级之前,请参阅MongoDB 3.0文档中的兼容性更改,以确保您的应用程序和部署与MongoDB 3.0兼容。 在开始升级之前解决部署中的不兼容问题。
升级MongoDB之前,请先在临时环境中测试应用程序,以确保升级顺利进行
降级版本的限制
升级到3.0后,您只能降级到2.6.8或更高版本。
注意:避免重新配置包含不同MongoDB版本成员的副本集,因为MongoDB版本中的权限验证规则可能会有所不同。
低版本升级先决条件
要将副本集升级到3.0,所有副本集成员必须运行版本2.6。 要从早期的MongoDB版本升级副本集,请先将副本集的所有成员升级到最新的2.6系列版本,然后按照以下步骤从MongoDB 2.6升级到3.0。
Part2:升级过程
先升级副本集中的一个Secondary
关闭mongod实例,并用3.0二进制文件的bin目录代替2.6二进制文件的bin目录。
重新启动成员并等待成员恢复到Secondary状态,然后再升级下一个Secondary成员。 要检查成员的状态,请在mongo shell中发出rs.status()。
stepdown副本集中的Primary
将mongo shell连接到Primary服务器并使用rs.stepDown()来降级主服务器并强制其他节点选举新的Primary服务器。
升级Primary服务器
当rs.status()显示原Primary节点已经变为Secondary,新的PRIMARY已经被选举出来的时候,开始升级原Primary节点:
关闭数据库,并用3.0二进制文件的bin目录代替2.6二进制文件的bin目录。
启动原Primary节点。
Part3:关于认证
authSchema
2.6版本开启认证模式要升级3.0,必须先升级authSchema。
运行authSchemaUpgrade并升级3.0后,无法降级到2.6并开启认证模式
查看authSchema版本是不是3.0(at least)
use admin
db.system.version.find( { _id: "authSchema" })
升级SchemaUpgrade,复制集的话在主库执行该命令
db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });
Part4:变更存储引擎
您必须使用MongoDB 3.0或更高版本才能使用WiredTiger存储引擎。 如果从早期版本的MongoDB升级,请参阅升级到MongoDB 3.0或升级到MongoDB 3.2的指导,然后再继续更改存储引擎。
在启用新的WiredTiger存储引擎之前,请确保所有副本集/分片集群成员至少运行MongoDB 2.6.8版,最好是3.0.0版或更高版本。副本集可以具有不同存储引擎的成员。 因此,您可以更新成员以滚动的方式使用WiredTiger存储引擎。 在更改所有成员使用WiredTiger之前,您可能希望在一段时间内运行混合存储引擎。 但是,性能会因工作量而异。
在configurefile中添加engine: "wiredTiger",并更换—dbpath 后重启实例
由于dbpath是新目录,副本集会执行initial sync进行重新同步,重新同步的时间取决于数据量的大小和网络情况。
为使用WiredTiger存储引擎运行的新mongod实例准备数据目录。 mongod必须具有此目录的读写权限。 您可以删除已停止的辅助成员的当前数据目录的内容,也可以完全创建新的目录。
与WiredTiger的mongod不会从使用不同的存储引擎创建的数据文件开始。
Part5:Driver兼容性
绝大部分dirver版本只要支持3.0也支持3.2
更多driver兼容性参见:
https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/
Warning:警告
2.6升级3.0
升级后不能降级低于2.6.8版本
2.6版本开启认证模式要升级3.0,必须先升级authSchema。
运行authSchemaUpgrade并升级3.0后,无法降级到2.6并开启认证模式
——总结——
同小版本升级一样,2.6升级3.0版本没有什么难度,主要在于如果您在2.6版本已经开启了认证,那么一定要做好authSchema的相关升级操作,并了解降级的限制。由于编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。
喜欢的读者可以点个赞来个关注,您的赞美和关注是对笔者继续发文的最大鼓励与支持!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Oracle备份还原实践
一、项目背景: 1.1 客户需求: 将物理机房生产环境的Oracle/MySQL及阿里云的RDS数据库备份出来,存储到一个集中数据库存储服务器,实现异地备份,并且在还原环境内要将MySQL/Oracle以及阿里云RDS备份数据还原到测试环境,并判断还原数据库是否存在异常,检验数据的一致性,如有异常邮件或微信告警,每周生成Excel报表发送给负责人。 1.2 需求要点: 网络通信:阿里金融云/公有云/物理机房环境网络须在固定网段互通。 网络安全:各个网段隔离,有需求通信的网段开放通信,需实现端口级别控制。 数据备份:MySQL/Oracle/RDS实现数据库备份。 数据传输:采用定时crond+scp+rsync配合传输。 数据校验:保障数据库还原成功的可靠性。 监控告警:***网络中断,或数据库备份失败等需要发送通知到管理员。 报表生成:将数据库还原的信息生成报表统一发送给管理员。 1.3 解决方案: 网络通信:在阿里云端,采用深信服IPSec ***与物理机房Cisco设备隧道互通。开通传输网段,将此网段作为网络传输中转网段。 网络安全:各个网段隔离,如有跨地区或机房相互通信的需求,...
- 下一篇
中国要自建互联网根服务器?
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 6月 26日,中国工信部官网一篇题为“工业和信息化部关于同意中国互联网络信息中心设立域名根服务器(F、I、K、L根镜像服务器)及域名根服务器运行机构的批复”的文章引起外界广泛关注。甚至有人猜测是否意味着中国这是要建设自己的根服务器了。到底事实如何呢?《环球时报》记者当天采访了相关领域的专家。 之所以外界在看到这则消息时那么敏感,是因为被称为互联网“中枢神经”的根服务器确实非常重要。根服务器负责互联网最顶级的域名解析。美国利用先发优势主导的根服务器治理体系已延续几十年。在过去的IPv4(互联网协议第四版)体系内,全球共13个根服务器,唯一主根服务器部署在美国,其余12个辅根有9个在美国,2个在欧洲,1个在日本。 工信部当天的消息称,同意中国互联网络信息中心设立域名根服务器(F、I、K、L根镜像服务器)及成为域名根服务器运行机构,负责运行、维护和管理相关域名根服务器。 工信部赛迪研究院互联网研究所副所长陆峰26日对《环球时报》记者表示,这次中方要建设的域名根服务器的镜像服务器,这与改变域名根服务器受制于人的局面并没有直...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路