MongoDB-在不断开客户端连接的情况下使副本集成员处于被动状态?
有没有一种方法可以使副本集的辅助成员处于被动状态,而无需退出临时断开所有客户端连接的副本集?我询问的原因是,我们从辅助副本集成员进行备份,因此在运行备份时,我不希望该成员成为主成员,因此我有一个脚本,该脚本将该成员的优先级更改为零,我们调用rs.reconfig()。不幸的是,这会导致暂时中断,直到客户端重新连接。备份完成后,我更改成员的优先级并再次调用rs.reconfig()。有没有其他方法可以在不造成任何干扰的情况下执行此操作 谢谢,MongoDB-在不断开客户端连接的情况下使副本集成员处于被动状态?,mongodb,Mongodb,有没有一种方法可以使副本集的辅助成员处于被动状态,而无需退出临时断开所有客户端连接的副本集?我询问的原因是,我们从辅助副本集成员进行备份,因此在运行备份时,我不希望该成员成为主成员,因此我有一个脚本,该脚本将该成员的优先级更改为零,我们调用rs.reconfig()。不幸的是,这会导致暂时中断,直到客户端重新连接。备份完成后,我更改成员的优先级并再次调用rs.reconfig()。有没有其他方法可以在不造成任何干扰的情况下执行此操作 谢谢, Richard。您可以在正在运行备份的辅助服务器上运行
Richard。您可以在正在运行备份的辅助服务器上运行,而不是重新配置副本集。被冻结的中学将没有资格在指定期间成为小学 备份完成后,您可以在辅助服务器上运行
rs.freeze(0)
,将其解冻
需要考虑的注意事项:
- 您应该确保副本集中有足够的数据承载节点,以确保在备份运行时仍然可以进行故障切换。例如,如果您有一个带有主/辅助/仲裁器的三节点副本集,则冻结辅助副本会有风险,除非您真的更喜欢中断而不是故障切换(以及中断备份)
- 您应该为
提供一定的秒数,这比预期的备份时间要长(但不要太长),这样,如果备份过程没有正确完成或未解冻次备份,次备份就不会意外地冻结较长的时间rs.freeze()
- 根据您当前的备份策略,这可能是不必要的。例如,如果您正在使用该过程,则该过程应该很快完成