Mongodb EC2 EBS备份

时间:2013-08-19 17:47:29

标签: mongodb amazon-ec2 boto

我对这里需要做的事感到困惑。我是Mongo的新手。我在Amazon EC2上设置了一个小型Mongo服务器,带有EBS卷,一个用于数据,一个用于日志。我需要做一个备份。可以在半夜把DB放下来,至少目前是这样。

使用boto库,EBS快照和python进行备份,我构建了一个执行以下操作的简单脚本:

sudo service mongodb stop 运行数据备份 运行日志备份 sudo service mongodb start

脚本运行并重新启动,但我在AWS控制台中注意到快照仍然在创建,即使boto已经回来了,但是Mongo已经重新启动了。当然不理想。

我查看了Mongo文档,并找到了有关备份操作的解释:

http://docs.mongodb.org/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/#ec2-backup-database-files

这是一个很好的信息,但有点不清楚。如果你正在使用日记,那就是:

如果dbpath映射到单个EBS卷,则继续备份数据库文件。

我们有一个数据卷。所以,我假设这意味着绕过刷新和锁定的步骤。但在备份数据库文件结束时,它讨论了删除锁定。

所以,我有点困惑。当我最初阅读它时,我实际上并不需要做任何事情 - 我可以只运行备份,而不用担心刷新/锁定时间。我可能不需要取下DB。但是我的偏执部分说不,这听起来很可疑。

任何人对此,或经验或老式知识的任何想法?

2 个答案:

答案 0 :(得分:7)

由于您使用的是日记功能,因此只需运行快照而无需关闭数据库。只要日志文件在同一个EBS卷上就可以了,除非你将它们符号链接到其他地方,否则它们就可以了。

我们在亚马逊上运行了很多mongodb服务器,这也是我们这样做的方式。

答案 1 :(得分:0)

我同意在遇到崩溃一致性快照的情况下,日记应该注意一致性。也就是说,所有现代数据库和应用程序都具有各种日记和事务日志机制,并且仍然对于生产应用程序,人们通常更喜欢采用一致的快照,因为这些机制并不总是100%防弹。 如果您愿意,可以阅读我公司博客上关于单个服务器的MongoDB备份的以下帖子:

http://www.n2ws.com/blog/mongodb_consistent_backup.html

我们还发布了两篇关于MongoDB集群备份的帖子:

http://www.n2ws.com/blog/mongodb_cluster_consistent_backup_part_1.html http://www.n2ws.com/blog/mongodb_cluster_consistent_backup_part_2.html