Amazon RDS备份/快照如何实际工作?
我是Amazon RDS客户,每天都会遇到Amazon的RDS写入延迟峰值,大致对应于备份窗口。 我还会在快照结束时看到尖峰(例如:运行快照需要appx 1小时,在最后5分钟内写入延迟峰值)。 我正在运行多可用区m1.large部署。
有没有人可以解释Amazon RDS备份是如何工作的? 我已阅读Amazon RDS文档,据我所知,Amazon RDS不符合规范。 具体来说,这些备份/快照操作应该打到我的副本,因此不会造成任何停机/性能打击,所以我想。
我可以把我的问题提炼成六个问题:
- 在快照和备份过程中技术上发生了什么,它们又有什么不同? (如果你回答这个问题,请告诉我,如果你能够凭经验确认你的答案,或只是简单地引用我的文档)。
- 在多可用区部署的备份窗口期间是否会出现写入延迟高峰?
- 预计在多可用区域部署快照结束时,写入延迟是否会激增?
- 如果我不是多可用区,我的写入延迟会更高吗?
- 在架构上,如果我将自己的数据库运行在两个m1.large EC2实例上,我是否能够避免这些写延迟高峰?
- 有没有我可以使用的configuration可以避免这些写入延迟尖峰,同时仍然使用RDS托pipe我的数据库,还是我实际上受到了Amazon的摆布?
奖金问题:你在哪里以及如何托pipe你的MySQL数据库?
我可以说,除了这些每日写入延迟问题外,我一直对RDS感到满意。 我喜欢内置的数据库监控,安装起来相当简单。
谢谢!
除了我们自己pipe理的一些机器上的MySQL外,我们还运行了几个RDS实例。 我不能特别评论,因为我不是亚马逊的工程师,但是我学到的几件事可能会解释你所看到的:
-
尽pipe亚马逊并没有100%的共享后端细节,但我们强烈怀疑他们正在使用他们的EBS系统来支持RDS数据库。
-
这篇文章有助于解释EBS限制和快照functionhttp://blog.rightscale.com/2008/08/20/amazon-ebs-explained/同样,虽然它并不明确,但亚马逊使用这种基础架构提供RDS服务。
-
通常情况下,与快照相比,MySQL备份涉及使用像mysqldump这样的工具来创buildSQL语句文件,然后再重新生成数据库。 数据库不需要被冻结来做到这一点。 对于EBS后端,最佳做法是在快照时冻结数据库(暂停所有事务)以避免数据损坏。
-
您在备份窗口末尾看到的尖峰。 如果在复制副本的快照期间由Amazon暂停复制,则复制副本将需要在快照完成时“赶上”事务。 这将导致延迟峰值。
-
整个多可用区域部署的复制本质上比单个可穿戴式区域部署要慢。 你付出的代价更好的冗余。