升级数据库实例引擎版本
Amazon RDS 提供每个支持的数据库引擎的更高版本,因此您可以保持数据库实例最新。更新的版本可能包含对于数据库引擎的错误修复、安全增强功能和其他改进。当 Amazon RDS 支持数据库引擎的新版本时,您可以选择如何以及何时升级您的数据库实例。
有两种升级方式:主要版本升级和次要版本升级。一般而言,主引擎版本升级 可能引入与现有应用程序不兼容的更改。相比之下,次要版本升级 仅包含与现有应用程序向后兼容的更改。
对于多可用区数据库集群,只有 RDS for PostgreSQL 支持主要版本升级。支持多可用区数据库集群的所有引擎均支持次要版本升级。有关更多信息,请参阅 升级 Amazon RDS 的多可用区数据库集群的引擎版本。
版本编号序列特定于每个数据库引擎。例如,RDS for MySQL 5.7 和 8.0 是主引擎版本,从任何 5.7 版本升级到任何 8.0 版本是主要版本升级。RDS for MySQL 版本 5.7.22 和 5.7.23 是次要版本,从 5.7.22 升级到 5.7.23 是次要版本升级。
重要
升级数据库实例时无法修改该实例。升级期间,数据库实例的状态为 upgrading
。
有关特定数据库引擎的主要版本升级和次要版本升级的更多信息,请参阅适用于您的数据库引擎的以下文档:
对于主要版本升级,您必须通过 AWS Management Console、AWS CLI 或 RDS API 手动修改数据库引擎版本。对于次要版本升级,您可以手动修改引擎版本,也可以选择启用自动次要版本升级选项。
注意
数据库引擎升级需要停机。您可以使用蓝绿部署,最大限度地减少数据库实例升级所需的停机时间。有关更多信息,请参阅 使用 Amazon RDS 蓝绿部署进行数据库更新。
手动升级引擎版本
要手动升级数据库实例的引擎版本,可以使用 AWS Management Console、AWS CLI 或 RDS API。
使用控制台升级数据库实例的引擎版本
-
登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases (数据库),然后选择要升级的数据库实例。
-
选择修改。将显示修改数据库实例页面。
-
对于数据库引擎版本,选择新版本。
-
选择继续,查看修改摘要。
-
决定何时计划升级。要立即应用更改,请选择立即应用。选择此选项在某些情况下可能导致中断。有关更多信息,请参阅“使用计划修改设置”。
-
在确认页面上,检查您的更改。如果更改正确无误,请选择 Modify DB Instance(修改数据库实例)保存更改。
或者,选择 Back 编辑您的更改,或者选择 Cancel 取消更改。
要升级数据库实例的引擎版本,请使用 CLI modify-db-instance 命令。指定以下参数:
-
--db-instance-identifier
– 数据库实例的名称。 -
--engine-version
– 数据库引擎要升级到的版本号。有关有效的引擎版本的信息,请使用 AWS CLI describe-db-engine-versions 命令。
-
--allow-major-version-upgrade
– 升级主要版本。 -
--no-apply-immediately
– 在下一维护时段内应用更改。要立即应用更改,请使用--apply-immediately
。
例
对于 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --engine-versionnew_version
\ --allow-major-version-upgrade \ --no-apply-immediately
对于 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --engine-versionnew_version
^ --allow-major-version-upgrade ^ --no-apply-immediately
要升级数据库实例的引擎版本,请使用 ModifyDBInstance 操作。指定以下参数:
-
DBInstanceIdentifier
– 数据库实例的名称,例如
。mydbinstance
-
EngineVersion
– 数据库引擎要升级到的版本号。有关有效的引擎版本的信息,请使用 DescribeDBEngineVersions 操作。 -
AllowMajorVersionUpgrade
– 是否允许主版本升级。为此,请将该值设置为true
。 -
ApplyImmediately
– 是立即应用更改还是在下一个维护时段内应用更改。要立即应用更改,请将该值设置为true
。要在下一个维护时段内应用更改,请将该值设置为false
。
自动升级次要引擎版本
次要引擎版本是对主引擎版本内数据库引擎版本的更新。例如,主引擎版本可能为 9.6,其中具有次要引擎版本 9.6.11 和 9.6.12。
如果您希望 Amazon RDS 自动升级数据库的数据库引擎版本,则可以对数据库启用自动次要版本升级。
RDS for SQL Server 目前不支持自动次要版本更新。
自动次要版本升级的工作原理
当满足以下条件时,Amazon RDS 将某个次要引擎版本指定为首选的次要引擎版本:
-
数据库正运行的数据库引擎次要版本低于首选次要引擎版本。
通过查看数据库详细信息页面的配置选项卡或运行 CLI 命令
describe-db-instances
,可以找到数据库实例的当前引擎版本。 -
数据库启用了自动次要版本升级。
RDS 安排升级在维护时段中自动运行。在升级过程中,RDS 执行以下基本步骤:
-
运行预检查以确保数据库运行状况良好并已准备好进行升级
-
升级数据库引擎
-
运行升级后检查
-
将数据库升级标记为完成
自动升级会导致停机。停机时间长短取决于各种因素,包括数据库引擎类型和数据库的大小。
启用自动次要版本升级
当您执行以下任务时,您可以控制是否为数据库实例启用自动次要版本升级。
-
从 Amazon S3 导入数据库实例(适用于 Amazon S3 上的 MySQL 备份)
当您执行这些任务时,您可以通过以下方式控制是否为数据库实例启用自动次要版本升级:
-
使用控制台,设置自动次要版本升级选项。
-
使用 AWS CLI,设置
--auto-minor-version-upgrade|--no-auto-minor-version-upgrade
选项。 -
使用 RDS API,设置
AutoMinorVersionUpgrade
参数。
确定维护更新的可用性
要确定维护更新(如数据库引擎版本升级)是否可用于您的数据库实例,您可以使用控制台、AWS CLI 或 RDS API。您还可以手动升级数据库引擎实例版本并调整维护时段。有关更多信息,请参阅 维护数据库实例。
查找自动次要版本升级目标
您可以使用以下 AWS CLI 命令,以确定特定 AWS 区域中指定数据库引擎次要版本的当前自动次要升级目标版本。您可以在 CreateDBInstance 中的 Engine
参数描述中找到此命令可能的 --engine
值。
对于 Linux、macOS 或 Unix:
aws rds describe-db-engine-versions \ --engine
engine
\ --engine-versionminor-version
\ --regionregion
\ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output text
对于 Windows:
aws rds describe-db-engine-versions ^ --engine
engine
^ --engine-versionminor-version
^ --regionregion
^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output text
例如,以下 AWS CLI 命令可确定美国东部(俄亥俄)AWS 区域 (us-east-2) 中 MySQL 次要版本 8.0.11 的自动次要升级目标。
对于 Linux、macOS 或 Unix:
aws rds describe-db-engine-versions \ --engine mysql \ --engine-version 8.0.11 \ --region us-east-2 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output table
对于 Windows:
aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version 8.0.11 ^ --region us-east-2 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output table
输出类似于以下内容。
---------------------------------- | DescribeDBEngineVersions | +--------------+-----------------+ | AutoUpgrade | EngineVersion | +--------------+-----------------+ | False | 8.0.15 | | False | 8.0.16 | | False | 8.0.17 | | False | 8.0.19 | | False | 8.0.20 | | False | 8.0.21 | | True | 8.0.23 | | False | 8.0.25 | +--------------+-----------------+
在此示例中,AutoUpgrade
值对于 MySQL 版本 8.0.23 为 True
。因此,自动次要升级目标是 MySQL 版本 8.0.23,它在输出中突出显示。
重要
如果您计划在不久后将 RDS for PostgreSQL 数据库实例迁移到 Aurora PostgreSQL 数据库集群,我们强烈建议您在规划期间的早期对数据库实例禁用自动次要版本升级。如果 Aurora PostgreSQL 尚不支持 RDS for PostgreSQL 版本,迁移到 Aurora PostgreSQL 可能会延迟。有关 Aurora PostgreSQL 版本的信息,请参阅 Amazon Aurora PostgreSQL 的引擎版本。