Amazon RDS备份/快照实际上如何工作?


94

我是Amazon RDS客户,并且每天都在经历Amazon RDS写入延迟峰值,大致对应于备份窗口。我还将在快照末尾看到峰值(例如:运行快照大约需要1个小时,而在最后5分钟内,写入延迟峰值)。我正在运行多可用区m1.large部署。

堆栈上有谁可以解释Amazon RDS备份的实际工作方式吗?我已经阅读了Amazon RDS文档,据我所知,Amazon RDS的行为不符合规范。具体来说,这些备份/快照操作应该击中我的副本,因此不会造成停机时间/性能下降,或者我认为。

我可以将我的问题分为六个问题:

  • 快照和备份期间在技术上发生了什么,它们有何不同?(如果您回答了这个问题,请告诉我您是否能够凭经验确认您的答案,或者只是引用我的文档)。
  • 在多可用区部署的备份窗口期间,是否会出现写延迟高峰?
  • 在多可用区部署中,快照结束时是否会出现写延迟高峰?
  • 如果我不是多可用区,我的写延迟高峰会更高吗?
  • 从体系结构上讲,如果我在两个m1.large EC2实例上运行自己的数据库,是否能够避免这些写延迟高峰?
  • 我是否可以使用任何配置来避免这些写入延迟峰值,同时仍用RDS托管我的数据库,还是我可以有效地受到Amazon的摆布?

奖励问题:您在哪里以及如何托管mysql数据库?

我可以说,除了这些日常写入延迟问题之外,我对RDS总体上感到满意。我喜欢内置的数据库监视功能,它的设置和运行相当简单。

谢谢!

亚马逊RDS写延迟

Answers:


78

除了在我们自己管理的某些计算机上的MySQL外,我们还运行多个RDS实例。由于我不是Amazon工程师,所以我无法具体评论,但是我所学到的几件事可能可以解释您所看到的内容:

  • 尽管Amazon不会100%共享后端详细信息,但我们强烈怀疑他们使用其EBS系统来备份RDS数据库。

  • 本文有助于说明EBS的局限性和快照功能http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/ 再次说明(虽然不是很明确),但Amazon使用此基础架构来实现提供RDS服务。

  • 通常,与快照相比,MySQL备份涉及使用mysqldump之类的工具来创建SQL语句文件,然后该文件将重现数据库。为此,无需冻结数据库。使用EBS后端,最佳实践是在快照时冻结数据库(暂停所有事务),以避免数据损坏。

  • 您在备份窗口末端看到的峰值。如果Amazon在您的副本快照期间暂停了复制,则副本将需要在快照完成后“赶上”事务。这将导致延迟尖峰。

  • 跨多可用区部署的复制从本质上讲要比单个可用区部署慢。您为获得更好的冗余而付出的代价。


7
我可以确认Amazon RDS使用EBS作为其RDS数据库的后备存储。RDS Cloudwatch中的“读取延迟”和“写入延迟”图有效地描述了EBS实例。谢谢您的回答,这很有意义。
esilver 2011年

1
亚马逊在停运验尸中共享更多详细信息,网址为aws.amazon.com/message/65648
Joshua

@Joshua您对此主题有什么想法吗?stackoverflow.com/questions/6799371/… 谢谢!
esilver

如果使用只读副本,会影响主副本吗?
2014年

1
AWS文档现在指出“在单可用区数据库实例上的自动备份和数据库快照操作期间,都会发生短暂的I / O冻结,通常持续几秒钟。” docs.aws.amazon.com/AmazonRDS/latest/UserGuide/...
baxang

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.