Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB-在不断开客户端连接的情况下使副本集成员处于被动状态?_Mongodb - Fatal编程技术网

MongoDB-在不断开客户端连接的情况下使副本集成员处于被动状态?

MongoDB-在不断开客户端连接的情况下使副本集成员处于被动状态?,mongodb,Mongodb,有没有一种方法可以使副本集的辅助成员处于被动状态,而无需退出临时断开所有客户端连接的副本集?我询问的原因是,我们从辅助副本集成员进行备份,因此在运行备份时,我不希望该成员成为主成员,因此我有一个脚本,该脚本将该成员的优先级更改为零,我们调用rs.reconfig()。不幸的是,这会导致暂时中断,直到客户端重新连接。备份完成后,我更改成员的优先级并再次调用rs.reconfig()。有没有其他方法可以在不造成任何干扰的情况下执行此操作 谢谢, Richard。您可以在正在运行备份的辅助服务器上运行

有没有一种方法可以使副本集的辅助成员处于被动状态,而无需退出临时断开所有客户端连接的副本集?我询问的原因是,我们从辅助副本集成员进行备份,因此在运行备份时,我不希望该成员成为主成员,因此我有一个脚本,该脚本将该成员的优先级更改为零,我们调用rs.reconfig()。不幸的是,这会导致暂时中断,直到客户端重新连接。备份完成后,我更改成员的优先级并再次调用rs.reconfig()。有没有其他方法可以在不造成任何干扰的情况下执行此操作

谢谢,
Richard。

您可以在正在运行备份的辅助服务器上运行,而不是重新配置副本集。被冻结的中学将没有资格在指定期间成为小学

备份完成后,您可以在辅助服务器上运行
rs.freeze(0)
,将其解冻

需要考虑的注意事项:

  • 您应该确保副本集中有足够的数据承载节点,以确保在备份运行时仍然可以进行故障切换。例如,如果您有一个带有主/辅助/仲裁器的三节点副本集,则冻结辅助副本会有风险,除非您真的更喜欢中断而不是故障切换(以及中断备份)

  • 您应该为
    rs.freeze()
    提供一定的秒数,这比预期的备份时间要长(但不要太长),这样,如果备份过程没有正确完成或未解冻次备份,次备份就不会意外地冻结较长的时间

  • 根据您当前的备份策略,这可能是不必要的。例如,如果您正在使用该过程,则该过程应该很快完成


您如何备份您的中学课程?对于文件系统快照、mongodump等等,有没有理由不首先从辅助服务器创建备份?太好了!rs.freeze()命令看起来正是我所需要的。非常感谢!