1. 程式人生 > 實用技巧 >Mongodb開啟認證時的備份和恢復(mongodump 和mongorestore )

Mongodb開啟認證時的備份和恢復(mongodump 和mongorestore )

mongodump與mongoexport的區別瞭解

mongodump匯出的是bson格式,是二進位制形式,不過可以使用mongo自帶的bsondump命令檢視裡面的資料,而mongoexport匯出的則是文字,可以是csv、json格式。
.
JSON可讀性強但體積較大,BSON則是二進位制檔案,體積小但對人類幾乎沒有可讀性。
.
在一些mongodb版本之間,BSON格式可能會隨版本不同而有所不同,所以不同版本之間用mongodump/mongorestore可能不會成功,具體要看版本之間的相容性。當無法使用BSON進行跨版本的資料遷移的時候,使用JSON格式即mongoexport/mongoimport是一個可選項。跨版本的mongodump/mongorestore個人並不推薦,實在要做請先檢查文件看兩個版本是否相容(大部分時候是的)。
.
JSON雖然具有較好的跨版本通用性,但其只保留了資料部分,不保留索引,賬戶等其他基礎資訊。使用時應該注意。

--備份單個表
mongodump -u  root -p 123456  --port 27017 --authenticationDatabase admin -d bill -c d -o /root/mongodb/bill_d_bak_201507021701.bak

--備份單個庫
mongodump  -u  root -p 123456 --port 27017  --authenticationDatabase admin -d bill -o  /root/mongodb/

--備份所有庫
mongodump  -u  root -p 123456 --authenticationDatabase admin  --port 27017 -o /root/bak 

--備份所有庫推薦使用新增--oplog引數的命令,這樣的備份是基於某一時間點的快照,只能用於備份全部庫時才可用,單庫和單表不適用:
mongodump -h 127.0.0.1 --port 27017   --oplog -o  /root/bak 

--同時,恢復時也要加上--oplogReplay引數,具體命令如下(下面是恢復單庫的命令):
mongorestore  -d swrd --oplogReplay  /home/mongo/swrdbak/swrd/

--恢復單個庫:
mongorestore  -u  sroot -p 123456 --port 27017  --authenticationDatabase admin -d bill   /root/mongodb/

--恢復所有庫:
mongorestore   -u  root -p 123456 --port 27017  --authenticationDatabase admin  /root/bak

--恢復單表
mongorestore -u  root -p 123456  --authenticationDatabase admin -d bill -c d /root/mongodb/bill_d_bak_201507021701.bak/bill/d.bson
1234567891011121314151617181920212223

mongodump在mongo關閉時,也是可以備份的,不過需要指定資料目錄,命令為:

mongodump  --dbpath  /data/db

轉載:https://blog.csdn.net/weixin_45444133/article/details/105099806