将仲裁者转换为正式成员

时间:2013-09-05 19:57:16

标签: mongodb

我们目前有一个副本集,有两个正式成员&一个仲裁者。现在,我需要促使仲裁者成为正式成员。最简单的方法是什么? 我没有更多的服务器可供玩,所以我需要用我得到的机器来做这件事。

1 个答案:

答案 0 :(得分:7)

如果我理解正确:您希望将仲裁服务器转换为同一硬件上的完整mongo服务器。您要考虑的第一件事是仲裁硬件是否能够支持数据库。如果仲裁器的硬件少得多,那么其他2个节点可能不会很好。许多仲裁器在无法支持完整数据库的计算机上运行。 如果要执行此操作,则需要从头开始将机器设置为完整节点。无法自动将仲裁者提升为正式成员。

要做到这一点: 1)首先需要关闭仲裁器上的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/

如果您有任何其他问题,请告诉我。

最佳, 查理