升级 RDS for MySQL 数据库引擎 - Amazon Relational Database Service

升级 RDS for MySQL 数据库引擎

如果 Amazon RDS 支持数据库引擎的新版本,您可以将您的数据库实例升级到新版本。MySQL 数据库有两种升级方式:主要版本升级和次要版本升级。

主要版本升级。

主要版本升级会包含不与现有应用程序向后兼容的数据库更改。因此,您必须手动为数据库实例执行主要版本升级。您可以通过修改数据库实例来启动主要版本升级。在执行主要版本升级之前,建议您按照RDS for MySQL 的主要版本升级中的说明操作。

对于多可用区数据库实例部署的主要版本升级,Amazon RDS 会同时升级主要副本和备用副本。在升级完成之前,数据库实例将不可用。对于多可用区数据库集群部署的主要版本升级,Amazon RDS 一次升级一个集群成员实例。

提示

您可以使用蓝绿部署,最大限度地减少主要版本升级所需的停机时间。有关更多信息,请参阅 使用 Amazon RDS 蓝绿部署进行数据库更新

次要版本升级

次要版本升级 仅包含与现有应用程序向后兼容的更改。您可以通过修改数据库实例来手动启动次要版本升级。您也可以在创建或修改数据库实例时启用自动次要版本升级选项。这样做意味着 Amazon RDS 会在测试并批准新版本后自动升级您的数据库实例。有关执行升级的信息,请参阅 升级数据库实例 引擎版本

当您对多可用区数据库集群执行次要版本升级时,Amazon RDS 将一次升级一个读取器数据库实例。然后,其中一个读取器数据库实例将切换为新的写入器数据库实例。然后,Amazon RDS 升级旧的写入器实例(现在是读取器实例)。

注意

多可用区数据库实例部署的次要版本升级的停机时间可能会持续几分钟。多可用区数据库集群通常可将次要版本升级的停机时间缩短至大约 35 秒。与 RDS 代理一起使用时,您可以将停机时间进一步缩短到一秒或更短。有关更多信息,请参阅 Amazon RDS 代理。或者,您可以使用开源数据库代理,例如 ProxySQLPgBouncerAWS Advanced JDBC Wrapper Driver

Amazon RDS 还支持升级推出策略,以管理跨多个数据库资源和 AWS 账户的自动次要版本升级。有关更多信息,请参阅 使用 AWS Organizations 升级推出策略自动升级次要版本

如果 MySQL 数据库实例使用只读副本,则必须在升级源实例之前升级所有只读副本。

MySQL 升级的注意事项

在升级流程期间,Amazon RDS 会创建两个或更多数据库快照。在进行任何升级更改之前,Amazon RDS 最多会拍摄两个数据库实例快照。如果无法完成数据库的升级,那么,就可以还原这些快照之一,来创建一个运行旧版本的数据库实例。升级完成后,Amazon RDS 会为数据库实例拍摄另一个快照。无论 AWS Backup 是否管理数据库实例的备份,Amazon RDS 都会拍摄这些快照。

注意

如果您将数据库实例的备份保留期设置为大于 0 的数字,则 Amazon RDS 只需创建数据库快照。要更改您的备份保留期,请参阅 修改 Amazon RDS 数据库实例

升级完成后,您无法恢复为数据库引擎的以前版本。如果要返回以前版本,则还原创建的第一个数据库快照以新建数据库实例。

您可以控制何时将数据库实例升级到 Amazon RDS 支持的新版本。此级别的控制可帮助您保留与特定数据库版本的兼容性,并在生产中部署前使用应用程序测试新版本。在您准备好后,可在与时间表最搭配的时间执行版本升级。

如果数据库实例使用只读复制,则必须在升级源实例之前升级所有只读副本。

查找有效的升级目标

使用 AWS 管理控制台 升级数据库实例时,它会显示数据库实例的有效升级目标。您还可以运行以下 AWS CLI 命令来标识数据库实例的有效升级目标:

对于 Linux、macOS 或 Unix:

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version version_number \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

对于:Windows

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version version_number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

例如,要标识 MySQL 版本 8.0.28 数据库实例的有效升级目标,请运行以下 AWS CLI 命令:

对于 Linux、macOS 或 Unix:

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version 8.0.28 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

对于:Windows

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version 8.0.28 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

升级 MySQL 数据库实例

有关手动或自动升级 MySQL 数据库实例的信息,请参阅升级数据库实例 引擎版本