

# Amazon Aurora 版本控制
<a name="Aurora.VersionPolicy.Versioning"></a>

Amazon Aurora 版本不同于它们所兼容的上游社群数据库。为了帮助您维护应用程序兼容性并利用最新的数据库引擎功能，以下各节介绍了 Aurora 版本控制约定以及 Aurora 版本如何映射到其各自的社群数据库。

有关 Amazon Aurora 上可用的关系数据库的列表，请参阅 [Amazon Aurora 数据库集群支持的数据库引擎](Aurora.VersionPolicy.md#Aurora.VersionPolicy.SupportedEngines)。

## 社群数据库和 Aurora 之间的版本号差异
<a name="Aurora.VersionPolicy.VersionNumberMapping"></a>

每个 Amazon Aurora 版本都与其相应社群数据库的某个特定版本兼容。您可以使用 `version` 函数查找您的数据库的社群版本，使用 `aurora_version` 函数查找 Aurora 版本。

以下示例演示了如何查找 Aurora MySQL 和 Aurora PostgreSQL 数据库的社群版本。

------
#### [ Aurora MySQL ]

`version` 函数返回 Aurora MySQL 数据库的社群版本。

```
mysql> select version();
```

输出示例：

```
+------------------+
|   version()      |
+------------------+
|  8.0.32          | 
+------------------+
```

`aurora_version` 函数返回 Aurora 版本：

```
mysql> select aurora_version(), @@aurora_version;
```

输出示例：

```
+------------------+------------------+
| aurora_version() | @@aurora_version |
+------------------+------------------+
| 3.05.2           | 3.05.2           |
+------------------+------------------+
```

------
#### [ Aurora PostgreSQL ]

`version` 函数返回 Aurora PostgreSQL 数据库的社群版本。

```
postgres=> select version();
```

输出示例：

```
-----------------------------------------------------------------------------
PostgreSQL 11.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.9.3, 64-bit
(1 row)
```

`aurora_version` 函数返回 Aurora 版本：

```
postgres=> select aurora_version();
```

输出示例：

```
aurora_version
----------------
3.2.2
```

------

有关更多信息，请参阅[使用 SQL 检查 Aurora MySQL 版本](AuroraMySQL.Updates.Versions.md#AuroraMySQL.Updates.DBVersions)和[确定 Amazon Aurora PostgreSQL 版本](AuroraPostgreSQL.Updates.md#AuroraPostgreSQL.Updates.Versions)。

## Amazon Aurora 默认版本
<a name="Aurora.VersionPolicy.DefaultVersions"></a>

默认版本是 Aurora 在您未手动指定目标引擎版本时自动选择的用于创建或升级数据库的版本。例如，以下命令显示了 Aurora PostgreSQL 的默认引擎版本（包括示例输出）。

```
aws rds describe-db-engine-versions \
    --engine aurora-postgresql \
    --default-only \
    --query 'DBEngineVersions[0].EngineVersion' \
    --output text

16.4
```

每个主要版本都有相应的默认次要版本。因此，对于 Aurora PostgreSQL 16，默认次要版本是 16.*n*，当 Aurora 发布新的默认次要版本时，版本号 *n* 会发生变化。通常，Aurora 每年会为每个主要版本发布两个默认次要版本。以下 bash Shell 脚本显示了一组 Aurora PostgreSQL 主要版本的默认次要版本（包括示例输出）。

```
for major in 16 15 14 13 12 11; do   
  echo -n "Default for Aurora PostgreSQL major version $major: "
  aws rds describe-db-engine-versions \
    --engine aurora-postgresql \                 
    --engine-version "$major" \
    --default-only \
    --query 'DBEngineVersions[0].EngineVersion' \
    --output text
done

Default for Aurora PostgreSQL major version 16: 16.4
Default for Aurora PostgreSQL major version 15: 15.8
Default for Aurora PostgreSQL major version 14: 14.13
Default for Aurora PostgreSQL major version 13: 13.16
Default for Aurora PostgreSQL major version 12: 12.20
Default for Aurora PostgreSQL major version 11: 11.21
```

如果您为 Aurora 数据库集群启用自动次要版本升级，Aurora 会为给定的主要版本使用默认次要版本或较新的次要版本。例如，如果 Aurora PostgreSQL 15 的默认次要版本为 15.8，并且较新的版本 15.10 也可用，那么 Aurora 可以自动升级到 15.8 或 15.10。

## Amazon Aurora 主要版本
<a name="Aurora.VersionPolicy.MajorVersions"></a>

Aurora 版本使用 `major.minor.patch` 方案。*Aurora 主要版本*是指 Aurora 兼容的社群版 MySQL 或 PostgreSQL 的主要版本。在标准支持下，Aurora MySQL 和 Aurora PostgreSQL 主要版本至少会在相应社群版本的社区生命周期终止前保持可用状态。您可以继续运行过了 Aurora 标准支持结束日期的主要版本，但需要付费。有关更多信息，请参阅[Amazon Aurora 的 Amazon RDS 扩展支持](extended-support.md)和 [Amazon Aurora 定价](https://www.amazonaws.cn/rds/aurora/pricing/)。

有关 Aurora MySQL 和 Aurora PostgreSQL 主要版本和发布日历的更多信息，请参阅相应发行说明中的下列页面：
+ [Aurora MySQL 主要版本的发布日历](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html#AuroraMySQL.release-calendars.major)
+ [Aurora PostgreSQL 主要版本的发布日历](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/aurorapostgresql-release-calendar.html#aurorapostgresql.major.versions.supported)

您还可以运行 [describe-db-major-engine-versions](https://docs.amazonaws.cn/cli/latest/reference/rds/describe-db-major-engine-versions.html) Amazon CLI 命令或者使用 [DescribeDBMajorEngineVersions](https://docs.amazonaws.cn/AmazonRDS/latest/APIReference/API_DescribeDBMajorEngineVersions.html) RDS API 操作，来查看有关主要引擎版本的支持日期的信息。

**注意**  
Amazon RDS 对 Aurora MySQL 版本 2 的扩展支持将于 2024 年 11 月 1 日开始，但要等到 2024 年 12 月 1 日才会向您收费。在 2024 年 11 月 1 日至 11 月 30 日期间，所有 Aurora MySQL 版本 2 的数据库集群都包含在 Amazon RDS 扩展支持中。有关更多信息，请参阅 [选定 Aurora 版本的 Amazon RDS 扩展支持](Aurora.VersionPolicy.Support.md#Aurora.VersionPolicy.ES)。

### Amazon Aurora 主要版本可用时间
<a name="Aurora.VersionPolicy.MajorVersionLifetime"></a>

Amazon Aurora 主要版本至少会在相应社群版本的社群终止使用前保持可用状态。您可以使用 Aurora 标准支持终止日期来计划您的测试和升级周期。这些日期表示可能需要升级到较新版本的最早日期。有关日期的更多信息，请参阅[Amazon Aurora 主要版本](#Aurora.VersionPolicy.MajorVersions)。

在 Aurora 要求您升级到较新的主要版本并协助您进行规划之前，您至少会提前 12 个月收到提醒。提醒提供以下有关升级过程的信息。
+ 某些里程碑的时机
+ 对数据库集群的影响
+ 建议的操作

我们建议您在将集群升级到新的主要版本之前，使用新的数据库版本彻底测试您的应用程序。

在主要版本到达 Aurora 标准支持终止日期后，任何仍在运行较早版本的数据库集群都会在计划的维护时段内自动升级到扩展支持版本。可能收取 Extended Support 费用。有关 Amazon RDS 扩展支持的更多信息，请参阅[使用 Amazon RDS 扩展支持](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/extended-support.html)。

## Amazon Aurora 次要版本
<a name="Aurora.VersionPolicy.MinorVersions"></a>

Aurora 版本使用 `major.minor.patch` 方案。*Aurora 次要版本*包含了由社群提供的增量更新，以及特定于 Aurora 的服务改进，例如新功能和修复。

有关 Aurora MySQL 和 Aurora PostgreSQL 次要版本和发布日历的更多信息，请参阅相应发行说明中的下列页面：
+ [Aurora MySQL 次要版本的发布日历](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html#AuroraMySQL.release-calendars.minor)
+ [Aurora PostgreSQL 次要版本的发布日历](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/aurorapostgresql-release-calendar.html#aurorapostgresql.minor.versions.supported)

以下各节详细介绍了您可以预计的 Aurora 次要版本的节奏和生命周期。

**Topics**
+ [Amazon Aurora 次要版本发布频率](#Aurora.VersionPolicy.MinorVersionCadence)
+ [Amazon Aurora 次要版本可用时间](#Aurora.VersionPolicy.MinorVersionLifetime)

### Amazon Aurora 次要版本发布频率
<a name="Aurora.VersionPolicy.MinorVersionCadence"></a>

一般来说，Amazon Aurora 次要版本每季度发布一次。发布时间可能会有所变化，以加入额外功能或修复。

### Amazon Aurora 次要版本可用时间
<a name="Aurora.VersionPolicy.MinorVersionLifetime"></a>

通常，Amazon Aurora 会为特定主要版本的每个次要版本提供至少 12 个月的可用期。可用期结束后，Aurora 可能会自动将数据库升级到默认次要版本或更高版本。对于正在运行较早次要版本的任何数据库集群，Aurora 会在计划的维护时段内开始升级。

在某些情况下，Aurora 可能会早于通常的 12 个月期限替换特定主要版本的次要版本。原因可能包括关键的安全问题或主要版本的支持终止日期。

在开始对生命周期即将结束的次要版本进行自动升级之前，Aurora 通常会提前三个月发出提醒。Aurora 详细介绍了以下有关升级过程的信息。
+ 某些里程碑的时机
+ 对数据库集群的影响
+ 建议的操作

告知时间少于三个月的通知描述了需要更快采取行动的严重问题，如安全问题。

如果启用了**自动次要版本升级**设置，您将收到提醒，但不会收到 RDS 事件通知。Aurora 会在强制升级截止日期过后的维护时段内升级您的数据库。

如果未启用**自动次要版本升级**设置，则您会收到提醒以及类别为 `maintenance`、ID 为 `RDS-EVENT-0156` 的 Amazon RDS 数据库集群事件。Aurora 将在下一个维护时段内升级您的数据库。

请注意，在次要版本达到 Aurora 标准支持终止日期后，将不再发布该次要版本的补丁版本。要获得严重错误修复或 CVE，您必须升级到具有标准支持的次要版本。

有关自动次要版本升级的更多信息，请参阅 [Aurora 数据库集群的自动次要版本升级](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU)。

## Amazon Aurora 补丁版本
<a name="Aurora.VersionPolicy.PatchVersions"></a>

Aurora 版本使用 `major.minor.patch` 方案。Aurora 补丁版本包括在次要版本初始发布（例如 Aurora MySQL 3.04.0、3.04.1、...3.04.3）后添加到其中的重要修复。虽然每个新次要版本都会为 Aurora 提供新功能，但特定次要版本中的新补丁版本主要用于解决重要问题。

有关补丁的更多信息，请参阅[维护Amazon Aurora 数据库集群](USER_UpgradeDBInstance.Maintenance.md)。