为什么还原我的 Amazon RDS for MySQL 数据库实例的快照需要这么长时间?

1 分钟阅读
0

我正在尝试还原 Amazon Relational Database Service (Amazon RDS) for MySQL 数据库实例的快照。为什么需要这么长时间?

简短描述

快照还原时间长通常是因为数据库还原时间较长。还原时间取决于拍摄快照时实例的工作负载。如果源数据库实例启用了二进制日志记录,则还原可能需要更长时间。因此,您的快照还原持续时间也可能受到影响。

解决方法

当您还原快照时,Amazon RDS 将执行恢复流程,并在新的数据库实例上启动 MySQL 数据库引擎。新数据库实例的启动可能需要几分钟,具体取决于实例启动期间恢复会话的长度。有关更多信息,请参阅 MySQL 网站上的 InnoDB 崩溃恢复

**注意:**在卷从 Amazon Simple Storage Service (Amazon S3) 完全水合之前,您将遇到一些延迟(或延迟加载)。有关延迟加载的更多信息,请参阅从快照还原

要缩短 Amazon RDS 中的快照还原完成时间,请考虑以下方法:

  • 将备份窗口或数据库实例快照的手动拍摄安排在非高峰时段。拍摄快照时对源数据库实例执行的活动会影响数据库恢复时间和任何快照还原时间。
  • 如果源实例在拍摄快照期间使用磁性存储类型,则新还原的实例将处于修改状态。例如,当您将数据库快照还原为通用 SSD (GP2) 或预置 IOPS (PIOPS) 存储类型时,将发生底层卷变更。因此,您的新实例指示“修改”状态。在此期间,您仍然可以连接到 Amazon RDS 实例,但是您可能会遇到一些性能下降的情况。
  • 暂时将您的实例还原到更高的数据库实例类(例如具有更多内存或 RAM 的实例类)。通过升级数据库实例类,可以缩短崩溃恢复时间。您暂时获得更多资源,这有助于加快总体崩溃恢复速度。快照还原完成后,您可以缩减实例类。

要缩短在 Amazon RDS 中启用了二进制日志记录的快照还原完成时间,请考虑以下几点:

  • 启用二进制日志记录时(例如源实例启用了自动备份时),二进制日志直接影响快照还原时间。在崩溃恢复期间,快照还原进程还会执行二进制日志恢复。
  • 为了缩短二进制日志恢复时间,请避免大量事务和大型二进制日志文件。二进制日志中记录的数据越多,在二进制日志恢复期间还原进程必须处理的数据就越多。因此,恢复时间增加,这也会增加快照还原时间。
  • 尽可能使用正确的事务规模。大型事务一次写入二进制日志文件,并且不会拆分到不同的文件中。因此,二进制日志文件最终变得很大,因而增加了崩溃恢复时间。
  • 使用的二进制日志记录格式的类型也可能影响恢复的规模和效率。有些格式(例如基于行的日志记录)比二进制日志中的其他格式记录了更多的信息。修改表中的大量行的语句会导致数据库引擎为每个修改的行生成二进制日志条目。因此,您将得到一个很大的二进制日志文件。有关基于行的日志记录格式的更多信息,请参阅 MySQL 网站上的基于行的日志记录和复制的使用情况。有关不同类型的二进制日志记录格式的更多信息,请参阅 MySQL 网站上的基于语句和基于行的复制的优缺点

AWS 官方
AWS 官方已更新 3 年前