2015-09-02 55 views
2

如何使用類似於「db.repairDatabase」shell命令的「pymongo」修復特定的mongodb數據庫?我的目標是在數據庫中刪除一些集合之後將釋放的空間返回到操作系統,這需要我修復數據庫。謝謝!使用pymongo修復mongodb數據庫

+0

'修復'命令是不能掉以輕心。這是一個管理命令,由數據庫*管理員使用*誰 - 原諒我的法語 - 知道他或她在做什麼有趣。 –

+0

謝謝,我不確定這實際上是如何幫助的!無論如何,對於其他人的疑惑,修復命令不是通過pymongo直接暴露的,但可以使用pymongo的「命令」並傳遞「repairDatabase」來執行。 – Moji

回答

1

修復不是直接通過pymongo暴露出來,但你可以使用「命令」實際執行它。在這個特殊情況下使用: db.command("repairDatabase")

+1

它帶有相當的一些含義。首先,整個數據庫將被鎖定。其次,出於安全原因,您應該有可用磁盤空間等於您當前的數據大小+ 2Gb。第三次運行命令會做一些事情,包括來回複製文件和重新創建索引。這可能是一個相當冗長的過程*,在此過程中數據庫無法訪問*。這是收回磁盤空間恕我直言的最後一招。強制副本集成員的resyncs不需要停機並完成同樣的事情。即使是一個臨時副本也不會停機。 –