我想在我们的生产系统中添加一个新的唯一复合索引。在进行更改之前,我想检查字段组合是否唯一,即创建索引是成功还是失败。(组合应该是唯一的,但总是有可能早先出现问题。)
如何在不实际进行更改的情况下检查创建唯一索引是否会成功?
我们在 AWS 中托管了一个具有三个节点的 MongoDB 3.4 副本集:一个主节点、一个辅助故障转移节点和一个仲裁节点。通常,如果主实例挂掉,到辅助实例的故障转移会非常快(10-30 秒)。
今天我们遇到了一个网络问题,MongoDB 主实例与包含数据库的磁盘失去连接大约 3 分钟,CPU IOWait 达到 100%。在此期间,对主节点的查询刚刚挂起并进入超时状态。可能是因为主节点仍在运行(尽管没有响应),副本集没有进行故障转移,甚至没有开始投票。
在这种情况下是否有也会产生故障转移的配置?或者是否有一些现成的工具可以在对主节点的简单查询开始花费太长时间时强制进行故障转移?