在MongoDB实例的运行过程中,当高可用系统监测到实例中的某个节点不可用,将触发节点切换操作并以短信或站内通知的形式通知用户。

收到的通知内容

【阿里云】尊敬的****:您的云数据库MongoDB实例:dds-bp****(名称:****)出现异常,高可用系统已经触发切换,确保实例稳定运行。请检查程序连接是否正常,建议设置自动重连机制以避免切换影响。

为什么会收到该通知

云数据库MongoDB版采用高可用架构:副本集实例中默认包含三个节点;分片集群实例中的每个Shard节点都包含三个节点。其中,Primary节点及Secondary节点对外提供访问地址,Hidden节点作为日常备节点保障高可用。 更多详情请参见副本集架构分片集群架构

常见原因如下:
  • 节点不可用:云数据库MongoDB版支持节点健康状态监测,当监测到实例中的某个节点不可用,则会触发高可用切换,对节点进行切换操作(例如将Primary节点和Secondary节点进行互换),保障实例的高可用性。
  • 节点所在的机器下线:云数据库MongoDB实例中节点所在的机器出现异常,为了避免影响业务将机器进行下线处理,则会触发高可用切换,对节点进行切换操作(例如将Primary节点和Secondary节点进行互换),保障实例的高可用性。

主备切换的影响

  • 将造成1次30秒内的连接闪断。
  • 如果您的业务通过Primary节点的地址连接,那么由于节点角色发生变化,将会对业务的读写操作造成影响,例如无法写入数据。

业务部署建议

  • 为业务设计重连机制,连接闪断后可自动重连,保障业务稳定运行。
  • 推荐生产环境的应用程序通过ConnectionStringURI地址连接数据库。当某个节点出现故障时,不会因为主备切换而影响应用的读写操作,详情请参见副本集实例连接说明分片集群实例连接说明