我在我的本地主机上设置了一个副本集,只是为了练习使用必要的命令。我在家里和在工作中都会这样做。在家中,rs.initiate()
命令需要大约三秒钟的时间才能运行,并且rs.status()
需要大约两三分钟才能给出所有状态,即PRIMARY
或SECONDARY
。这与我的预期有关。MongoDB replSet需要永久启动
但是,当我在工作中做到这一点,需要rs.initiate()
近7分钟就好给我回我的提示在蒙戈外壳,那么美国前10分钟都是PRIMARY
或SECONDARY
。与此同时,我发起连接的是SECONDARY
或PRIMARY
,另外两个是RECOVERING
。他们只是坐在那里,RECOVERING
,十分钟。
虽然rs.initiate()
命令正在运行,mongod
到我已经连接(端口10001)不断吐出约“分配数据文件”的东西,然后“完成数据文件分配”,然后选择“分配新的数据文件”,等等直到它有大约十几个这样的文件。其他两个只是坐在那里“replSet无法从自身或任何种子(EMPTYCONFIG)”整个时间获得local.system.replset配置。
虽然我在检查rs.status()
,但这两位副线仍在继续接受和断开连接,并分配数据文件,就像第一步中的主要操作一样。
那么它应该需要这么长吗?而且,如果是这样,为什么我的机器在家里会在几秒钟内完成?唯一的区别是我在家里运行的是32位而不是64位。
你的工作机器有很多数据吗?而你的家用机器没有那么多(或没有)?您拥有的数据越多,副本集的创建时间就会越长。 (因为它需要复制整个数据)。 –
他们是不同的操作系统/不同的文件系统类型/不同的机器大小/ vm?听起来就像你在家里得到了正常的表现,并且在工作中出现了一些奇怪的现象 – Gregor
实际上,你应该能够在日志文件中检查需要这么长时间的事情。 – Gregor