mongodb 備份恢復常用命令

kunlunzhiying發表於2018-08-30

備份:

 mongodump -uroot -ppassword --port=27017 --authenticationDatabase=admin -h hostname -d databasename -o /data/backup/mongodump/

-h:MongDB所在伺服器地址,例如:127.0.0.1,當然也可以指定埠號:127.0.0.1:27017 

-d:需要備份的資料庫例項,例如:database_name

 -o:備份的資料存放位置


mongo整庫恢復

$  mongorestore -h host -d database_name –directoryperdb  /mg_data/backup/mongodump/database_name


單collection備份


mongos> mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory


-h: MongoDB所在伺服器地址 

-d: 需要恢復的資料庫例項 

-c: 需要恢復的集合 

-f: 需要匯出的欄位(省略為所有欄位) 

-o: 表示匯出的檔名


單collection恢復


mongos> mongoimport -d dbhost -c collectionname –type csv –headerline –file


-type: 指明要匯入的檔案格式 

-headerline: 批明不匯入第一行,因為第一行是列名 

-file: 指明要匯入的檔案路徑


同時,需要給這個庫做個物理備份,一般是做個快照


 lvcreate -L10G -s -n data_snapshot /dev/vg01/lv01

專案組搞完後,然後remove這個快照,就ok了

# lvremove /dev/vg01/data_snapshot 

如果需要恢復,步驟如下


mkdir /snapshort

mount /dev/datavg01/vg01 /snapshort/

將mongodb 停掉,cp 快照的備份檔案到mongo 對應資料目錄

起mongo,即可



##########mongodb 批次插入資料演練測試##########


for (var i=0;i<300000;i++){db.jack.insert({"i":10000000+i,"username":"user10000000"+i,"age":9999+i})}



db.runCommand({"shardcollection":"test.jack","key":{"_id":1}})

for (var i=0;i<200000;i++){db.nycnew.insert({"i":10000000+i,"username":"user10000000"+i,"age":9999+i})}



for (var i=0;i<10;i++){db.test1.insert({"name":"t+i","dep":"abcdef","num":i+8})}   對集合批次插入資料


db.test1.remove({"name":"t+10"},{jusOne: true})


db.test1.remove({"num":25},{jusOne: true})   --刪除num 為3的文件


db.test1.find({"dep":"abcdefg"}) 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2213176/,如需轉載,請註明出處,否則將追究法律責任。

相關文章