我们目前有一个包含两个正式成员和一个仲裁者的副本集。现在,我需要促进仲裁者成为正式成员。解决这个问题的最简单方法是什么?我没有更多的服务器可以玩,所以我需要用我得到的机器来做这件事。
1 回答
如果我理解正确:您想将仲裁器转换为同一硬件上的完整 mongo 服务器。您要考虑的第一件事是仲裁器硬件是否能够支持数据库。如果仲裁器的硬件少得多,那么其他 2 个节点的结果可能不会很好。许多仲裁器在无法支持完整数据库的机器上运行。如果您想这样做,您需要从头开始将机器设置为完整节点。无法自动将仲裁员提升为正式成员。
要做到这一点:1)1st需要关闭仲裁器上的mongod进程。然后您可能需要检查数据目录以确保它可以保存数据,因为它没有任何仲裁器 2) 使用 mongo shell 连接到主目录。如果不确定,可以在 shell 中使用 db.isMaster() 来检查哪个节点是主节点。3) 使用 rs.remove("") 将其从集合中移除。4)启动新的mongo服务器。确保数据目录为空(它将从副本集中复制)。该命令类似于 mongod --dbpath --replSet 。根据您的配置,您可能还有其他选项。5) 在主运行 rs.add() 6) 调用 rs.conf() 以确认您的配置是好的。
作为旁注,您还可以使用 rsync 在新节点和主节点之间同步数据目录以进行初始同步。但是如果你的数据很小,只有 mongo 会更容易。如果您需要使用 rsync,请参阅文档以了解所有要求。 http://docs.mongodb.org/manual/tutorial/expand-replica-set/
如果您有任何其他问题,请告诉我。
最好的,查理