2014-01-20 21 views
0

我在mongod.log文件收到以下錯誤:如何解決空間不足的問題在MongoDB中

journal dir=/var/lib/mongodb/journal 
Mon Jan 20 15:10:19.742 [initandlisten] recover : no journal files present, no recovery needed 
Mon Jan 20 15:10:19.742 [initandlisten] 
Mon Jan 20 15:10:19.742 [initandlisten] ERROR: Insufficient free space for journal files 
Mon Jan 20 15:10:19.742 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles 
Mon Jan 20 15:10:19.742 [initandlisten] 
Mon Jan 20 15:10:19.743 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating 
Mon Jan 20 15:10:19.743 dbexit: 

這表明服務器還具有用於journal沒有更多的空間。爲服務器分配更多空間會自動解決問題還是需要手動執行某些操作才能提交新分配的空間?

回答

2

你不需要恢復你的數據庫。這裏是你的選擇:

  • 如果你沒有更多的空間來添加和不關心的寫入耐用性,你可以通過設置配置選項journal = false禁用日記記錄。
  • 您可以設置smallfiles = true使日誌文件變小。
  • 分配更多磁盤空間或將數據目錄移動到更大的磁盤。

在這兩種情況下,您都不必真正重新啓動服務器。只需關閉mongod,解決問題並啓動它。

例1:

我在AWS上運行Linux虛擬機,我只有8GB在我的根「/」,其中默認蒙戈的地方它的數據文件。我創建一個新的EBS分區或附加一些其他分區,格式化並安裝它。接下來,我編輯mongod配置將我的數據目錄放在這個新的驅動器/分區上。我還將舊目錄中的所有文件移至新位置。我啓動了mongo,它應該可以正常工作。不要忘記設置正確的目錄權限等

例2:

關閉我的虛擬機或服務器和磁盤調整。如果你使用LVM等,你可能不需要關閉 - 取決於。開始mongod - 所有的作品。

+0

我想要最後一個選項,所以我應該告訴服務器管理員爲特定服務器分配更多空間,並且完成後,我應該嘗試重新啓動或啓動MongoDB服務器? – user2481422

+0

剛剛更新了我的答案以回答您的評論;) –

+0

我的mongodb服務器未啓動。所以我想,我應該告訴管理員增加磁盤空間,一旦完成,我應該嘗試啓動它 - 請糾正我,如果我錯了 – user2481422

1

這不是缺少內存,而是硬盤空間。

是的,只是調整服務器的大小,然後重新啓動mongod應該這樣做。

+0

因此,我應該告訴服務器管理員爲特定服務器分配更多空間,當完成時,我應該嘗試重新啓動mongodb服務器? – user2481422

+0

@ user2481422是的正好 – Sammaye

+0

好的,一旦我的問題解決了,我會接受答案並按照他們的要求提高 – user2481422

0

簡答:是的。

您可以簡單地增加系統的存儲空間,以便存儲所有日誌。

或者,如果啓用--smallfiles,則會將最大journal大小減小到512mb。不過,我不確定是否需要這個功能,但是它可能會爲您清理足夠的空間,無需擴展系統的存儲空間。

+0

我看到'smallfiles'也是一個解決方案,但我在線閱讀它會影響大數據庫的性能 – user2481422

+1

'--smallfiles'也會影響實際數據文件的分配行爲,而不僅僅是期刊。另外,如果現有的數據文件大於「--smallfiles」限制,mongodb會投訴。 – mnemosyn

+0

是的,'smallfiles'不是一個好的解決方案,特別是對於大型數據庫 – user2481422

相關問題