为集群维护做准备
当您对集群中的节点 执行维护 时,Cloud Manager 会执行 滚动重启 。自动化逐个更新集群中的节点,直到更新所有节点,以在维护期间保持集群可用性。
在对集群执行维护之前,请查看以下注意事项,并在必要时采取措施,以保持集群可用性。
注意
要了解自动化如何在集群上执行维护,请参阅Cloud Manager 如何在集群节点上执行维护?
oplog
size
在维护开始之前,集群中的每个节点都会以独立模式重新启动。 当该节点在维护完成后添加回集群时,会重放oplog中的写入以赶上其他节点。
确保集群的 oplog 足够大,以存储应用程序在维护期间可能进行的所有写入。 使用replication.oplogSizeMB
高级部署选项调整 oplog 大小。
优先级
当在主节点上开始维护时,与该节点的所有客户端连接都会断开。 重新建立与新当选主节点的连接。
您可能更希望将特定数据中心中的节点成为新的主节点。编辑集群的配置并调整每个节点的优先级以指示您的首选主节点。
容错
正在进行维护的节点不为集群提供故障转移支持。 对于三成员副本集,如果在一个节点进行维护时有一个额外的节点不可用,则集群已失去大多数节点。 主节点将失去此状态并降级成为从节点。 在大多数集群节点可用之前,无法选举新的主节点。
对于正常运行时间较长的关键任务应用程序,请考虑在执行维护之前将三成员副本集转换为五成员副本集,以保持集群多数性,以防在维护期间有其他集群节点不可用。
注意
具有五个或更多成员的副本集更具弹性,并且在维护期间失去多数成员的可能性较小。
要提高多重容错能力,一个更简单但弹性较低的选项是在执行维护之前向三成员副本集添加临时仲裁节点。
唯一索引构建
自动化使用相同但独立的命令在集群节点上一次一个地构建索引。 为确保写入操作遵循唯一索引中索引字段的unique
质量,在构建索引之前,必须停止对集群上集合的所有写入。
您无法使用数据浏览器或 Cloud Manager 中的自动化配置资源以滚动方式创建唯一索引,因为这些方法不会停止写入集群。
如果您的使用案例要求您构建新的唯一索引:
停止对受影响集合的所有写入。 如需了解更多信息。 请参阅 MongoDB 手册中的db.fsyncLock() 。
请参阅 MongoDB 手册中的在副本集上构建索引,以滚动方式构建唯一索引。