多语言展示
当前在线:1996今日阅读:27今日分享:41

mongodb的备份还原

比较简单,但是网上的资料都不是很全
方法/步骤
1

备份:(需要进入到mongoDB的bin目录下执行)mongodump -h dbhost -d dbname -o dbdirectory -u admin –p password-h:服务器的IP-d:要备份的数据库名字-o:备份文件存放位置-u:用户名(admin)-p:密码(admin123)例:./mongodump -h 192.168.1.151 -d obd -o D:\data -u admin -p admin123备份192.168.1.151服务器上的obd数据库到D:\data目录下

2

还原:(需要进入到mongoDB的bin目录下执行)mongorestore -h dbhost -d dbname --directoryperdb dbdirectory -u admin –p password-h:服务器的IP-d:要还原的数据库名字(如果不加-d参数还原后的库名为备份时的库名)--directoryperdb:要还原的数据库备份文件位置-u:用户名(admin)-p:密码(admin123)例:./mongorestore -h 192.168.1.151 -d obd --directoryperdb D:\data\obd -u admin -p admin123将备份还原到192.168.1.151的obd库中注意:还原后用户名密码还为原来的用户名密码

3

虽然使用mongodump和mongorestore能不停机备份,但有两个问题。 (1)mongodump使用普通的查询机制,所以产生的备份不一定是服务器数据的实时快照。 (2)mongodump备份时的查询会对其他客户端的性能产生不利影响。

4

所以还有MongoDB的fsync命令能在MongoDB运行时复制数据目录还不会损毁数据。用法如下: 1 >use admin2 >db.runCommand( { fsync: 1, lock: true } )至此,数据目录的数据就是一致的,且为数据的实时快照,因为上了写入锁,可以安全地将数据目录副本用做备份。

5

备份好了,就要解锁,如下: 1 >db.fsyncUnlock(); 运行fsync命令是为了确保已经解锁了。

推荐信息