2011-02-23 180 views

回答

1

我们使用(至少两个)与存储在EBS数据和副本集Linux实例(HTTP:/ /www.mongodb.org/display/DOCS/Replica+Sets)。

+1

你多久快照EBS? – ComputationalSocialScience 2011-02-23 22:34:17

+6

复制!=备份 – Qualcuno 2015-06-02 15:22:00

3

谁比10gen(MongoDB开发人员)更能回应你。

您可以在follogin站点查看有关EC2实例中的MongoDB备份的官方文档。 http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/

他们建议EBS快照。这个解决方案允许在几秒钟内用数据库的“照片”启动实例。

+0

他们有一个特别的EC2备份教程,虽然他们没有提供自动脚本/ lambda来执行它:[EC2备份](https://docs.mongodb.com/ecosystem/tutorial/backup -and-restore-mongodb-on-amazon-ec2 /) – 2016-06-16 21:20:21

6

老问题,但我认为我可以提供有关真实成功案例的更多细节和信息。

在生产环境中,我有3个Mongodb,其中有3个T2.micro实例运行的replicaset,1个实例是主要实例,1个实例是次要实例,1个实例被延迟(每4小时同步一次)在实例重启后没有被删除)。 每4.5小时我开始一个Lambda进程,它会生成延迟实例的EBS快照并发送到S3存储桶。 这工作得很好。

一些链接,可以帮助:

+0

你在每台机器上使用单个EBS卷吗?如果有几个EBS卷(RAID)构成/ data:文件夹,则快照会出现问题。快照可能发生在您的同步过程中。我真的不明白你的“延迟”的东西如何来帮助这里。 [EC2上的MongoDB Docs](https://docs.mongodb.com/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/)也建议锁定数据库,而这似乎并不在你的链接中被覆盖。 – 2016-06-16 21:16:25

+0

延迟更方便(在我的方案中)。无论如何,你应该在EBS快照之前执行一个rs.fsyncLock(),就像你说的那样。在我的环境中,我在EBS快照之前从lambda执行rs.fsyncLock()。我正在考虑编写一篇中文文章,解释我为解决这类问题所做的工作,例如,我创建了一个接收HTTP命令并在我的Mongodb中执行的Node.js,以便我可以从我的lambda调用来执行,例如, rs.fsyncLock()。 – danilodeveloper 2016-06-16 21:27:04

+0

...我为每个EC2附加了一个EBS卷 – danilodeveloper 2016-06-16 21:37:20