升级 MariaDB 数据库引擎
如果 Amazon RDS 支持数据库引擎的新版本,您可以将您的数据库实例升级到新版本。MariaDB 数据库实例具有两种升级:主要版本升级和次要版本升级。
主要版本升级会包含不与现有应用程序向后兼容的数据库更改。因此,您必须手动为数据库实例执行主要版本升级。您可以通过修改数据库实例来启动主要版本升级。但是,执行主要版本升级之前,我们建议您按照MariaDB 的主要版本升级中的说明操作。
相比之下,次要版本升级仅包括与现有应用程序向后兼容的更改。您可以通过修改数据库实例来手动启动次要版本升级。您也可以在创建或修改数据库实例时启用自动次要版本升级选项。这样做意味着数据库实例在 Amazon RDS 测试并批准新版本后会自动升级。有关执行升级的信息,请参阅 升级数据库实例引擎版本。
如果 MariaDB 数据库实例正在使用只读副本,则必须在升级源实例之前升级所有只读副本。如果数据库实例在多可用区部署中,则同时升级写入器和备用副本。在升级完成之前,数据库实例可能无法使用。
有关 MariaDB 支持的版本以及版本管理的更多信息,请参阅 Amazon RDS 上的 MariaDB 版本。
数据库引擎升级需要停机。停机持续时间因数据库实例的大小而异。
升级概述
使用 Amazon Web Services Management Console 升级数据库实例时,它会显示数据库实例的有效升级目标。您还可以使用以下 Amazon CLI 命令来标识数据库实例的有效升级目标:
对于 Linux、macOS 或 Unix:
aws rds describe-db-engine-versions \ --engine mariadb \ --engine-versionversion-number\ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
对于 Windows:
aws rds describe-db-engine-versions ^ --engine mariadb ^ --engine-versionversion-number^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
例如,要标识 MariaDB 版本 10.3.13 数据库实例的有效升级目标,请运行以下 Amazon CLI 命令:
对于 Linux、macOS 或 Unix:
aws rds describe-db-engine-versions \ --engine mariadb \ --engine-version 10.3.13 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
对于 Windows:
aws rds describe-db-engine-versions ^ --engine mariadb ^ --engine-version 10.3.13 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
在升级流程期间,Amazon RDS 会创建两个数据库快照。第一个数据库快照是数据库实例在进行任何升级更改前的。如果无法完成数据库的升级,那么,就可以恢复此快照,创建一个运行旧版本的数据库实例。第二个数据库快照是在升级完成时创建的。
如果您将数据库实例的备份保留期设置为大于 0 的数字,则 Amazon RDS 只需创建数据库快照。要更改您的备份保留期,请参阅 修改 Amazon RDS 数据库实例。
升级完成后,您无法恢复为数据库引擎的以前版本。如果要返回以前版本,则还原创建的第一个数据库快照以新建数据库实例。
您可以控制何时将数据库实例升级到 Amazon RDS 支持的新版本。此级别的控制可帮助您保留与特定数据库版本的兼容性,并在生产中部署前使用应用程序测试新版本。在您准备好后,可在与时间表最搭配的时间执行版本升级。
如果数据库实例使用只读副本,则必须先升级所有只读副本,然后再升级源实例。
如果数据库实例在多可用区部署中,则同时升级主数据库实例和备用数据库实例。主副本和备用数据库实例将同时升级,而您会遇到中断,直到升级完成。中断时间因数据库引擎、引擎版本和数据库实例大小而异。
MariaDB 的主要版本升级
主要版本升级会包含不与现有应用程序向后兼容的数据库更改。因此,Amazon RDS 不会自动应用主要版本升级。您必须手动修改数据库实例。建议您在将任何升级应用于生产实例前全面测试这些升级。
Amazon RDS 支持 MariaDB 数据库引擎的以下主要版本就地升级:
任何 MariaDB 版本到 MariaDB 10.6
MariaDB 10.4 到 MariaDB 10.5
MariaDB 10.3 到 MariaDB 10.4
MariaDB 10.2 到 MariaDB 10.3
要执行到 MariaDB 版本 10.6 的主要版本升级,您可以直接从任何 MariaDB 版本升级到版本 10.6。
要执行到低于 MariaDB 版本 10.6 的主要版本升级,请按顺序升级到每个主要版本。例如,要从版本 10.2 升级到版本 10.5,请按以下顺序升级:10.2 到 10.3、10.3 到 10.4,然后 10.4 到 10.5。
如果使用的是自定义参数组并且要执行主要版本升级,则必须为新的数据库引擎版本指定默认参数组,或者为其创建自定义参数组。在完成升级后,将新的参数组与数据库实例关联需要重新启动客户启动的数据库。如果需要重新启动该实例来应用参数组更改,则该实例的参数组状态将显示 pending-reboot。可在 Amazon 控制台中查看实例的参数组状态,或者用“describe”调用查看,例如 describe-db-instances。
升级 MariaDB 数据库实例
有关手动或自动升级 MariaDB 数据库实例的信息,请参阅升级数据库实例引擎版本。
MariaDB 的自动次要版本升级
如果在创建或修改数据库实例时指定以下设置,则可以让数据库实例自动升级。
-
自动次要版本升级设置已启用。
-
备份保留期设置需大于 0。
在 Amazon Web Services Management Console 中,这些设置位于 Additional configuration(其他配置)下。下图显示了 Auto minor version upgrade(自动次要版本升级)设置。
有关这些设置的更多信息,请参阅数据库实例的设置。
对于某些 Amazon 区域中的某些 RDS for MariaDB 主要版本,RDS 将一个次要版本指定为自动升级版本。在 Amazon RDS 测试并批准次要版本后,将在维护时段内自动进行次要版本升级。RDS 不会自动将发布的较新次要版本设置为自动升级版本。在 RDS 指定较新的自动升级版本之前,将会考虑一些条件,例如:
-
已知的安全问题
-
MariaDB 社群版本中的错误
-
发布次要版本后的整体队列稳定性
您可以使用以下 Amazon CLI 命令确定特定 Amazon 区域中指定 MariaDB 次要版本的当前自动次要升级目标版本。
对于 Linux、macOS 或 Unix:
aws rds describe-db-engine-versions \ --engine mariadb \ --engine-versionminor-version\ --regionregion\ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output text
对于 Windows:
aws rds describe-db-engine-versions ^ --engine mariadb ^ --engine-versionminor-version^ --regionregion^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output text
例如,以下 Amazon CLI 命令确定美国东部(俄亥俄)Amazon 区域 (us-east-2) 中 MariaDB 次要版本 10.3.8 的自动次要升级目标。
对于 Linux、macOS 或 Unix:
aws rds describe-db-engine-versions \ --engine mariadb \ --engine-version 10.3.8 \ --region us-east-2 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output table
对于 Windows:
aws rds describe-db-engine-versions ^ --engine mariadb ^ --engine-version 10.3.8 ^ --region us-east-2 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output table
输出类似于以下内容。
---------------------------------- | DescribeDBEngineVersions | +--------------+-----------------+ | AutoUpgrade | EngineVersion | +--------------+-----------------+ | False | 10.3.20 | | True | 10.3.23 | | False | 10.3.28 | | False | 10.3.31 | | False | 10.4.13 | | False | 10.4.18 | | False | 10.4.21 | +--------------+-----------------+
在此示例中,AutoUpgrade 值对于 MariaDB 版本 10.3.23 为 True。因此,自动次要升级目标是 MariaDB 版本 10.3.23,它在输出中突出显示。
如果满足以下条件,则会在维护时段内自动升级 MariaDB 数据库实例:
-
自动次要版本升级设置已启用。
-
备份保留期设置需大于 0。
-
数据库实例运行的次要数据库引擎版本低于当前的自动升级次要版本。
有关更多信息,请参阅“自动升级次要引擎版本”。