您的启动脚本不应初始化或监视副本集。这些应该是手动任务。
您应该记住:
- 严格来说,启动副本集是一次性的工作;一旦启动,MongoDB服务在重新启动后将继续成为同一副本集的一部分。
- 副本集通常包含多个应可互换的节点;如果它们每个都在启动时尝试初始化副本集,则会抛出错误
- 重新启动服务是正常的,预期的行为;例如,当您升级到下一个版本的MongoDB时,或者在重新启动服务器主机的修补程序之后,或者在断电之后
- 如果您的脚本在每次启动MongoDB服务时尝试初始化已初始化的副本集,则会引发错误
我强烈建议您进行三处更改:
- 让您的mongo容器仅运行mongo,而无需执行初始化和监视副本集的步骤。
- 如果要运行副本集,请以受控的手动方式仔细启动它。同上(如果要添加/删除节点或重新配置)。
- 如果要监视副本集的运行状况,请使用单独的工具执行此操作。让mongo服务部门完成其日常工作。



