MongoDB Server 3.6 版本生命周期将于2021年4月结束。MongoDB Server(以下简称MongoDB) 4.2 已于2019年8月23日发布,4.2 版本的重要新特性包括:分布式事务(Distributed Transactions)、字段级加密(Client Side Field Level Encryption)、通配符索引(Wildcard Indexing)、物化视图(Materialized Views)等。
泰康云已于2020年6月开始,将MongoDB的版本基线从3.6升级到了4.2版本,并正式为MongoDB 4.2在生产环境的部署做好了准备,通过企业版管理工具部署,全面兼容4.2版本数据库使用中的性能监控、数据备份。
对于应用开发伙伴,Mo ngoDB 4.2版本值得关注的新亮 点包括: 一、分布式事务
MongoDB 4.2版本扩展了对多文档ACID【原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)】的支持保障能力,从复制集到多分片环境,能满足应用对事务更广泛、更严格的场景。 二、通配符索引
使高度异构集合(例如产品目录)的建模工作变得简单自然,通过定义过滤器,自动对集合中的所有匹配字段、子文档和数组进行索引。
三、物化视图
MongoDB 4.2支持创建数据集视图,当应用程序呈现大数据分析的结果时,在集合中对大型聚合操作的输出结果进行缓存,通过4.2版本新的$merge运算符可以更高效地更新这些结果。
四、MongoDB查询语言加强
MongoDB 4.2对查询语言进行了加强,如:更有表达力的更新命令、新的数学运算符和扩展的正则表达式。
更详细介绍可以参考MongoDB官方公众号文章:
一、背景
针对泰康云使用的MongoDB数据库,本文描述了在运维过程中如何管理MongoDB数据库版本,以及升级相关的注意事项。
二、数据库版本基线评估标准
数据库版本基线的评估基于数据库软件版本的生命周期、业界使用情况以及应用功能需求等标准,泰康云DBA团队会定期评估各数据库厂商新推出的数据库版本,以及现有版本的维护生命周期,并定期评估升级数据库版本基线。具体的评估项和评估标准如下:
评估项 | 评估标准 | 权重 |
版本GA发布时间(稳定性) | 开源产品>=1年商业产品>=2年 | 40% |
业界使用情况(应用需求) | 版本在金融保险行业是否广泛使用版本可以覆盖应用开发的大部分功能需求 | 30% |
EOS时间 | 开源产品>=1.5年商业产品>=3年 | 30% |
三、MongoDB版本生命周期和基线管理
MongoDB数据库的版本分两级:大版本和小版本。例如,当前最新的版本为4.2.7,其中前两位“4.2”表示大版本,第三位“7”表示小版本。 1、大版本更新:大版本更新会包含新的功能,最近几年推出的大版本有:3.2,3.4,3.6,4.0,4.2等。
2、小版本更新:在每个大版本的维护周期内,MongoDB官方会持续修复发现的问题,并周期性地推出更新补丁。目前4.2最新的小版本是4.2.7。
大版本 | 发布时间 | 维护生命周期截止时间 | 当前使用策略 |
MongoDB 3.2 | 2015年12月 | 2018年9月 | 不再使用 |
MongoDB 3.4 | 2016年11月 | 2020年1月 | 不再使用 |
MongoDB 3.6 | 2017年11月 | 2021年4月 | 不再使用(2020年5月31日前基线)3.6.8 |
MongoDB 4.0 | 2018年6月 | 2022年1月 | 不再使用 |
MongoDB 4.2 | 2019年8月 | 待定 | 当前建议基线(2020年6月1日开始使用)4.2.6 |
四、版本升级路线
1、大版本升级要按照顺序逐步升级,不能跳过中间的大版本。例如,从3.4升级到4.2的路线为:3.4->3.6->4.0->4.2。
2、在同一大版本内,小版本的升级不需要逐一升级,而是可以跳过中间的小版本直接升级。例如,可以从4.2.0一次升级到4.2.7。
五、 升级注意事项
1、确认驱动版本和数据库版本的兼容性
MongoDB官方会定期更新驱动版本,来支持新版的MongoDB数据库。升级MongoDB数据库时,请参考驱动兼容性文档。如果应用侧使用的驱动版本与数据库版本不兼容,应一并升级MongoDB驱动版本。常见开发语言驱动兼容性文档如下(复制链接在浏览器中打开):
a) MongoDB Java驱动:
https://docs.mongodb.com/drivers/java
b) MongoDB Go驱动:
https://docs.mongodb.com/drivers/go
c) MongoDB Node.js驱动:
https://docs.mongodb.com/drivers/node
d) 其他常用开发语言的驱动,请参考官方文档:
https://docs.mongodb.com/drivers/
2、对应用进行全面的兼容性测试
1) 大版本升级,会带来功能变化,升级生产环境前,务必先在测试环境进行充分的兼容性测试,测试通过后再升级生产环境的数据库版本。
2) 小版本升级 通常不涉及功能变化,在99%的情况下是和之前版本相兼容的。但是为降低生产环境的风险,仍建议先在测试环境进行必要的测试。
兼容性变化相关链接(复制链接在浏览器中打开):
a)MongoDB 4.2兼容性变化文档: https://docs.mongodb.com/manual/release-notes/4.2-compatibility/ b)MongoDB 4.0兼容性变化文档: https://docs.mongodb.com/manual/release-notes/4.0-compatibility/ c)MongoDB 3.6兼容性变化文档: https://docs.mongodb.com/manual/release-notes/3.6-compatibility/
欢迎咨询泰康云DBA团队,部署新的MongoDB 4.2环境或讨论将老版本MongoDB升级到4.2版本。