首页 > 其他分享 >mongo备份篇 mongoexport、mongoimport 以及mongodump、mongorestore

mongo备份篇 mongoexport、mongoimport 以及mongodump、mongorestore

时间:2023-11-02 22:37:56浏览次数:44  
标签:opt mongo -- mongodump person json mongoimport mongoexport

系列导航

一、linux单机版mongo安装(带密码验证)

二、mongo集群搭建

三、java连接mongo数据库

四、java对mongo数据库增删改查操作

五、mongo备份篇 mongoexport、mongoimport 以及mongodump、mongorestore

如下是总结mongo数据库在执行备份和恢复中一些常用的语句。


备份方面比较:
1、mongoexport 可以指定集合中的字段,   mongodump最多到集合
2、mongoexport 可以带导出的过滤条件 -q, mongodump则不可以
3、mongoexport 可以导出json和csv格式,  mongodump导出的是bson可读性不如前者

4、mongodump   的速度和压缩率都最好,每秒125M的数据,压缩率达28%
5、mongodump   更适合全库备份,mongoexport更适合单个集合备份
 
恢复方面比较:
1、mongoimport  速度较快,但不保证数据完整导入 。
2、mongorestore 速度较慢,比mongoimport慢2.5倍左右,但是根据mongodump导出的数据,可以完整导入数据

 
----------------mongoexport使用样例begin-------------------

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 cd /opt/mongodb/bin   --数据导出 ./mongoexport -h 192.168.0.10 -d testdb -c testcollection -q '{_id:{$in:["1193860277","1193860919","1193860428","1193860453","1193860364"]}}'  -o /opt/testcollection.json 参数解释: -h 192.168.0.10   :192.168.0.10是主机ip -d testdb         :testdb数据库 -c testcollection :testcollection是数据库中的集合 -q  后面跟的是查询条件(可选) -o  后面跟的是备份的文件存放地址 例如:/opt/testcollection.json   --数据导入 ./mongoimport -h 192.168.0.10:27017 -d testdb -c testcollection --type json --file /opt/testcollection.json 参数解释: --type json  :表示导入的文件是json格式的备份文件 --file  后面跟导入的文件地址     例子:导出整个结合的样例 --导出person集合 ./mongoexport  -d testdb -c person --type json -o /opt/person.json    --还原数据语句 cd /opt/mongodb/bin ./mongoimport  -d testdb -c person --type json --file /opt/person.json   备份一个时间段的数据样例 备份statTime时间 大于等于2019-01-01 并且小于2020-01-01这个时间段的数据 ./mongoexport -h 192.168.0.10:27017   -d testdb -c person  -q '{"statTime":{$gte:Date('`date -d 2019-01-01 +%s000`'),$lt:Date('`date -d 2020-01-01 +%s000`')}}'  -o /opt/person.json       密码校验 如果mongo数据库是带密码验证的则需要使用如下语句 ./mongoexport -h 192.168.0.10:27017 --authenticationDatabase admin -u dbuser -p dbpwd  -d testdb -c person    -o /opt/person.json 参数解释: --authenticationDatabase admin :指验证用户名和密码的库是admin -u dbuser : dbuser是数据库的用户名 -p dbpwd : dbpwd是数据库的密码

----------------mongoexport使用样例end-------------------
 

----------------mongodump使用样例begin--------------------

1 2 3 4 5 6 7 8 9 10 --备份 /opt/mongodb/bin/mongodump -h 192.168.0.10:27017  --authenticationDatabase admin -u dbuser -p dbpwd  -d testdb -c person  -o /opt 参数解释: --authenticationDatabase admin :指验证用户名和密码的库是admin -u dbuser : dbuser是数据库的用户名 -p dbpwd : dbpwd是数据库的密码 注:不用指定备份的文件名   --恢复 /usr/local/mongodb/bin/mongorestore -h 192.168.0.10:27017  --authenticationDatabase admin -u dbuser -p dbpwd  -d testdb -c person  /opt/person.bson

 



