MongoDB/备份

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



作者:bluebule
链接:https://www.jianshu.com/p/08a0b1ccd746
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
posted @   zping  阅读(167)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2016-07-17 percona-toolkit工具包的安装和使用
点击右上角即可分享
微信分享提示