备份App Engine数据库(谷歌云存储?)

时间:2011-10-12 22:44:48

标签: database google-app-engine backup cloud storage

我有一个AppEngine应用程序,目前有大约15GB的数据,在我看来,使用当前的AppEngine批量加载工具备份这个大小的数据集是不切实际的。因此,我开始研究其他备份方式,并且有兴趣了解人们可能用于备份AppEngine数据的实用解决方案。

顺便说一句,我开始认为Google云端存储可能是一个不错的选择。我很想知道是否有人使用谷歌云存储作为他们的AppEngine数据的备份经验,以及他们的经验,以及在走这条道路之前是否有任何我应该注意的指针或事情。

无论我最终采用哪种解决方案,我都希望有一个备份解决方案来满足以下要求:

1)备份速度合理,恢复速度相当快(即如果严重错误/数据删除/恶意攻击袭击我的网站,我不想在恢复数据库时将其关闭多天 - 快速我的意思是小时,而不是几天。

2)来自AppEngine数据的单独位置和帐户 - 即。我不希望有管理员访问我的AppEngine数据的人必须具有对备份数据位置的写入/删除访问权限 - 例如,如果我的AppEngine帐户被黑客入侵,或者心怀不满的员工决定删除我的所有数据,我希望备份与AppEngine管理员帐户分开。

总结一下,鉴于从云中获取数据似乎缓慢/痛苦,我想要的是一个基于云的备份解决方案,它模仿磁带备份过去所服务的角色 - 如果我有的话一个备份磁带,没有其他人可以修改该磁带的内容 - 但由于我无法获得磁带,我可以在某个地方存储我的数据的安全副本,只有我有权访问吗?

亲切的问候 亚历山大

2 个答案:

答案 0 :(得分:4)

这里有一些选项,但没有一个(目前)正是你想要的。

使用SDK 1.5.5版的最新版本,我们现在支持直接与Google存储接口 - 您可以看到here。有了这个,你可以把数据写入谷歌存储,但据我所知,没有办法编写一个应用程序将无法删除的文件。

要实际收集数据,您可以使用App Engine mapreduce API。它内置支持写入App Engine blobstore;写入Google存储需要您目前实现自己的输出编写器。

正如WoLpH建议的那样,另一个选择是使用数据存储管理工具将数据备份到另一个应用程序。只需稍加努力,您就可以修改remote_api存根以禁止删除目标(备份)应用程序。

无论你的Google帐户是enable two-factor authentication,你都应该做的一件事情;这使得任何人都很难控制您的帐户,即使他们发现了您的密码。

答案 1 :(得分:1)

批量加载程序可能是备份/恢复数据的最快方法之一。

AppEngine的问题在于您必须通过视图执行所有操作。因此,您拥有视图所具有的限制......结果是快速备份/恢复仍然必须使用与应用程序其余部分相同的API。所以批量加载器(可能有一些修改)绝对是你最好的选择。

也许......(尚未尝试过),您可以使用新的数据存储区管理员将数据复制到另一个应用程序。只有你控制的一个。这样,您可以在需要时将其从其他应用程序复制回来。