服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - 即将停服,如何规划 MongoDB 升级

即将停服,如何规划 MongoDB 升级

2024-01-31 15:37云云众生s MongoDB

如果您需要协助 MongoDB 升级,Percona 可以帮助您制定个性化的升级计划。我们的专家将帮助您升级 MongoDB,主动识别和缓解升级周期及之后可能出现的障碍、不兼容问题和潜在的性能问题。

MongoDB 4.4和5.0即将停止维护,是时候升级数据库软件了。下面简述升级的方法。

译自How to Plan Your MongoDB Upgrade,作者 Jan Wieremjewicz 是 Percona 的高级产品经理,领导 MongoDB 和 PostgreSQL 的产品。他在开发、部署和维护企业系统方面拥有丰富的经验。在专业方面,他热衷于简单的解决方案,以解决复杂的问题和用户体验。

MongoDB 4.4 将在 2024 年 2 月结束生命周期(EOL),MongoDB 5.0 将在 8 月加入它。如果这还不足以激励您开始规划 MongoDB 升级,还要考虑升级有助于消除过时软件可能带来的安全和合规风险,并提供可提高数据库性能、安全性和可伸缩性的功能。

以下是较新版本 MongoDB 中的一些新功能,可能会促使您决定尽早升级。

MongoDB 5.x

  • 数据库的动态分片功能允许用户随着工作负载和数据库的发展改变分片键,而无需停机。
  • 对时间序列集合进行分片可以增强可伸缩性和性能。
  • MongoDB 5.3 引入了集群集合,它根据相关的集群索引键存储数据。这在特定顺序很重要的分析查询中,将查询性能置于写入速度之上。

MongoDB 6.x

  • 时间序列集合中的辅助和复合索引可以提升读性能,并启用新的用例,例如地理索引。
  • 增强的变更数据流允许用户访问已修改文档的先前和当前状态,以促进下游文档更新等任务并引用已删除的文档。这也支持数据定义语言(DDL)操作,例如创建或删除集合和索引。
  • 管理员可以在将审计事件存储到磁盘之前使用符合密钥管理互操作性协议(KMIP)的密钥管理系统对其进行压缩和加密。

MongoDB 7.x

  • 修改时间序列数据的能力可增加灵活性和控制力。
  • 新的聚合管道操作符和变量可实现复杂的数据转换。
  • 通配符索引可改进查询性能,实现更快的搜索。
  • 可查询加密可在允许查询加密数据的同时维护数据保密性。

我将重点介绍适用于任何 MongoDB 升级的一些最佳实践,而不是给出过于技术化的 MongoDB 升级指南,无论您是由于 4.4 EOL 而激励还是希望利用 7.0 中的最新特性。如果您正在寻找更多技术化、步骤详细的演练,可以观看最佳实践 - 升级到 MongoDB 4.4。

1. 评估您当前的环境

虽然常被忽视,但对现有设置进行全面评估对于最大限度地降低风险和停机时间,并实现顺利、成功的升级至关重要。

这可能看起来显而易见,但首先要识别您正在使用的 MongoDB 版本。知道您当前的版本对于确定您现有设置与最新版本之间的差距以及选择适当的升级路径都非常重要。

接下来,评估您的资源和硬件。例如,您当前的服务器在 CPU、内存和存储容量方面是否足以高效处理新版本?从长远来看,新设置是否能满足您未来的工作负载和扩展需求?

然后,了解您如何使用 MongoDB。它主要用于事务数据?分析查询?游戏应用程序?不同版本的 MongoDB 可能更适合特定的用例,因此评估新目标版本是否与数据库的预期用途一致至关重要。

最后,在进行升级之前,对当前数据执行彻底备份。这不仅包括数据库的内容,还包括您的应用程序数据、自定义设置、复制配置、索引和安全设置。Percona Backup for MongoDB是一个开源社区备份工具,可帮助您备份所有这些数据。

2. 测试,再测试,再测试

在生产环境中实施升级之前,极其重要的是要创建一个单独的沙箱或准生产环境来模拟您的生产设置。您的目标是识别转换期间可能出现的任何问题、冲突或意外行为。这使您可以在一个安全可控的环境中捕获潜在问题,并尽量避免长时间的意外停机时间。

3. 制定回滚计划,以防不测

