mongodb导出导入
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,数据库都分为冷备份与热备份,所谓的冷备份就是停库,然后把数据拷贝;热备份就是使用相应工具,在数据库运行时做备份。每种库都会有自己的热备份工具,mongodb也不例外。mongodb的备份主要有热备和冷
千家信息网最后更新 2025年01月31日mongodb导出导入
数据库都分为冷备份与热备份,所谓的冷备份就是停库,然后把数据拷贝;热备份就是使用相应工具,在数据库运行时做备份。每种库都会有自己的热备份工具,mongodb也不例外。
mongodb的备份主要有热备和冷备。
一,冷备:
停止mongodb服务,直接copy数据目录;启动mongodb时,可以用--dbpath指定自己设置的数据库存储目录。
二,热备:
用mongodump来做MongoDB的库或表级别的热备份。
认识一下mongodump,
[mongo@tstdb-25-220 mongodb]$ bin/mongodump --helpUsage: mongodumpExport the content of a running server into .bson files.Specify a database with -d and a collection with -c to only dump that database or collection.See http://docs.mongodb.org/manual/reference/program/mongodump/ for more information.general options: --help print usage --version print the tool version and exitverbosity options: -v, --verbose= more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric value, e.g. --verbose=N) --quiet hide all log outputconnection options: -h, --host= mongodb host to connect to (setname/host1,host2 for replica sets) --port= server port (can also use --host hostname:port)authentication options: -u, --username= username for authentication -p, --password= password for authentication --authenticationDatabase= database that holds the user's credentials --authenticationMechanism= authentication mechanism to usenamespace options: -d, --db= database to use -c, --collection= collection to usequery options: -q, --query= query filter, as a JSON string, e.g., '{x:{$gt:1}}' --queryFile= path to a file containing a query filter (JSON) --readPreference= | specify either a preference name or a preference json object --forceTableScan force a table scanoutput options: -o, --out= output directory, or '-' for stdout (defaults to 'dump') --gzip compress archive our collection output with Gzip --repair try to recover documents from damaged data files (not supported by all storage engines) --oplog use oplog for taking a point-in-time snapshot --archive= dump as an archive to the specified path. If flag is specified without a value, archive is written to stdout --dumpDbUsersAndRoles dump user and role definitions for the specified database --excludeCollection= collection to exclude from the dump (may be specified multiple times to exclude additional collections) --excludeCollectionsWithPrefix= exclude all collections from the dump that have the given prefix (may be specified multiple times to exclude additional prefixes) -j, --numParallelCollections= number of collections to dump in parallel (4 by default)
看下导出过程
[mongo@tstdb-25-220 mongodb]$ bin/mongodump -h 172.16.25.220 -d sykdb -o /usr/local/mongodb/backup2016-10-31T09:41:03.521+0800 writing sykdb.system.indexes to 2016-10-31T09:41:03.522+0800 done dumping sykdb.system.indexes (2 documents)2016-10-31T09:41:03.523+0800 writing sykdb.system.profile to 2016-10-31T09:41:03.523+0800 writing sykdb.sykdb to 2016-10-31T09:41:03.523+0800 writing sykdb.table_syk to 2016-10-31T09:41:03.524+0800 done dumping sykdb.system.profile (2 documents)2016-10-31T09:41:03.524+0800 done dumping sykdb.sykdb (2 documents)2016-10-31T09:41:03.524+0800 done dumping sykdb.table_syk (1 document)
导出后的文件如下:
[mongo@tstdb-25-220 mongodb]$ cd backup/[mongo@tstdb-25-220 backup]$ ll总用量 4drwxr-xr-x. 2 mongo dbmon 4096 10月 31 09:41 sykdb[mongo@tstdb-25-220 backup]$ cd sykdb/[mongo@tstdb-25-220 sykdb]$ ll总用量 28-rw-r--r--. 1 mongo dbmon 75 10月 31 09:41 sykdb.bson-rw-r--r--. 1 mongo dbmon 83 10月 31 09:41 sykdb.metadata.json-rw-r--r--. 1 mongo dbmon 136 10月 31 09:41 system.indexes.bson-rw-r--r--. 1 mongo dbmon 1529 10月 31 09:41 system.profile.bson-rw-r--r--. 1 mongo dbmon 55 10月 31 09:41 system.profile.metadata.json-rw-r--r--. 1 mongo dbmon 36 10月 31 09:41 table_syk.bson-rw-r--r--. 1 mongo dbmon 87 10月 31 09:41 table_syk.metadata.json
下面看一下导入(导出与导入可以看做是备份与恢复,所有的备份都是为了恢复而做)
[mongo@tstdb-25-220 mongodb]$ bin/mongorestore --helpUsage: mongorestoreRestore backups generated with mongodump to a running server.Specify a database with -d to restore a single database from the target directory,or use -d and -c to restore a single collection from a single .bson file.See http://docs.mongodb.org/manual/reference/program/mongorestore/ for more information.general options: --help print usage --version print the tool version and exitverbosity options: -v, --verbose= more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric value, e.g. --verbose=N) --quiet hide all log outputconnection options: -h, --host= mongodb host to connect to (setname/host1,host2 for replica sets) --port= server port (can also use --host hostname:port)authentication options: -u, --username= username for authentication -p, --password= password for authentication --authenticationDatabase= database that holds the user's credentials --authenticationMechanism= authentication mechanism to usenamespace options: -d, --db= database to use -c, --collection= collection to useinput options: --objcheck validate all objects before inserting --oplogReplay replay oplog for point-in-time restore --oplogLimit= [:ordinal] only include oplog entries before the provided Timestamp --archive= restore dump from the specified archive file. If flag is specified without a value, archive is read from stdin --restoreDbUsersAndRoles restore user and role definitions for the given database --dir= input directory, use '-' for stdin --gzip decompress gzipped inputrestore options: --drop drop each collection before import --writeConcern= write concern options e.g. --writeConcern majority, --writeConcern '{w: 3, wtimeout: 500, fsync: true, j: true}' (defaults to 'majority') --noIndexRestore don't restore indexes --noOptionsRestore don't restore collection options --keepIndexVersion don't update index version --maintainInsertionOrder preserve order of documents during restoration -j, --numParallelCollections= number of collections to restore in parallel (4 by default) --numInsertionWorkersPerCollection= number of insert operations to run concurrently per collection (1 by default) --stopOnError stop restoring if an error is encountered on insert (off by default) --bypassDocumentValidation bypass document validation
--oplogReplay这个参数,大家注意一下,mongodb的导出导入可以做的基本时间点的恢复
我们再insert一行,然后测试一下:
moe:PRIMARY> db.sykdb.insert ({"job":"dba"})
然后导入:
[mongo@tstdb-25-220 mongodb]$ bin/mongorestore -h 172.16.25.220 -d sykdb backup/sykdb2016-10-31T10:28:21.049+0800 building a list of collections to restore from backup/sykdb dir2016-10-31T10:28:21.051+0800 reading metadata for sykdb.sykdb from backup/sykdb/sykdb.metadata.json2016-10-31T10:28:21.051+0800 reading metadata for sykdb.table_syk from backup/sykdb/table_syk.metadata.json2016-10-31T10:28:21.051+0800 reading metadata for sykdb.system.profile from backup/sykdb/system.profile.metadata.json2016-10-31T10:28:21.051+0800 restoring sykdb.sykdb from backup/sykdb/sykdb.bson2016-10-31T10:28:21.051+0800 no indexes to restore2016-10-31T10:28:21.052+0800 finished restoring sykdb.system.profile (0 documents)2016-10-31T10:28:21.052+0800 restoring sykdb.table_syk from backup/sykdb/table_syk.bson2016-10-31T10:28:21.086+0800 restoring indexes for collection sykdb.sykdb from metadata2016-10-31T10:28:21.086+0800 restoring indexes for collection sykdb.table_syk from metadata2016-10-31T10:28:21.086+0800 finished restoring sykdb.sykdb (2 documents)2016-10-31T10:28:21.086+0800 finished restoring sykdb.table_syk (1 document)2016-10-31T10:28:21.087+0800 done
查询一下,看数据是否回来了
moe:PRIMARY> db.sykdb.find().limit(100);{ "_id" : ObjectId("5816ac26d37a70860b091c1f"), "job" : "dba" }{ "_id" : ObjectId("5813041a56c55d778812e689"), "name" : "syk" }{ "_id" : ObjectId("5813065356c55d778812e68a"), "loc" : "beijing" }
介绍一对命令:mongoexport/mongoimport
[mongo@tstdb-25-220 mongodb]$ bin/mongoexport -h 172.16.25.220 -d sykdb -c table_syk -o table_syk.dat2016-10-31T11:43:40.893+0800 connected to: 172.16.25.2202016-10-31T11:43:40.894+0800 exported 1 record
查看导出来的文件:
[mongo@tstdb-25-220 mongodb]$ strings table_syk.dat {"_id":{"$oid":"581313a856c55d778812e68b"},"name":"syk"}[mongo@tstdb-25-220 mongodb]$ file table_syk.dat table_syk.dat: ASCII text
看来这个工具相当于其他数据库中的逻辑导出
把表清空
moe:PRIMARY> db.table_syk.drop()
导入
[mongo@tstdb-25-220 mongodb]$ bin/mongoimport -h 172.16.25.220 -d sykdb -c table_syk table_syk.dat2016-10-31T11:45:22.499+0800 connected to: 172.16.25.2202016-10-31T11:45:22.540+0800 imported 1 document
数据回来了。
备份
数据
e.g.
数据库
工具
就是
文件
用量
目录
一行
参数
命令
备份工具
拷贝
时间
级别
过程
逻辑
存储
服务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
专家谈网络安全文案
流程管理软件开发
互联网科技复盘
奥罗服务器好吗
vfp属于什么型数据库
上海博为峰软件开发合同标书
网络服务器的优化配置操作
机智过人网络安全
最新我的世界斗罗大陆服务器
沧州福州app软件开发
电脑无线网dns服务器不可用
染整软件开发价格
专业网络技术学校
杀手连不上服务器
城阳区定制软件开发哪家好
传奇dbc数据库添加装备
网络安全难度大吗
2017家庭金融调查数据库
新冠病毒 网络技术
网络技术工资待遇怎么样
海淀区网络安全专题培训信息
广东法律法规数据库
c和数据库的书籍
网络安全话剧演出
金蝶无法导入数据库
轻松钻网络技术有限公司
华为台式机服务器
网络安全教育的体会200
区块链游戏有中心化服务器吗
黄浦区正规网络技术服务哪里好