我在我的本地主機上設置了一個副本集,只是爲了練習使用必要的命令。我在家裏和在工作中都會這樣做。在家中,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