MongoDB/备份
时间:2019-08-23 17:22 来源:linux.it.net.cn 作者:IT
mongodump:
在MongoDB中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。
./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
如果不带任何参数直接执行mongodump,那么它会去连接本地27017端口上的MongoDB实例,并且会创建名为dump的备份。
在指定了collection的情况下,使用--query参数备份部分数据。
./bin/mongodump -h dbhost -d dbname -c cname -q '{ "uid" : "100" }' -o dbdirectory
--gzip表示是否压缩备份。
在MongoDB未启动时,用以下命令,在这种方式下不需要运行mongod实例,如果已经运行了,必须要停掉。
./bin/mongodump --dbpath /data/db --out /data/backup --db test --username usr--password pwd
mongorestore:
恢复使用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参数恢复部分数据。
在MongoDB未启动时,用以下命令
./bin/mongorestore --dbpath /data/db --journal /data/backup
mongoexport:
使用mongoexport,需指定collection。
./bin/mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --type=csv -o 文件名
-f 导出指字段,以字号分割,-f name,email,age表示导出name,email,age这三个字段。
-q 可以根查询条件导出,-q '{ "uid" : 100 }' 导出uid为100的数据。
--type=csv 表示导出的文件格式为csv的。导出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
如果导出json文件,集市指定字段不包括_id,也都会自动包含_id,csv则不会。
mongoimport:
还原全部字段:
./bin/mongoimport -d dbname -c cname --upsert /usr/local/mongodb/users.json
还原部分字段(默认包含_id):
./bin/mongoimport -d dbname -c cname --upsertFields uid,name,sex /usr/local/mongodb/users.json
导入csv文件:
./bin/mongoimport -d myinfo -c usertedails_imported_csv_partial --type csv --headerline /usr/local/mongodb/users.csv
若导出csv时,未包含_id字段,则会新建_id。
--upsert,upsertFields 插入或者更新现有数据。
--headerline表示csv第一行是列名不用导入。
备份分片也相同。-h和-p改为mongos的地址和端口即可。
(责任编辑:IT)
mongodump: 在MongoDB中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。 ./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 如果不带任何参数直接执行mongodump,那么它会去连接本地27017端口上的MongoDB实例,并且会创建名为dump的备份。 在指定了collection的情况下,使用--query参数备份部分数据。 ./bin/mongodump -h dbhost -d dbname -c cname -q '{ "uid" : "100" }' -o dbdirectory --gzip表示是否压缩备份。 在MongoDB未启动时,用以下命令,在这种方式下不需要运行mongod实例,如果已经运行了,必须要停掉。 ./bin/mongodump --dbpath /data/db --out /data/backup --db test --username usr--password pwd mongorestore: 恢复使用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参数恢复部分数据。 在MongoDB未启动时,用以下命令 ./bin/mongorestore --dbpath /data/db --journal /data/backup mongoexport: 使用mongoexport,需指定collection。 ./bin/mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --type=csv -o 文件名 -f 导出指字段,以字号分割,-f name,email,age表示导出name,email,age这三个字段。 -q 可以根查询条件导出,-q '{ "uid" : 100 }' 导出uid为100的数据。 --type=csv 表示导出的文件格式为csv的。导出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 如果导出json文件,集市指定字段不包括_id,也都会自动包含_id,csv则不会。 mongoimport: 还原全部字段: ./bin/mongoimport -d dbname -c cname --upsert /usr/local/mongodb/users.json 还原部分字段(默认包含_id): ./bin/mongoimport -d dbname -c cname --upsertFields uid,name,sex /usr/local/mongodb/users.json 导入csv文件: ./bin/mongoimport -d myinfo -c usertedails_imported_csv_partial --type csv --headerline /usr/local/mongodb/users.csv 若导出csv时,未包含_id字段,则会新建_id。 --upsert,upsertFields 插入或者更新现有数据。 --headerline表示csv第一行是列名不用导入。 备份分片也相同。-h和-p改为mongos的地址和端口即可。 (责任编辑:IT) |