我有一个有5个成员的复制品。replica-1是一个主副本,其他副本是次要的:
如果主副本(replica-1)下降,第二个副本中的一个将切换到主副本。在解决了任何问题后,我将提出replica-1。然后,我需要replica-1再次成为主要的。
我怎样才能做到这一点?我试过使用以下命令,但可以选择任何二级命令:
rs.stepDown()我怎样才能强迫replica-1成为主要角色?
发布于 2018-06-09 04:14:20
您可以影响调整优先级对特定成员的选举结果。默认优先级1可以更改为0到1000之间的任何浮点值(其中0表示不可选成员)。
对于您的用例,您可能希望将首选的主优先级设置为10。除了对所有成员优先级的数字排序之外,优先级值没有任何特殊意义。例如:优先级值1.01、10或1000都高于默认优先级1。
注意:使用优先级可能会导致额外的选举,以确保优先成员在符合条件时成为主要成员。通常,最好将副本集成员看作具有类似资源的对等方,这样任何成员都可以承担主成员的角色。除非有充分理由将某一成员作为主要成员(例如,一套分布在多个数据中心的副本),否则我将避免使用优先次序,或考虑有几个优先事项相同的优先成员,以尽量减少选举。
replica-1的示例序列比所有具有默认优先级(1)的成员具有更高的优先级(10):
replica-1是当前的主电路。replica-1正在关闭。replica-2当选为新的初选。replica-1将重新启动并恢复同步,以便赶上当前的主服务器。replica-1赶上了当前的初选,并触发了一次选举,这样它就可以成为主初选。当replica-2下降到第二个连接时,它将删除所有当前连接。将replica-1和replica-2设置为相同的优先级将避免额外的选举。
https://dba.stackexchange.com/questions/209068
复制相似问题