千家信息网

MongoDB整库备份与还原以及单个collection备份、恢复方法

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,备份前的检查> show dbsMyDB 0.0625GBadmin (empty)bruce 0.0625GBlocal (empty)test 0.0625GB> use MyDBswitched
千家信息网最后更新 2026年11月02日MongoDB整库备份与还原以及单个collection备份、恢复方法

备份前的检查

> show dbsMyDB 0.0625GBadmin (empty)bruce 0.0625GBlocal (empty)test 0.0625GB> use MyDBswitched to db MyDB> db.users.find(){ "_id" : ObjectId("4e290aa39a1945747b28f1ee"), "a" : 1, "b" : 1 }{ "_id" : ObjectId("4e2cd2182a65c81f21566318"), "a" : 3, "b" : 5 }>

整库备份

mongodump -h dbhost -d dbname -o dbdirectory-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017-d:需要备份的数据库实例,例如:test-o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。mongodump的官方说明(可通过mongodump --help查看):options: --help          produce help message -v [ --verbose ]     be more verbose (include multiple times for more              verbosity e.g. -vvvvv) --version        print the program's version and exit -h [ --host ] arg    mongo host to connect to ( /s1,s2 for              sets) --port arg        server port. Can also use --host hostname:port --ipv6          enable IPv6 support (disabled by default) -u [ --username ] arg  username -p [ --password ] arg  password --dbpath arg       directly access mongod database files in the given              path, instead of connecting to a mongod server -              needs to lock the data directory, so cannot be used              if a mongod is currently accessing the same path --directoryperdb     if dbpath specified, each db is in a separate              directory --journal        enable journaling -d [ --db ] arg     database to use -c [ --collection ] arg collection to use (some commands) -o [ --out ] arg (=dump) output directory or "-" for stdout -q [ --query ] arg    json query --oplog         Use oplog for point-in-time snapshotting --repair         try to recover a crashed database --forceTableScan     force a table scan (do not use $snapshot)

整库恢复

mongorestore -h dbhost -d dbname -directoryperdb dbdirectory-h:MongoDB所在服务器地址-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2-directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧!-drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!mongorestore的官方说明(可通过mongorestore --help查看):options: --help         produce help message -v [ --verbose ]    be more verbose (include multiple times for more             verbosity e.g. -vvvvv) --version        print the program's version and exit -h [ --host ] arg    mongo host to connect to ( /s1,s2 for sets) --port arg       server port. Can also use --host hostname:port --ipv6         enable IPv6 support (disabled by default) -u [ --username ] arg  username -p [ --password ] arg  password --dbpath arg      directly access mongod database files in the given             path, instead of connecting to a mongod server -             needs to lock the data directory, so cannot be used             if a mongod is currently accessing the same path --directoryperdb    if dbpath specified, each db is in a separate             directory --journal        enable journaling -d [ --db ] arg     database to use -c [ --collection ] arg collection to use (some commands) --objcheck       validate object before inserting --filter arg      filter to apply before inserting --drop         drop each collection before import --oplogReplay      replay oplog for point-in-time restore --oplogLimit arg    exclude oplog entries newer than provided timestamp             (epoch[:ordinal]) --keepIndexVersion   don't upgrade indexes to newest version --noOptionsRestore   don't restore collection options --noIndexRestore    don't restore indexes --w arg (=1)      minimum number of replicas per write

单个collection备份

mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory-h: MongoDB所在服务器地址-d: 需要恢复的数据库实例-c: 需要恢复的集合-f: 需要导出的字段(省略为所有字段)-o: 表示导出的文件名mongoexport的官方说明(可通过mongoexport --help查看): --help          produce help message -v [ --verbose ]     be more verbose (include multiple times for more              verbosity e.g. -vvvvv) --version         print the program's version and exit -h [ --host ] arg     mongo host to connect to ( /s1,s2 for              sets) --port arg        server port. Can also use --host hostname:port --ipv6          enable IPv6 support (disabled by default) -u [ --username ] arg   username -p [ --password ] arg   password --dbpath arg       directly access mongod database files in the given              path, instead of connecting to a mongod server -              needs to lock the data directory, so cannot be used              if a mongod is currently accessing the same path --directoryperdb     if dbpath specified, each db is in a separate              directory --journal         enable journaling -d [ --db ] arg      database to use -c [ --collection ] arg  collection to use (some commands) -f [ --fields ] arg    comma separated list of field names e.g. -f              name,age --fieldFile arg      file with fields names - 1 per line -q [ --query ] arg    query filter, as a JSON string --csv           export to csv instead of json -o [ --out ] arg     output file; if not specified, stdout is used --jsonArray        output to a json array rather than one object per              line -k [ --slaveOk ] arg (=1) use secondaries for export if available, default              true --forceTableScan     force a table scan (do not use $snapshot)

单个collection恢复

mongoimport -d dbhost -c collectionname -type csv -headerline -file-type: 指明要导入的文件格式-headerline: 批明不导入第一行,因为第一行是列名-file: 指明要导入的文件路径mongoimport的官方说明(可通过mongoimport --help查看): --help         produce help message -v [ --verbose ]    be more verbose (include multiple times for more             verbosity e.g. -vvvvv) --version        print the program's version and exit -h [ --host ] arg    mongo host to connect to ( /s1,s2 for sets) --port arg       server port. Can also use --host hostname:port --ipv6         enable IPv6 support (disabled by default) -u [ --username ] arg  username -p [ --password ] arg  password --dbpath arg      directly access mongod database files in the given             path, instead of connecting to a mongod server -             needs to lock the data directory, so cannot be used             if a mongod is currently accessing the same path --directoryperdb    if dbpath specified, each db is in a separate             directory --journal        enable journaling -d [ --db ] arg     database to use -c [ --collection ] arg collection to use (some commands) -f [ --fields ] arg   comma separated list of field names e.g. -f name,age --fieldFile arg     file with fields names - 1 per line --ignoreBlanks     if given, empty fields in csv and tsv will be ignored --type arg       type of file to import. default: json (json,csv,tsv) --file arg       file to import from; if not specified stdin is used --drop         drop collection first --headerline      CSV,TSV only - use first line as headers --upsert        insert or update objects that already exist --upsertFields arg   comma-separated fields for the query part of the             upsert. You should make sure this is indexed --stopOnError      stop importing at first error rather than continuing --jsonArray       load a json array, not one item per line. Currently             limited to 16MB.

其他导入与导出操作

1. mongoimport -d my_mongodb -c user user.dat参数说明:-d 指明使用的库, 本例中为" my_mongodb"-c 指明要导出的表, 本例中为"user"可以看到导入数据的时候会隐式创建表结构2. mongoexport -d my_mongodb -c user -o user.dat参数说明:-d 指明使用的库, 本例中为" my_mongodb"-c 指明要导出的表, 本例中为"user"-o 指明要导出的文件名, 本例中为"user.dat"


从上面可以看到导出的方式使用的是JSON 的样式.


备份 数据 e.g. 官方 实例 所在 数据库 文件 时候 目录 可通 地址 服务器 服务 单个 一行 位置 参数 字段 文件名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 小米移动互联网科技园 广东猪兼强互联网科技有限公司 狮子座互联网科技 互联网科技股票 杭州互联网科技公司 北京互联网络科技有限公司 远拓互联网科技 互联网科技的未来发展 互联网科技有限公司 翻译 互联网实体化科技化 宁波青枫互联网科技有限公司 央行互联网金融科技公司 翼展科技 首家互联网医院 高科技互联网发展前景如何 锡山区互联网智能科技产品供应 广东工业互联网大赛深圳学泰科技 宇信科技在杭州互联网排第几 互联网金融运营模式中的金融科技 宁波允成互联网科技有限公司 百单网互联网科技有限公司 互联网科技工作委员会毛军 合肥互联网科技公司 小米互联网科技园设置 科技类公司包括互联网吗 世界互联网领先科技成果获奖 北京市互联网新科技 启辰互联网科技 杭州披云加互联网科技有限公司 云鲸互联网络科技有限公司
0