据 MongoDB 官网发布:从 4.4.2~4.4.4 版本升级到 4.4.8+ 或 5.0.2 +版本时,存在严重 bug ,有升级计划的伙伴们请暂缓实施。
造成原因
升级过程中即使正常关闭了mongod实例,MongoDB仍有可能使用WT引擎metadata文件中的错误信息,从而使用错误的checkpoint,导致MongoDB中的数据产生不一致。
问题描述
- 4.4.2、4.4.3、4.4.4版本在彻底关闭时留下一段无效的元数据。
- 我们在 4.4.5 中开始使用元数据进行决策时发现并修复了该错误。
- 在 4.4.8 和更新版本中,我们添加了假设元数据正确的代码,当它不正确时,WiredTiger 可以删除升级后应保留的内容。
解决方案
正在使用上述版本的伙伴们暂时不要升级,等待修复该问题后再升级。
软件介绍
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
它支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。
它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB 服务端可运行在 Linux、Windows 或 OS X 平台,支持 32 位和 64 位应用,默认端口为 27017。推荐运行在 64 位平台,因为 MongoDB 在 32 位模式运行时支持的最大文件尺寸为 2GB。
功能特性
它的特点是高性能、易部署、易使用,存储数据非常方便。
主要功能特性有:
- 面向集合存储,易存储对象类型的数据。
- 模式自由
- 支持动态查询
- 支持完全索引,包含内部对象
- 支持查询
- 支持复制和故障恢复
- 使用高效的二进制数据存储,包括大型对象(如视频等)
- 自动处理碎片,以支持云计算层次的扩展性
- 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言
- 文件存储格式为BSON(一种JSON的扩展)
- 可通过网络访问
整体架构
内部架构