我最近推出了一個網絡應用程序,目前還沒有看到太多的生產規模,但我預計(希望;)它將在不久的將來。對生產mongo數據庫運行db.copyDatabase()會有什麼樣的性能影響?
我發現能夠使用db.copyDatabase()
將當前生產系統的快照複製到開發中非常有用,並且想知道隨着生產數據庫增長/處於較重負載下,可能遇到什麼樣的問題。
文檔似乎並未顯示該命令是阻塞的(具體來說,如果在命令運行時將數據添加到任一數據庫,則數據集的引用會不同步)。
由於數據庫正在複製到dev(或staging)服務器,所以重建索引/ etc所花的時間不會是一個大問題(至少在一段時間內)。
的文檔是在這種情況下指南略顯清淡,所以我希望得到的建議上:
- 是否適當從在生產現場數據庫運行db.copyDatabase複製?
- 源數據庫是否存在性能問題?
- 過去的大小是否有實際限制? (基於this question here,該限制似乎是相當大的)
作爲參考,該應用和數據庫分別託管(heroku/mongolab)。我在copyDatabase()
命令之前在本地運行db.dropDatabase()
以獲得完全新的數據庫。
謝謝,很高興知道。我會密切關注數據庫增長時需要多長時間,並在數據庫變大時切換到二進制轉儲。 –
@JedWatson關於在那裏我談論過多的工作集,我只注意到我沒有提到我說,因爲你是從生產服務器複製,當然,如果COPYDB然後在那裏運行的OS可以只頁面的唯一的事情數據順序,你不應該在那裏得到一個真正的問題。當其他連接想要獲取數據時,問題可能會發生。 – Sammaye