我想升级我的 Amazon RDS MySQL 版本

上次更新日期:2021 年 7 月 23 日

我想升级 Amazon Relational Database Service (Amazon RDS) for MySQL 版本。我该如何执行版本升级? 此外,升级需要多长时间或者为什么升级所用的时间比预期的时间长?

解决方法

执行 Amazon RDS for MySQL 版本升级

手动升级数据库实例的引擎版本,请使用 AWS 管理控制台、AWS Command Line Interface (AWS CLI) 或 Amazon RDS API。

注意:如果您在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

Amazon RDS MySQL 升级时间

升级流程的持续时间取决于升级类型、数据和可用资源。最佳实践是首先在单独的测试实例(类似于您的生产环境)上测试升级,以了解大致的升级持续时间。您还可以使用快照还原或只读副本启动测试实例进行升级,包括主要或次要版本升级。有关主要和次要版本升级的更多信息,请参阅升级 MySQL 数据库引擎

可能影响升级时间的因素

对于 Amazon RDS for MySQL 的所有版本升级,存在以下情况:

  • 当实例仍在先前版本上运行时,将拍摄快照(如果启用了备份)。如果 Amazon RDS 找不到任何近期备份,则会在升级流程中拍摄完整快照,这可能会影响整体升级时间。变更的大小决定完成升级需要多长时间。但是,在拍摄快照时,您的实例仍可以继续接受流量。
  • 备份完成后,实例将关闭。然后,MySQL 在禁用的网络上运行新引擎版本,从而阻止任何远程连接。
    注意:如果您正在执行主要版本升级,则关闭时间可能更长。

对于 Amazon RDS for MySQL 的主要版本升级,存在以下情况:

  • Amazon RDS 通过将 innodb_fast_shutdown 参数值设置为“0”来部署缓慢关闭。此模式执行额外的刷新,例如合并变更缓冲区并对已删除的行执行完全清除。缓慢关闭可能需要几分钟或几小时,具体取决于要恢复的数据量。缓慢关闭变更缓冲区较大或历史列表长度较长的数据库可能需要更长的时间。有关缓慢关闭导致的瓶颈的更多信息,请参阅 MySQL 网站上的变更缓冲区。有关 innodb_fast_shutdown 模式的更多信息,请参阅 MySQL 网站上的 innodb_fast_shutdown
  • mysql_upgrade 程序在 MySQL 数据库上运行,以便将系统表和用户表转换为主要升级版本的新版本。根据表的状态,可能需要重新创建表以符合新版本。在大多数情况下,不需要进行任何更改,mysql_upgrade 会更新表中的元数据以指示数据库已升级。如果您有更多的表,Amazon RDS MySQL 可能需要更长的时间才能完成主要版本升级。有关更多信息,请参阅 MySQL 网站上的 mysql_upgrade — 检查和升级 MySQL 表
  • 在主要版本升级到 5.7 版期间,Amazon RDS for MySQL 会重新构建您的一些表。所有日期和时间列类型都转换为新格式,这可能需要几个小时到几天。持续时间取决于表中的数据量。有关更多信息,请参阅升级到 MySQL 5.7 版本可能会很慢