MongoDB學習(三)資料匯入匯出及備份恢復
這幾天想著公司要用MongoDB,自然就要用到資料匯入匯出,就自己學習了一下。
在Mongo學習(二)中就講到了在bin目錄下有一些工具,本篇就是使用這些工具進行資料的匯入匯出及備份恢復。
注意:以下命令均在cmd命令列中輸入,匯出及備份未指明目錄情況下,均儲存在當前操作目錄下。
資料匯出mongoexport
1.常用匯出方法:匯出資料為json
假設庫裡有一張area 表,裡面有9 條記錄,我們要將它匯出
c:\mongo\bin\mongoexport -d iflashbuy_log -c area -o c:\area.dat
正常情況下輸出如下:
connected to: 127.0.0.1
exported 9 records
- 引數說明:
- d 指明使用的庫, 本例中為” iflashbuy_log”
- c 指明要匯出的表, 本例中為”area”
- o 指明要匯出的檔名及目錄, 本例中為”area.dat”
從上面可以看到匯出的方式使用的是JSON 的樣式
2.匯出CSV格式的檔案
>c:\mongo\bin\mongoexport -d iflashbuy_log -c area --csv -f id,province,city -o c:\area .dat
引數說明:
-csv 指要要匯出為csv 格式,匯出csv之後必須指明匯出的列
-f 指明需要匯出哪些列
資料匯入mongoimport
1.匯入JSON 資料
a. 我們先將表area刪除掉,以便演示效果 db.area.drop();
b. 再執行匯入命令:
>c:\mongo\bin\mongoimport -d iflashbuy_log -c area c:\area.dat
正常情況下輸出以下:
connected to: 127.0.0.1
imported 9 objects
可以看到匯入資料的時候會隱式建立表結構.
2.匯入CSV 資料
a. 我們先將表area刪除掉,以便演示效果 db.area.drop();
b. 再執行匯入命令
>c:\mongo\bin\mongoimport -d iflashbuy_log -c area --type csv --headerline --file c:\area.data
引數說明:
-type 指明要匯入的檔案格式
-headerline 批明不匯入第一行,因為第一行是列名
-file 指明要匯入的檔案路徑
注意:CSV 格式良好,主流資料庫都支援匯出為CSV 的格式,所以這種格式非常利於異構資料遷移
資料備份mongodump
可以用mongodump 來做MongoDB 的庫或表級別的備份,下面舉例說明:
1. 備份iflashbuy_log資料庫
>c:\mongo\bin\mongodump -d iflashbuy_log
此時會在當前目錄下建立一個dump 目錄,用於存放備份出來的檔案,也可以指定備份存放的目錄。
2.指定目錄備份iflashbuy_log資料庫
>c:\mongo\bin\mongodump -d iflashbuy_log -o c:\my_mongodb_dump
這個例子中將備份的檔案存在了c:\my_mongodb_dump目錄下
資料恢復mongorestore
由於剛剛已經做了備份,所以我們先將庫iflashbuy_log刪除掉
>use iflashbuy_log
switched to db iflashbuy_log
>db.dropDatabase()
接下來我們進行資料庫恢復
1.恢復iflashbuy_log資料庫
>c:\mongo\bin\mongorestore -d my_mongodb c:\my_mongodb_dump
經驗證資料庫又回來了,其實要是想恢復庫,也大可不必先刪除iflashbuy_log 庫,只要指明 –drop 引數,就可以在恢復的時候先刪除表然後再向表中插入資料
2.不刪除庫恢復庫
>c:\mongo\bin\mongorestore -d my_mongodb --drop c:\my_mongodb_dump
至此,Windows系統下,對MongoDB的資料匯入匯出以及備份恢復就講完了。
另外,我想說一下,在Linux中進行資料匯入匯出及備份恢復的命令跟Windows相同,因此,就不另外介紹Linux下的命令了。