MongoDB/備份

mongodump:
在MongoDB中我們使用mongodump命令來備份MongoDB數(shù)據(jù)。該命令可以導(dǎo)出所有數(shù)據(jù)到指定目錄中。
./bin/mongodump -h dbhost -d dbname -o yourdirectory
./bin/mongodump --host mongodb.example.net --port 27017 --db test --collection some --username usr --password pwd --gzip yourdirectory
如果不帶任何參數(shù)直接執(zhí)行mongodump,那么它會去連接本地27017端口上的MongoDB實例,并且會創(chuàng)建名為dump的備份。
在指定了collection的情況下,使用--query參數(shù)備份部分?jǐn)?shù)據(jù)。
./bin/mongodump -h dbhost -d dbname -c cname -q '{ "uid" : "100" }' -o dbdirectory
--gzip表示是否壓縮備份。
在MongoDB未啟動時,用以下命令,在這種方式下不需要運行mongod實例,如果已經(jīng)運行了,必須要停掉。
./bin/mongodump --dbpath /data/db --out /data/backup --db test --username usr--password pwd

mongorestore:
恢復(fù)使用mongorestore命令
./bin/mongorestore -h dbhost -d dbname dbdirectory
./bin/mongorestore --host mongodb.example.net --port 27017 --db test --collection some --username usr --password pwd /data/backup
在指定了collection的情況下,使用--query參數(shù)恢復(fù)部分?jǐn)?shù)據(jù)。
在MongoDB未啟動時,用以下命令
./bin/mongorestore --dbpath /data/db --journal /data/backup

mongoexport:
使用mongoexport,需指定collection。
./bin/mongoexport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數(shù)據(jù)庫 -c 表名 -f 字段 -q 條件導(dǎo)出 --type=csv -o 文件名

  • -f 導(dǎo)出指字段,以字號分割,-f name,email,age表示導(dǎo)出name,email,age這三個字段。
  • -q 可以根查詢條件導(dǎo)出,-q '{ "uid" : 100 }' 導(dǎo)出uid為100的數(shù)據(jù)。
  • --type=csv 表示導(dǎo)出的文件格式為csv的。導(dǎo)出csv必須聲明-f字段。

./bin/mongoexport -d dbname -c cname --type=csv -q '{"type":"channel"}' -f uid,name,sex -o /usr/local/mongodb/users.csv
./bin/mongoexport -d dbname -c cname -q '{uid:{$gt:1}}' -o /usr/local/mongodb/users.json
如果導(dǎo)出json文件,集市指定字段不包括_id,也都會自動包含_id,csv則不會。

mongoimport:
還原全部字段:
./bin/mongoimport -d dbname -c cname --upsert /usr/local/mongodb/users.json
還原部分字段(默認(rèn)包含_id):
./bin/mongoimport -d dbname -c cname --upsertFields uid,name,sex /usr/local/mongodb/users.json
導(dǎo)入csv文件:
./bin/mongoimport -d myinfo -c usertedails_imported_csv_partial --type csv --headerline /usr/local/mongodb/users.csv
若導(dǎo)出csv時,未包含_id字段,則會新建_id。

  • --upsert,upsertFields 插入或者更新現(xiàn)有數(shù)據(jù)。
  • --headerline表示csv第一行是列名不用導(dǎo)入。

備份分片也相同。-h和-p改為mongos的地址和端口即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容