在本页面
要在大多数成员可用时重新配置副本集,请按照“ 副本集重新配置过程”中的示例
使用
当前主副本上的操作。rs.reconfig()
本文档提供了仅在少数成员可访问时重新配置副本集的步骤。
例如,您可能需要在地理上分散的副本集中使用该过程,在该副本集中任何本地成员组都无法达到多数。有关此情况的更多信息,请参见副本集选择。
通过此过程,您可以在大多数副本集
成员关闭或无法访问时进行恢复。您连接到任何尚存的成员,并使用force
该rs.reconfig()
方法的选项。
该force
选项将新配置强加到成员上。仅使用此过程从灾难性中断中恢复。请勿在force
每次重新配置时使用。另外,请勿force
在任何自动脚本中使用该选项,并且force
在仍然存在primary时不要使用该选项。
强制重新配置:
备份尚存的成员。
连接到尚存的成员并保存当前配置。考虑以下示例命令以保存配置:
在同一成员上,members
通过将数组设置为仅与尚存的成员相等,从数组中删除副本集的down和unreachable成员。考虑以下示例,该示例使用cfg
上一步中创建的变量:
在同一成员上,使用
rs.reconfig()
命令将force
选项重新设置为
true
:
此操作将强制辅助服务器使用新配置。然后将配置传播到members
阵列中列出的所有尚存成员。然后,副本集选择一个新的主副本。
注意
当使用时,副本集配置中的版本号显着增加,成千上万。这是正常现象,旨在防止在不小心在网络分区的两侧强制重新配置,然后网络分区结束时发生版本冲突。force : true
如果故障或分区只是暂时的,请尽快关闭或停用已删除的成员。
也可以看看