MongoDB操作-備份和恢復
Mongodb資料庫操作-備份 恢復 匯出 匯入
mongodb資料備份和恢復主要分為二種:一種是針對庫的mongodump和mongorestore,一種是針對庫中表的mongoexport和mongoimport。
一、 mongodump備份資料庫
1. 常用命令格式
mongodump -h IP --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表 -o 檔案存放路徑
引數說明:
-h 指明資料庫宿主機的IP
--port 指明資料庫的埠
-u 指明資料庫的使用者名稱
-p 指明資料庫的密碼
-d 指明資料庫的名字
-c 指明collection的名字
-o 指明到要匯出的檔名
-q 指明匯出資料的過濾條件
2. 匯出所有資料庫
mongodump -o /data/mongobak/
3. 匯出指定資料庫
mongodump -d SERVERLOG -o /data/mongobak/SERVERLOG.bak/
二、 mongorestore恢復資料庫
1. 常用命令格式
mongorestore -h IP --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 --drop 檔案存在路徑
--drop:先刪除所有的記錄,然後恢復.
2. 恢復所有資料庫到mongodb中
mongorestore /data/mongobak/ #所有庫的備份路徑
3. 恢復指定的資料庫
mongorestore -d SERVERLOG /data/mongobak/SERVERLOG.bak/SERVERLOG/ #SERVERLOG這個資料庫的備份路徑
mongorestore -d SERVERLOG_new /data/mongobak/SERVERLOG.bak/SERVERLOG/ #將SERVERLOG備份資料還原到SERVERLOG_new資料庫中
三、 mongoexport匯出(表或者表中部分欄位)
1. 常用命令格式
mongoexport -h IP --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 -f 欄位 -q 條件匯出 --csv -o 檔名
引數重點說明:
-f 匯出指定欄位,以逗號分割,-f uid,name,age匯出uid,name,age這三個欄位
-q 可以根據查詢條件匯出,-q '{ "uid" : "100" }' 匯出uid為100的資料
--csv 表示匯出的檔案格式為csv的。這個比較有用,因為大部分的關係型資料庫都是支援csv,在這裡有共同點
2. 匯出整張表
mongoexport -d SERVERLOG -c users -o /data/mongobak/SERVERLOG.bak/users.dat
connected to: 127.0.0.1
exported 4 records
3. 匯出表中部分欄位
mongoexport -d SERVERLOG -c users --csv -f uid,name,age -o /data/mongobak/SERVERLOG.bak/users.csv
connected to: 127.0.0.1
exported 4 records
4. 根據條件匯出資料
mongoexport -d SERVERLOG -c users -q '{uid:{$gt:1}}' -o /data/mongobak/SERVERLOG.bak/users.json
connected to: 127.0.0.1
exported 3 records
四、 mongoimport匯入(表或者表中部分欄位)
1. 常用命令格式
恢復整表匯出的非csv檔案
mongoimport -h IP --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --upsert --drop 檔名
--upsert:插入或者更新現有資料
恢復部分欄位的匯出檔案
mongoimport -h IP --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --upsertFields 欄位 --drop 檔名
--upsertFields:更新部分的查詢欄位,必須為索引,以逗號分隔.
恢復匯出的csv檔案
mongoimport -h IP --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --type 型別 --headerline --upsert --drop 檔名
--type:匯入的檔案型別(預設json)
2. 恢復匯出的表資料
mongoimport -d SERVERLOG -c users --upsert /data/mongobak/SERVERLOG.bak/users.dat
connected to: 127.0.0.1
Tue Dec 3 08:26:52.852 imported 4 objects
3. 部分欄位的表資料匯入
mongoimport -d SERVERLOG -c users --upsertFields uid,name,age /data/mongobak/SERVERLOG.bak/users.dat
connected to: 127.0.0.1
Tue Dec 3 08:31:15.179 imported 4 objects
4. 恢復csv檔案
mongoimport -d SERVERLOG -c users --type csv --headerline --file /data/mongobak/SERVERLOG.bak/users.csv
connected to: 127.0.0.1
Tue Dec 3 08:37:21.961 imported 4 objects
--file:需要匯入的檔案