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的地址和端口即可食磕。