我正在Amazon EC2实例上设置一个MongoDB集群,文档说…
为获得最佳性能,我们build议为数据文件,日志和日志分别存储卷。 每个具有不同的写入行为,并将它们放在不同的卷上,可减lessI / O争用。
然后跟着…
注意:使用不同的存储设备会影响您创build快照式数据备份的能力,因为这些文件将位于不同的设备和卷上。
但是它并没有说出可能的影响。
我猜测这样做的影响是,它完全消除了在实例运行时执行快照样式备份的能力?
如果我要停止MongoD服务,以便数据文件,日志和日志不再被写入并快照所有这三个,我仍然会得到一个安全的可恢复备份?
根据Mongo的回答是:
刷新并locking数据库
必须将写入挂起到文件系统才能创build数据库文件的稳定副本。
在MongoDB 2.0之前,这是通过使用fsync和lock的MongoDB shell实现的:
mongo shell> use admin mongo shell> db.runCommand({fsync:1,lock:1}); { "info" : "now locked against writes, use db.$cmd.sys.unlock.findOne() to unlock", "ok" : 1 }
MongoDB 2.0添加了db.fsyncLock()方法来locking数据库并刷新写入磁盘,并在快照完成后添加db.fsyncUnlock()方法来解锁数据库。
在数据库被locking的时候,这个数据库收到的任何写请求都会被拒绝。 任何应用程序代码都需要适当地处理这些错误。
如何在EC2中设置Mongo,请参阅https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
备份覆盖在这里: https : //docs.mongodb.org/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/#ec2-backup-and-restore