Mongodump及mongorestore的運用與問題


monogodump命令

mongodump對運行的MongoDB進行查詢,然后對查詢到的數據進行備份寫入磁盤,是一種能再運行時備份的方法,MongoDB自帶該工具。

mongodump使用的是普通的查詢機制(無鎖定),所以產生的備份不一定是服務器數據的實時快照,即當運行備份同時有客戶端寫入數據,該數據就不會備份到磁盤,備份時的查詢會對其他客戶端的性能產生不利的影響。

命令格式如下(可運行mongodump --help查看全部命令):mongodump -d 數據庫名稱 -o 文件名

實例:mongodump -d Test -o backup

mongorestore命令

mongorestore是MongoDB提供從備份中恢復數據的工具,mongorestore獲取mongodump的輸出結果,並將備份的數據插入到運行中的MongoDB實例。

命令格式如下(可運行mongorestore --help查看全部命令):mongorestore -d 數據庫名 [--drop]  數據源

 --drop 代表在恢復前刪除集合(若存在),否則備份的數據就會和現有的集合合並,可能會覆蓋一些文檔。

實例:mongorestore -d Test --drop backup/Test

 

問題:

MongoDB版本:win32-x86_64-2.0.2

線上備份數據前已查看A集合的A字段為空,運行mongodump備份過后(數據源B)再次查看A集合的A字段,同樣為空。

該備份的數據源運行mongorestore --drop恢復到線下的MongoDB,並運行程序設置A集合的A字段有值,過后運行mongorestore --drop將數據源B再次恢復,查看A集合的A字段,發覺該字段還是有值,執行--drop應該會將之前的文檔都刪除再恢復數據源B,即A集合的A字段應該為空。

圖示如下:

1、線下恢復數據源B

2、線上備份的數據源B

請各位大神解惑,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM