mongodb 備份命令和還原命令

1、執(zhí)行備份還原前為了數據的安全 需要通過通過fsync和鎖可以在[MongoDB]不是必須運行時,安全有效地使用復制數據目錄的方式進行備份!fsync命令會強制服務器將所有緩沖區(qū)內容寫入到磁盤!通過上鎖,可以阻止數據庫的進一步寫入!下面演示具體做法:

 use admin;  
switched to db admin  
> db.runCommand({"fsync" : 1, "lock" : 1});  

命令正確運行結果

{  
        "info" : "now locked against writes, use db.fsyncUnlock() to unlock",  
        "seeAlso" : "http://www.mongodb.org/display/DOCS/fsync+Command",  
        "ok" : 1  
}  

1、開始執(zhí)行備份命令

mongodump -h dbhost -d dbname -o dbdirectory
# -h MongDB所在服務器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017
# 需要備份的數據庫實例,例如:test
# 備份的數據存放位置,例如:c:\data\dump
mongodump -h 127.0.0.1 -u admin -p xxx  -d blog -o /home/timeless/桌面/mongodump --authenticationDatabase admin
注意:  --authenticationDatabase  參數制定認證數據庫   否則會提示錯誤,注意認證庫是和-u -p
指定的賬號密碼是對應的:

Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed.   //提示認證失敗
 注意: -0 指定的備份路徑是具體的路徑不要增加"" 如上/home/timeless/桌面/mongodump 不是‘/home/timeless/桌面/mongodump’

#恢復 同樣要先lock 在 unclock (不是必須的)
-h:MongoDB所在服務器地址
-d:需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2

–drop:恢復的時候,先刪除當前數據,然后恢復備份的數據。就是說,恢復后,備份后添加修改的數據都會被刪除,慎用哦!

 mongorestore -h XXX -u admin -p XXX -d blog  /home/timeless/桌面/mongodump/blog --authenticationDatabase admin  

3、備份完成后 恢復數據庫鎖

> use admin;  
switched to db admin  
> db.$cmd.sys.unlock.findOne();  
{ "ok" : 1, "info" : "unlock completed" }  
#db.currentOp()來確認解鎖成功
> db.currentOp();  
{ "inprog" : [ ] }  

備份恢復說明實例

mongorestore -u "xxx" -p "xxx" -h 127.0.0.1:27017 -d dbbackTest  E:\mongoBak\host127.0.0.1\dbbackTest --authenticationDatabase dbbackTest
#注意這里的 --authenticationDatabase dbbackTest 是恢復時登錄驗證的數據庫,可以是任意庫。比如可以是admin 也可以是要恢復的庫dbbackTest。
# 注意點二  --authenticationDatabase 后面跟那個庫,-u -p 就是那個庫的對應的賬號和密碼。并且這個賬號和密碼要有足夠的權限角色執(zhí)行恢復的命令。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容