

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 升级 Lightsail 数据库的主要版本
<a name="amazon-lightsail-upgrade-database-major-version"></a>

当 Amazon Lightsail 支持新版本的数据库引擎时，您可以将数据库升级到新版本。Lightsail 提供了两个数据库蓝图，MySQL 和 PostgreSQL。本指南介绍如何升级 MySQL 或 PostgreSQL 数据库实例的主要版本。您仅可通过使用 [https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html) API 操作来升级数据库主要版本。

我们将使用 AWS CloudShell 来执行升级。 CloudShell 是一款基于浏览器的预先认证外壳，您可以直接从 Lightsail 控制台启动它。使用 CloudShell，您可以使用首选外壳运行 AWS Command Line Interface (AWS CLI) 命令，例如 Bash PowerShell、或 Z shell。您无需下载或安装命令行工具，即可完成此操作。有关如何设置和使用的 CloudShell更多信息，请参阅 [Lightsai AWS CloudShell l 中的](amazon-lightsail-cloudshell.md)。

**了解更改**  
主要版本升级可能会引入与先前版本的许多不兼容之处。在升级期间，这些不兼容性会引起问题。为成功执行升级，可能需要准备数据库。有关升级数据库主要版本的信息，请参阅 MySQL 和 PostgreSQL 网站上的以下主题。
+ [准备安装以进行升级](https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html)
+ [MySQL 升级检查器实用程序](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html)
+ [升级 PostgreSQL 集群](https://www.postgresql.org/docs/current/upgrading.html)

## 先决条件
<a name="upgrade-database-major-version-prerequisites"></a>

1. 确认您的应用程序支持数据库的两个主要版本。

1. 建议您在进行任何更改之前创建数据库实例的快照。有关更多信息，请参阅[创建 Lightsail 数据库的快照](amazon-lightsail-creating-a-database-snapshot.md)。

1. （可选）根据刚创建的快照创建新的数据库实例。由于数据库更新需要停机时间，因此您可以在升级当前处于活动状态的数据库之前，在新数据库上测试升级情况。有关创建数据库副本的更多信息，请参阅[创建 Lightsail 数据库的快照](amazon-lightsail-creating-a-database-snapshot.md)。

## 更新数据库主要版本
<a name="upgrade-database-major-version-update-procedure"></a>

Lightsail 支持 MySQL 和 PostgreSQL 数据库实例的主要版本升级。以下过程以 MySQL 数据库为例。但是，PostgreSQL 数据库的过程和命令是相同的。

完成以下过程以升级 Lightsail 数据库的数据库主版本。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

1. 在左侧导航窗格中，选择**数据库**。

1. 记下要升级 AWS 区域 的数据库实例的名称和名称。  
![\[Lightsail 控制台中新数据库实例的名称和区域。\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/mysql80-upgrade-dbname-endpoint.png)

1. 在 Lightsail 控制台的左下角，选择。**CloudShell** CloudShell 终端将在同一个浏览器选项卡中打开。当系统显示命令提示符时，表示 shell 已经准备就绪，可以进行交互。

1. 在 CloudShell 提示符下输入以下命令以获取可用数据库蓝图 IDs 的列表。

   ```
   aws lightsail get-relational-database-blueprints
   ```

1. 记下您要升级的主要版本的蓝图 ID。例如 `mysql_8_0`。  
![\[CloudShell 窗口中 get-relational-database-blueprints命令的响应。\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/mysql80-upgrade-get-blueprints.png)

1. 输入以下命令以升级数据库的主要版本。升级将在数据库的下一个维护时段内进行。在命令中，*DatabaseName*替换为数据库的名称、*blueprintId*要升级到的主要版本的蓝图 ID 以及数据库所在版本*DatabaseRegion* AWS 区域 的蓝图 ID。

   ```
   aws lightsail update-relational-database \
    --relational-database-name DatabaseName \
    --relational-database-blueprint-id blueprintId \
    --region DatabaseRegion
   ```

   （可选）要立即应用升级，请在命令中包含 `--apply-immediately` 参数。您将看到与以下示例类似的响应，并且在应用升级时数据库将不可用。有关更多信息，请参阅 Lightsail API 参考[https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html)中的。  
![\[在窗口中执行 update-relational-database--apply-immedlity 命令的成功结果。 CloudShell\]](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/mysql80-upgrade-successful.png)

1. 输入以下命令以验证是否已计划在下一个数据库维护时段进行主要版本升级。在命令中，*DatabaseName*替换为数据库的*DatabaseRegion*名称和数据库所在 AWS 区域 的名称。

   ```
   aws lightsail get-relational-database \
    --relational-database-name DatabaseName \
    --region DatabaseRegion
   ```

   在 `get-relational-database` 响应中，数据库 [https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html#Lightsail-Type-RelationalDatabase-state](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html#Lightsail-Type-RelationalDatabase-state) 会在下一个维护时段通知您即将进行主要版本升级。您可以在响应的 [https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html#Lightsail-Type-RelationalDatabase-preferredMaintenanceWindow](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_UpdateRelationalDatabase.html#Lightsail-Type-RelationalDatabase-preferredMaintenanceWindow) 部分中找到下一个维护时段的日期和时间。

   **数据库实例状态**

   ```
   "state": "upgrading",
     "backupRetentionEnabled": true, 
     "pendingModifiedValues": {
     "engineVersion": "8.0.36"
   ```

   **维护窗口**

   ```
   "preferredMaintenanceWindow": "wed: 09:22-wed: 09:52"
   ```

## 后续步骤
<a name="upgrade-database-major-version-next-steps"></a>

如果您创建测试数据库，则可以在确认应用程序可以与升级数据库结合使用后将其删除。保留您为先前数据库创建的快照，以备不时之需。您还应该为升级后的数据库创建快照，以便拥有该数据库的新 point-in-time副本。