mongodb 備份和還原

數據的備份非常中要,一下的兩種方式,當然也可以利用快照:


---------------------------------------------------------------------

一、直接拷貝數據文件方式備份還原

----------------------------------------------------------------------


注:當調用db.fsyncUnlock()和db.fsyncLock()命令是不要關閉shell,因爲如果你啓用了身份驗證或者斷開了鏈接,可能連不上,需要重新啓動mongod,這些命令就都失效了


1.將數據庫鎖定:db.fsyncLock()  

這個命令禁止所有寫入,並將髒頁寫入磁盤保證數據不再變化。這個時候的寫操作都會在內存中排隊等待了,直到數據庫解鎖。


2.mkdir /mongodbback/zou

  cp -R /server/mongo/data/*  /mongodbback/zou

  

 3.解鎖數據庫   db.fsyncUnlock() 

 

備份完成之後,那如何回覆呢

 4. cp -R /mongodb/zou/* /server/mongo/data/


 注意:

恢復前應該確保mongod沒有運行,且/server/mongo/data/爲空。

刪除前一定確認cp命令成功執行。

恢復完成後,再啓動mongod。

啓動mongod使用一下命令:mongod -f /etc/mongod.conf --fork --nojournal

 



-----------------------------------------------------------------------------

二、mongodump備份

-----------------------------------------------------------------------------


1.數據庫mongod沒有運行的狀態下的備份

  mongodump --dbpath /server/mongo/data/ --out /backup/zou/mongo 

  數據庫未啓動時的還原

  mongorestore --dbpath /backup/zou/mongo/ --journal /server/mongo/data

  若是要指定備份還原特定數據庫在文件路徑下指定數據庫文件夾的名字即可

  

2.遠程鏈接進行備份

mongodump --host www.zou.com --port 27017 --username zou --password 123.com --out /backup/zou/mongo/mongodump-2016-03-11

恢復 

mongodump --host www.zou.com --port 27017 --username zou --password 123.com /backup/zou/mongo/mongodump-2016-03-11

3.使用oplog進行備份

mongodump不是快照備份,備份過程中系統可能會繼續進行操作。

oplog的設置就是避免這種情況發生的,不過使用oplog的前提是mongod啓動時使用了--replSet選項

備份和恢復同2相同,只不過加上--oplog 和 oplogReplay 參數


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章