写这个Blog到今天也有一点心血,如果数据突然丢了也挺可惜的。今天看了一下,在数据量不是很大情况下,MongoDB的数据备份还是非常方便的。原文参考MongoDB整库备份与还原以及单个collection备份、恢复方法。
mongodump备份/mongorestore恢复
这个方法备份是把数据库里面的内容整个dump成BSON文件,使用很简单。
备份:
mongodump -d <dbname> -o <dest_dir> 或者
mongodump -h <dbhost> -d <dbname> -o <dest_dir>
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017 -d:需要备份的数据库实例,例如:test -o:备份的数据存放位置 有时候在执行此命令的时候可能会出错: connected to: 127.0.0.1 terminate called after throwing an instance of 'std::runtimeerror' what(): locale::facet::Screateclocale name not valid Aborted 可以参考这个答案: export LCALL="en_US.UTF-8"
恢复
mongorestore -d <dest_dbname> --directoryperdb <data_dir> 或者
mongorestore -h <dbhost> -d <dest_dbname> --directoryperdb <dbdirectory>
-h:MongoDB所在服务器地址 -d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2 –directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧! –drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份前添加修改的数据都会被删除,慎用哦!