阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MongoDB2.6简单快速升级到3.0

181次阅读
没有评论

共计 2948 个字符,预计需要花费 8 分钟才能阅读完成。

前言
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 的相关升级操作,并了解降级的限制。由于编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。

更多 MongoDB 相关教程见以下内容

MongoDB 文档、集合、数据库简介  http://www.linuxidc.com/Linux/2016-12/138529.htm

MongoDB 3 分片部署及故障模拟验证  http://www.linuxidc.com/Linux/2016-12/138529.htm

Linux CentOS 6.5 yum 安装 MongoDB  http://www.linuxidc.com/Linux/2016-12/137790.htm

CentOS 7 yum 方式快速安装 MongoDB  http://www.linuxidc.com/Linux/2016-11/137679.htm

MongoDB 的查询操作  http://www.linuxidc.com/Linux/2016-10/136581.htm

在 Azure 虚拟机上快速搭建 MongoDB 集群  http://www.linuxidc.com/Linux/2017-09/146778.htm

MongoDB 复制集原理  http://www.linuxidc.com/Linux/2017-09/146670.htm

MongoDB 3.4 远程连接认证失败  http://www.linuxidc.com/Linux/2017-06/145070.htm

Ubuntu 16.04 中安装 MongoDB3.4 数据库系统  http://www.linuxidc.com/Linux/2017-07/145526.htm

MongoDB 权威指南第 2 版 PDF 完整带书签目录 下载见 http://www.linuxidc.com/Linux/2016-12/138253.htm

MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148297.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2948字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中