----------------mongodump使用样例end--------------------

标签:opt,mongo,--,mongodump,person,json,mongoimport,mongoexport
From: https://www.cnblogs.com/gaoyanbing/p/17806495.html

相关文章

  • mongodb获取空闲磁盘空间
    这篇文章mongodb使用内存和硬盘特性我们介绍过mongodb删除数据后,并不会释放磁盘空间。大部分数据库为了性能都会这样做,比如mysql也是。不过mysql可以整理磁盘空间,把空闲的磁盘释放掉,还给操作系统,但是mongodb却不会。虽然说mongodb也有整理磁盘的接口调用(compact),但是它并不是释放......
  • Docker安装MongoDB 7.0.2
    拉取镜像dockerpullmongo使用docker安装mongodbdockerrun--restart=always--namemongodb-v~/docker/mongo:/data/db-d-p27017:27017-eMONGO_INITDB_ROOT_USERNAME=用户名-eMONGO_INITDB_ROOT_PASSWORD=密码mongo--auth--auth:需要密码才能访问容器服务......
  • 数据库信息速递 MongoDB 在开发者工具中集成了AI功能提高开发工作者的效率 (译)...
    MongoDB在6月份向其NoSQLAtlas数据库服务(DBaaS)添加向量搜索功能之后,MongoDB正在为一些工具添加新的生成式AI功能,来以进一步提高开发者的工作效率。这些新功能已经添加到MongoDB的关系迁移工具中如,Compass、AtlasCharts工具中。在文档接口中,MongoDB添加了一个由AI驱动的聊天机器人......
  • MongoDB 中的锁分析
    MongoDB中的锁前言MongoDB中锁的类型锁的让渡释放常见操作使用的锁类型如果定位MongoDB中锁操作1、查询运行超过20S的请求2、批量删除请求大于20s的请求3、kill掉特定client端ip的请求4、查询所有wait锁定的写操作5.返回索引的创建信息总结参考......
  • mongoose 的使用
    constmongoose=require('mongoose');mongoose.connect('mongodb://admin:[email protected]:27017/GIS?authSource=admin',{useUnifiedTopology:true,useNewUrlParser:true,}).then(......
  • golang 获取 mongo 数据库状态
    命令行模式navicatgolangpackagemainimport( "context" "encoding/json" "fmt" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-drive......
  • MongoDB 日志切割三种方式
    MongoDB日志切割​MongoDB默认是不会进行切割日志的,除非我们配置了logRotate=rename,并且重启MongoDB服务,才会进行切割日志的,那么为了避免实际中我们一个日志文件过大,我们需要对日志进行切割,有两个办法:1.通过MongoDB管理命令进行切割使用该命令时需要在MongoDB运行......
  • MongoDB常用脚本汇总
    概述本文汇总记录日常工作中常用的MongoDB查询脚本。实战新增新增集合:db.getSiblingDB("corpus").createCollection('message');删除删除一条数据:db.getSiblingDB("cx_user").userAccount.deleteOne({_id:ObjectId('628720aa454b9b0008ca218f')});批量删除多条数据:db.getSiblin......
  • MongoDB分片+副本集高可用集群的启停步骤
    ■■集群启动步骤1、先启动各节点的configservermongod-f${MongoDir}/conf/config.conf2、再启动各节点的shardservermongod-f${MongoDir}/conf/shard1.conf3、再启动各节点的mongosservermongos-f${MongoDir}/conf/mongos.conf■■集群停止步骤停止服务的......
  • mongo数据库$out输出覆盖原集合
    数据库版本:4.2.8操作系统:ubuntu20mongoaggregate中$out输出可以将原集合覆盖。问题复现:1、写入测试数据rs0:PRIMARY>useceshirs0:PRIMARY>db.t1.insert({id:1})rs0:PRIMARY>db.t1.insert({id:2})rs0:PRIMARY>db.t1.insert({id:3})rs0:PRIMARY>db.t1.insert({id:......