我有一个由3个成员组成的MongoDB副本集:
我在成员#1上启用复制并添加了成员#2和#3来配置数据后,开始缓慢地迁移(受成员#1的性能限制),然后迁移到新成员。
问题:看起来这两个新成员都仅从成员#1采购数据,而不是在寻找最佳的可用来源。是否可以将它们配置为在它们都仍处于“ STARTUP2”状态时查看每次可用的部分数据?
例如,成员2已经处理了30%的数据,而成员3可以将其用作部分来源(稍后再验证),而不是仅从成员1进行慢速采购。
谢谢
我想我已经找到了解决方法:db.adminCommand( { replSetSyncFrom: "host:port" })
这将暂时覆盖当前mongod的默认同步目标。对于状态为[[STARTUP2的源,显然可以正常工作。
参考:https://docs.mongodb.com/manual/reference/command/replSetSyncFrom/并且稍后它将自动恢复为默认行为:
mongod将在以下情况下恢复为默认的同步行为情况:mongod实例重新启动。
- mongod与同步目标之间的连接关闭。
- 如果同步目标下降超过30秒在副本集的另一个成员之后。