您可以做所有的准备工作,但不可预见的困难还是会发生。尽量找有升级经验的人来帮助您,无论他们是您的员工还是顾问。至少,如果确实出了问题,十分关键的是要有办法回滚到数据库的上一个版本

一个全面的 MongoDB 回滚计划通常包括:

  • 对数据和配置进行备份。
  • 记录当前状态。
  • 向关键利益相关者传达您的计划。
  • 确定您的回滚触发器。
  • 创建详细的、记录了的回滚过程。
  • 监控您的环境。
  • 分析和了解升级中出了什么问题。

4. 决定使用稳定版本还是开发版本

MongoDB的稳定版本经过了广泛的测试,被认为是可用于生产的,而那些还在开发中的版本可能还没有完全准备好面向大众。您在这些版本之间的选择应该由您组织的风险承受能力和升级的具体目标来指导。

5. 确定您的升级步骤和路径

虽然升级过程将因具体环境而异,但基本 MongoDB 升级的一般推荐路径是:

  • 进行备份。
  • 下载新二进制文件。
  • 将特性兼容值(FCV)设置为当前/以前的版本。
  • 按照您的系统类型,以滚动方式以正确的顺序关闭 Mongo 进程。
  • 用新二进制文件替换您当前的二进制文件。
  • 使用您的系统类型所需的滚动方式,以正确的顺序启动 Mongo 进程。
  • 等待24-48小时(取决于您的数据库),以确保没有问题。
  • 将 FCV 设置为新版本。

最好是以缓慢稳定的方式进行升级过程。从您当前的版本逐步升级到每个主要版本,直到达到预期的版本。例如,如果您使用的是 4.4,那么该过程看起来应该是4.4.1+ 升级到 5.0,再升级到 6.0,最后升级到 7.0。不要从 4.4 跳到 7.0。

后续步骤

完成升级后,进行一些升级后测试和优化,以确保新的 MongoDB 数据库正如预期那样运行。我们将在下一篇文章中讨论这一点。

如果您需要协助 MongoDB 升级,Percona 可以帮助您制定个性化的升级计划。我们的专家将帮助您升级 MongoDB,主动识别和缓解升级周期及之后可能出现的障碍、不兼容问题和潜在的性能问题。

原文地址:https://mp.weixin.qq.com/s/ORvvlyEHiLZVlQqjPzsgTA

延伸 · 阅读

精彩推荐
  • MongoDB在Linux服务器中配置mongodb环境的步骤

    在Linux服务器中配置mongodb环境的步骤

    这篇文章主要介绍了在Linux服务器中配置mongodb环境的步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    YukiYang5802020-05-14
  • MongoDBMongodb的oplog详解

    Mongodb的oplog详解

    这篇文章主要介绍了Mongodb的oplog详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来...

    EVE4732020-05-24
  • MongoDBMongoDB常用命令小结

    MongoDB常用命令小结

    这篇文章主要介绍了MongoDB的一些常用命令,学习与使用MongoDB数据库的朋友可以参考下 ...

    MongoDB教程网3502020-04-21
  • MongoDBMongoDb优化指南

    MongoDb优化指南

    在大数据时代中,大数据量的处理已经成了考量一个数据库最重要的原因之一。这篇文章给大家分享MongoDb优化指南,感兴趣的朋友一起看看吧 ...

    MRR3142020-05-20
  • MongoDBUbuntu下安装mongodb 3.4的详细过程

    Ubuntu下安装mongodb 3.4的详细过程

    最近参照mongodb的官方文档在 Unbuntu Server 16.04上安装了 Mongodb 3.4,步骤很简单,就顺手翻译了一下这个文档,这个文档是讲述了 Mongodb 3.4 在 Ubuntu 12.04, 14.0...

    不争3252020-05-10
  • MongoDBMongoDB实现增删改查

    MongoDB实现增删改查

    本文详细讲解了MongoDB实现增删改查的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    農碼一生3782022-10-09
  • MongoDBMongoDB使用小结 一些常用操作分享

    MongoDB使用小结 一些常用操作分享

    本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell、pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程,需要的朋友...

    MongoDB教程网3472020-05-11
  • MongoDBMongoDB特定类型的查询语句实例

    MongoDB特定类型的查询语句实例

    在关系型数据库中,可以实现基于表的各种各样的查询,下面这篇文章主要给大家介绍了关于MongoDB特定类型查询的相关资料,文中通过实例代码介绍的非常详细...

    Li Guogang3442023-04-14