MongoDB整库备份与还原以及单个collection备份、恢复方法
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,备份前的检查> show dbsMyDB 0.0625GBadmin (empty)bruce 0.0625GBlocal (empty)test 0.0625GB> use MyDBswitched
千家信息网最后更新 2025年11月10日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安全错误
数据库的锁怎样保障安全
文件连接服务器时出现问题
2019网络安全犯罪案例
数据库恢复的步骤
erp服务器多少钱
web服务器配置与管理图
数据库应用技术是本科学科吗
搞网络安全工作学什么专业
信息和网络安全会议
商务英语app软件开发简介
数据库的诞生是哪个领域推动的
国家网络安全宣传周活动准备
淄博软件开发企业
数据库设外键取名
数据库实体与属性图
上海皓恒网络技术有限公司
我的世界国外盗版服务器
网络安全保密管理工作
2021年中国网络安全报告
数据库返回的码值
亲家网络技术有限公司怎么样
软件开发约定周期
教你如何登陆服务器
经典的软件开发方法
上海金山软件开发培训
河北信息化少儿编程平台软件开发
电磁感应思维导图软件开发
九阴真经3d忘记服务器
软件开发些啥语言
串口服务器管理
计算机专科学网络安全