当前位置:首页>开发>正文

如何在MongoDB上备份和恢复数据 mongodb 有数据文件 怎么恢复数据库

2023-04-15 23:47:37 互联网 未知 开发

 如何在MongoDB上备份和恢复数据 mongodb 有数据文件 怎么恢复数据库

如何在MongoDB上备份和恢复数据

一、mongodb界面客户端工具
MongoVUE -一个windows下的客户端管理工具
下载地址:http://pan.baidu.com/share/link?shareid=369097&uk=409517626MongoHUB - Mac下的 MongoDB 客户端。
Server Density -是一个商业的监控服务提供商
rock_mongo - PHP写的一个web工具

二、MongoDB文档导入导出操作
1、文档导出
MongoDB提供了mongoexport工具,可以把一个collection导出成json格式或csv格式的文件。可以指定导出哪些数据项,也可以根据给定的条件导出数据。
-h [ --host ]
-u [ --username ] arg username
-p [ --password ] arg password
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-f [ --fields ]如 -f name,age
-q [ --query ] arg query filter, as a JSON string
--csv export to csv instead of json
-o [ --out ] arg output file
如下命令:
导出格式分别为:dat、json、csv
mongoexport -h 127.0.0.1 -d twang -c adservice -o D:logoadservice.dat
mongoexport -h 127.0.0.1 -d twang -c adservice -o D:logoadservice.json
mongoexport -h 127.0.0.1 -d twang -c adservice -o D:logoadservice.csv
2、文档导入
【注意:】导入前请删除原有的文件
mongoimport工具,可以把一个特定格式文件中的内容导入到某张collection中。
-h [ --host ] arg mongo host to connect to ( /s1,s2 for sets)
-u [ --username ] arg username
-p [ --password ] arg password
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-f [ --fields ]

如下命令:
导出格式分别为:dat、json、csv
mongoimport -h 127.0.0.1 -d twang -c adservice D:logoadservice.dat
mongoimport -h 127.0.0.1 -d twang -c adservice D:logoadservice.json
mongoimport -h 127.0.0.1 -d twang -c adservice D:logoadservice.csv

二、MongoDB数据库导入导出操作
1、导出数据库 twangback为备份的文件夹
命令:
mongodump -h 127.0.0.1【服务器IP】 -d adview 【数据库名】-o D:Mongodbdata wangback【自己定义备份存储文件夹】
例如:
mongodump -h 127.0.0.1 -d twang-o twangback
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:2701-d:需要备份的数据库实例,例如:twang
-o:备份的数据存放位置,例如:D:Mongodbdata,当然该目录需要提前建立,在备份完成后,系统自动在data目录下建立一个twangback目录,这个目录里面存放该数据库实例的备份数据。

2、导入数据库从文件夹twangback
【注意:】导入前请删除原有的文件
命令:
mongorestore -h localhost -d twang【数据库名】
mondodbback wang wangback wang【备份的路径】

例如:
mongorestore-hlocalhost-dtwangD:Mongodbdata wangback wang
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:twang,当然这个名称也可以和备份时候的不一样,比如test--directoryperdb:备份数据所在位置,例如:D:Mongodbdata wangback wang

mongodb 有数据文件 怎么恢复数据库

1、冷备份与恢复——创建数据文件的副本(前提是要停止MongoDB服务器),也就是直接copy
www.2cto.com
MongoDB将所有数据都存储在数据目录下,默认是/data/db/(Windows下是C:datadb),启动MongoDB时也可以用--dbpath指定我们自己设置的数据存储目录。
备份MongoDB数据:只要简单的创建数据存储目录的副本就可以了,直接copy一份。
恢复MongoDB数据:在MongoDB启动时用--dbpath指定数据存储目录副本位置。

在服务器运行的情况下直接copy是有风险的,可能copy出来时,数据已经遭到破坏,这种方式下创建数据目录的副本需要在关闭MongoDB服务器的前提下,数据目录中存储的就是关闭那一刻数据的快照,在服务器重新启动之前可以复制目录作为备份。

mongodb 用$set更新但是被还原

你好,解决办法如下:
如果primary出现故障,(not reachable/healthy),这时候,second依旧是seconde,

只能提供读的操作。如果重启primary member,一般情况下是按照最新数据的member作为

primary,这个时候这个节点依旧可以作为primary member使用。replica set恢复正常。

如果seconde出现故障,(not reachable/healthy),这时候,primary member自动降级为

seconde member,replica set中不存在primary member,无法提供写操作,数据会丢失。

如果seconde故障时间比较短(oplog相关),重启后,最好指定

config={_id:shard1,members:[
{_id:1,host:127.0.0.1:10001},
{_id:0,host:127.0.0.1:10002,priority:1}]
}

10002作为你需要的最新数据为primary member,这个时候,replica set恢复正常。

如果人为rs.remove()掉seconde member,primary member依旧不变

如果人为rs.remove()掉primary member,seconde member依旧不变。

如果seconde故障时间比较短(oplog相关):

这句话的意思是,replica set master和slave之间的复制,是采取oplog读操作日志

的方式进行复制数据的。所以短时间这个日志比较小的情况下,启动slave,加上

--fastsync 启动参数,可以再原来的replication 复制的log基础上快速启动,并syn

同步最新的master数据,否则,master上的oplog日志上一轮如果结束了,这个时候,

slave 从master获取oplog的时候,发现和master的数据相差太远,更不上master的更新

了,这个时候,seconde节点不能正常加入replica set中,需要删除seconde数据,进行

冷copy master数据,然后再进行同步。

2.最少replica set中至少有2个member(primary 、seconde),一个Arb member。

这种情况,Arb member意义不大,最差情况和上边1一样,导致replica set 瘫痪,

所以,最有意义的配置应该是3个member(1primary、2seconde),一个 Arb member。

求助,mongodb如何恢复误删数据

正常来说不行的。
mongodb的journal只是在mongod真正把改动写进数据库文件之前记录这个操作,以防在进程突然中断时数据库文件会损坏而已,对于删除操作,journal里并没有原来的数据。
在特殊的境况下,比如操作刚刚写进journal,还没有真正写进数据库文件的时候,如果你把mongod进程中断了,那么就可以保存原来的数据,但是默认的journalCommitInterval是100毫秒,所以基本上是来不及的。
另一种情况,是如果你是在一个replica set里面,有可能在删除primary之后,改动还没有来得及传播到某些replica set的成员,在这个之前你能把那些replica set的连接中断,是可以保住原来的数据的。

mongodb 主从复制会复制索引吗

集群配置相关链接:
征服 Mongodb 之 安装与系统服务配置
征服 Mongodb 之 主从复制&集群复制

基本操作相关链接:
征服 Mongodb 之 常用命令、基本数据类型
征服 Mongodb 之 Modifier初识
征服 Mongodb 之 Modifier增强
征服 Mongodb 之 CRUD

一、主从复制
一般数据库都会用到这种最通用的模式——主从模式。这种方式简单灵活,可用于备份、故障恢复,读扩展。为了平衡负载,一般通过读写分离模式,即主库写、从库读。

最新文章