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

Posted

技术标签:

【中文标题】Amazon RDS 备份/快照实际上是如何工作的?【英文标题】:How does Amazon RDS backup/snapshot actually work? 【发布时间】:2011-07-12 02:43:22 【问题描述】:

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

Stack 上有没有人可以解释 Amazon RDS 备份是如何实际工作的?我已阅读 Amazon RDS 文档,据我所知,Amazon RDS 的行为不符合规范。具体来说,这些备份/快照操作应该会影响我的副本,因此不会造成任何停机/性能损失,或者我认为。

我可以将我的问题提炼成六个问题:

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

额外问题:您在哪里以及如何托管您的 mysql 数据库?

我可以说,除了这些日常写入延迟问题之外,我对 RDS 总体上很满意。我喜欢内置的数据库监控,它的设置和使用都相当简单。

谢谢!

【问题讨论】:

【参考方案1】:

除了在我们自己管理的一些机器上运行 MySQL 之外,我们还运行多个 RDS 实例。我不能具体评论,因为我不是亚马逊工程师,但我学到的几件事可以解释你所看到的:

虽然 Amazon 没有 100% 共享后端详细信息,但我们强烈怀疑他们正在使用他们的 EBS 系统来支持 RDS 数据库。

本文有助于解释 EBS 限制和快照功能http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/ 同样,虽然没有明确说明,但亚马逊使用此基础设施提供 RDS 服务是有意义的。

通常,与快照相比,MySQL 备份涉及使用 mysqldump 之类的工具来创建 SQL 语句文件,然后再复制数据库。不需要冻结数据库即可执行此操作。对于 EBS 后端,最佳做法是在创建快照时冻结数据库(暂停所有事务)以避免数据损坏。

您在备份窗口结束时看到的尖峰。如果复制在您的副本快照期间被 Amazon 暂停,则副本将需要在快照完成时“赶上”事务。这会导致延迟高峰。

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

【讨论】:

我可以确认 Amazon RDS 使用 EBS 作为其 RDS 数据库的后备存储。 RDS Cloudwatch 中的读取延迟和写入延迟图有效地描述了 EBS 实例。谢谢你的回答,很有道理。 亚马逊在此处aws.amazon.com/message/65648aws.amazon.com/message/65648 @Joshua 你对这个(有点相关的)话题有什么想法吗? ***.com/questions/6799371/… 谢谢! 如果使用只读副本,会影响主副本吗? AWS 文档现在指出“在单可用区数据库实例上的自动备份和数据库快照操作期间会发生短暂的 I/O 冻结,通常持续几秒钟。” docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…【参考方案2】:

亚马逊透露了他们在多可用区部署中使用的基本架构。这可能有助于人们做出决定

https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/

【讨论】:

以上是关于Amazon RDS 备份/快照实际上是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

AWS RDS备份是增量备份还是差异备份?

如何比较两个Amazon RDS快照?

Amazon RDS:将快照还原到现有实例

Amazon RDS 如何计算 I/O 率?

Amazon EBS,快照作为增量备份

以递增方式跨区域复制RDS数据库快照