MongoDB Atlas维护指南:常见类型、注意事项与窗口设置

为了给Atlas用户更好的产品体验,MongoDB产品团队会进行定期维护。

本文将会介绍:

  • 常见维护项目种类及频率,注意事项
  • 维护期间的影响及建议
  • 维护窗口设置说明
  • 维护告警设置和邮件通知范例

维护窗口常见项目

  • 定期SSL证书轮换
  • 软件升级:包括MongoDB的小版本升级、其他附属功能的版本升级
  • 非紧急安全补丁
  • 云服务提供商的非紧急维护,例如:
    • 硬件更改(例如EC2实例升级)
    • 实例操作系统升级(例如从CentOS 7.5升级到7.6)

常见维护窗口种类及频率

1、实例重启:虚拟机重启维护

  • 频率:每周至两周一次
  • 补充说明:这是针对操作系统补丁执行的维护类型。

2、云服务提供商计划的维护:虚拟机停止/启动维护

  • 频率:每月一次
  • 补充说明:当集群更新到新的实例大小时进行维护。例如,当我们收到云服务提供商通知Atlas集群中的某个实例状态下降并计划退役时。

3、MongoDB小版本更新:Mongod进程重启维护

  • 频率:每两个月一次
  • 补充说明:
    • MongoDB的次要版本升级(最常见的情况)
    • 更改Atlas集群的默认启动参数(例如,更改Atlas集群支持的TLS版本)

维护相关注意事项

  • 紧急维护无法跳过。对于紧急情况下的维护操作,必须执行,无法忽略。
  • 代理程序升级对客户的数据库性能没有任何影响,因此这些升级不会在维护窗口时进行。
  • 可能会出现单个更改(例如较小的MongoDB版本更改)触发维护窗口警报的情况;然而,在实际执行维护操作时,可能会有多个待处理的更改,这些更改将同时应用。
  • 被视为安全性关键的维护操作将不受项目上设置的维护窗口的影响;客户将无法停止这些维护事件的应用。

维护期间的影响及建议

  • 在整个维护过程中,只会发生一次选举。平均而言,一次选举可能需要五秒钟,并且整个维护过程可能持续几分钟。
  • 如果应用程序可以承受一次选举,则不会产生维护downtime。
  • Retryable writes操作有助于在选举新的主节点期间防止写入错误。
  • Atlas的Test Failover feature功能可用于测试应用程序在选举事件发生时的行为。
  • 为了避免在高峰时间运行维护操作,可以配置维护窗口。这样可以在指定的时间段内进行维护,避免对业务产生较大影响。

维护窗口设置

1、在Project Setting页面中,找到"Set Preferred Cluster Maintenance Start Time"选项并设置为"On"。

2、点击铅笔图标。

3、在下面展开页面设置开始时间。

4、如果希望Atlas自动延迟一周的计划维护,请点击"Automatically defer maintenance for one week"。

维护窗口设置说明

可以在每个Project中指定不同的维护窗口,当需要进行维护被排期间时,将按照以下方式进行:

  • 例如,可以指定每周三凌晨四点开始进行维护。(注意时区设定!)
  • 如果指定的维护窗口距离当前时间大于或等于72小时,则维护事件将成功排定。如果小于72小时,则会将其推迟到下周。
  • 例如,如果周二发出排在周三凌晨四点进行的维护,由于距离计划时间小于72小时,维护将推迟到下一周的周三凌晨四点才会进行。
  • 默认Project Owner会在每周计划维护前72小时收到电子邮件通知,并在Atlas用户界面中获得即将进行维护的通知。在Project层级的提示横幅中,可以进一步设置:
    a. 手动再推迟一周
    b. 手动立即进行维护
    c. 不做任何操作,等待按计划时间进行维护

如果确认要将维护推迟第二次,将会在维护计划前的48-72小时内出现将维护推迟一周的选项。
在此之前,无法预先选择第二次推迟的选项。

  • 同一Project中的所有集群的维护会并行开始。
  • 每个维护事件最多可推迟两次。

维护告警设置及邮件通知范例

如果希望收到邮件通知,可在Alert中进行相关维护窗口告警设置。

我们会在维护计划设置、维护开始和维护自动推迟的节点为您发送邮件提醒。

维护已计划

维护开始

维护自动推迟

查看维护历史记录

可在Project的Activity Feed中进行筛选查看。

第一步

第二步

第三步

以上就是本期关于Atlas维护指南的全部内容。

如果本文对您有帮助,别忘了收藏和转发!

相关推荐
做梦敲代码15 分钟前
达梦数据库-读写分离集群部署
数据库·达梦数据库
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger1 小时前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud1 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡1 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷1 小时前
Redis
数据库·redis·缓存
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名2 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库
一只路过的猫咪2 小时前
thinkphp6使用MongoDB多个数据,聚合查询的坑
数据库·mongodb