mongodb备份恢复,数据导入导出
數據導出 mongoexport
假設庫里有一張apachelog表,里面有2 條記錄,我們要將它導出
/test/mongodb/bin/mongo use wxdataswitched to db wxdata
db.apachelog.find();{ "_id" : ObjectId("53993357e0e73ac14b29da8a"), "host" : "66.249.69.194", "method" : "GET", "uri" : "/uploads/yaopinimg/2013012415323219.jpg", "httpstatus" : 200, "size" : 7428, "agent" : "Googlebot-Image/1.0", "status" : 0 }
1 常用導出方法
/test/mongodb/bin/mongoexport -d wxdata -c apachelog -o apachelog.datconnected to: 127.0.0.1
exported 2 records
{ "_id" : ObjectId("53993357e0e73ac14b29da8a"), "host" : "66.249.69.194", "method" : "GET", "uri" : "/uploads/yaopinimg/2013012415323219.jpg", "httpstatus" : 200, "size" : 7428, "agent" : "Googlebot-Image/1.0", "status" : 0 }
參數說明:
-d 指明使用的庫, 本例中為"wxdata"
-c 指明要導出的表, 本例中為"apachelog"
-o 指明要導出的文件名, 本例中為"apachelog.dat"
從上面可以看到導出的方式使用的是JSON 的樣式.
2 導出CSV格式的文件
/test/mongodb/bin/mongoexport -d wxdata -c apachelog --csv -f host,time,method -o apachelog_csv.datconnected to: 127.0.0.1
exported 2 records
host,time,method
"66.249.69.194","12/Jun/2014:12:57:59","GET"
參數說明:
--csv 指要要導出為csv 格式
-f 指明需要導出哪些例
?
3.導出執行查詢的結果:
/test/mongodb/bin/mongoexport -d wxdata -c apachelog -q '{httpstatus:404}' -o apachelog.dat參數說明:
-q 指明過濾條件,這里是過濾出httpstatus等于404的記錄。
更詳細的用法可以 mongoexport –help 來查看
數據導入mongoimport
1 導入JSON 數據
我們先將表apachelog 刪除掉,以便演示效果
true
show collections;
system.indexes
然后導入數據
/test/mongodb/bin/mongoimport -d wxdata -c apachelog apachelog.datconnected to: 127.0.0.1
imported 1 objects
導入數據的時候會隱式創建表結構
2 導入CSV數據
我們先將表apachelog 刪除掉,以便演示效果
db.apachelog.drop();true
show collections;
system.indexes
然后導入數據
/test/mongodb/bin/mongoimport -d wxdata -c apachelog --type csv --headerline --file apachelog_csv.datconnected to: 127.0.0.1
imported 1 objects
參數說明:
--type 指明要導入的文件格式
--headerline 批明不導入第一行,因為第一行是列名
--file 指明要導入的文件路徑
注意:
CSV 格式良好,主流數據庫都支持導出為CSV 的格式,所以這種格式非常利于異構數據遷移
數據備份mongodump
用mongodump 來做MongoDB 的庫或表級別的備份
備份wxdata 數據庫
/test/mongodb/bin/mongodump -d wxdataconnected to: 127.0.0.1
DATABASE: wxdata to dump/wxdata
wxdata.system.indexes to dump/wxdata/system.indexes.bson
1 objects
wxdata.apachelog to dump/wxdata/apachelog.bson
2 objects
此時會在當前目錄下創建一個dump 目錄,用于存放備份出來的文件
也可以指定備份存放的目錄,
connected to: 127.0.0.1
DATABASE: wxdata to wxdata_dump/wxdata
wxdata.system.indexes to
wxdata_dump/wxdata/system.indexes.bson
1 objects
wxdata.apachelog to wxdata_dump/wxdata/apachelog.bson
2 objects
這個例子中將備份的文件存在了當前目錄下的wxdata_dump 目錄下
數據恢復mongorestore
由于剛剛已經做了備份,所以我們先將庫wxdata 刪除掉
use wxdataswitched to db wxdata
db.dropDatabase()
{ "dropped" : "wxdata", "ok" : 1 }
show dbs
admin (empty)
local (empty)
test (empty)
接下來我們進行數據庫恢復
/test/mongodb/bin/mongorestore -d wxdata wxdata_dump/*connected to: 127.0.0.1
Wed Apr 11 00:03:03 wxdata_dump/wxdata/apachelog.bson
Wed Apr 11 00:03:03 going into namespace [wxdata.apachelog]
Wed Apr 11 00:03:03 2 objects found
Wed Apr 11 00:03:03 wxdata_dump/wxdata/system.indexes.bson
Wed Apr 11 00:03:03 going into namespace [wxdata.system.indexes]
經驗證數據庫又回來了,其實要是想恢復庫,也大可不必先刪除wxdata 庫,只要指
明--drop 參數,就可以在恢復的時候先刪除表然后再向表中插入數據.
轉載于:https://www.cnblogs.com/yjken/p/3858112.html
總結
以上是生活随笔為你收集整理的mongodb备份恢复,数据导入导出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GIS相关知识整理
- 下一篇: Java关键字synchronized详