

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

# 管理 Neptune 数据库集群的引擎更新
<a name="engine-maintenance-management"></a>

**注意**  
更新将同时应用于数据库集群中的所有实例。更新操作需要在这些实例上重启数据库，因此，会出现从 20 或 30 秒到几分钟的停机，之后您可以继续使用数据库集群。在极少数情况下，可能需要多可用区失效转移才能完成实例的维护更新。  
对于可能需要更长时间才能应用的主要版本升级，您可以使用[蓝绿部署策略](neptune-BG-deployments.md)，最大限度地减少停机时间。

## 确定您当前使用的引擎版本
<a name="check-current-engine-version"></a>

您可以使用 AWS CLI [`get-engine-status`](access-graph-status.md)命令来检查您的数据库集群当前使用的引擎发行版本：

```
aws neptunedata get-engine-status
```

[JSON 输出](access-graph-status.md#access-graph-status-sample-output)包含 `"dbEngineVersion"` 字段，如下所示：

```
  "dbEngineVersion": "1.3.0.0",
```

## 查看哪些更新有待处理且可用
<a name="check-pending-updates"></a>

您可以使用 Neptune 控制台检查数据库集群的待处理更新。在左列中选择**数据库**，然后在数据库窗格中选择您的数据库集群。待处理的更新列在**维护**列中。如果您依次选择**操作**和**维护**，则有三种操作选择：
+ 立即升级。
+ 在下一个时段升级。
+ 推迟升级。

您可以使用以下方式列出待处理的 AWS CLI 引擎更新：

```
aws neptune describe-pending-maintenance-actions \
  --resource-identifier (ARN of your DB cluster)
  --region (your region) \
  --engine neptune
```

您也可以按 AWS CLI 如下方式列出可用的引擎更新：

```
aws neptune describe-db-engine-versions \
  --region (your region) \
  --engine neptune
```

可用的引擎版本列表仅包括版本号高于当前版本且已定义升级路径的那些版本。

## 升级前始终先测试
<a name="always-test-before-upgrading"></a>

发布新的主要或次要 Neptune 引擎版本时，请务必先在该版本上测试您的 Neptune 应用程序，然后再升级到该版本。次要版本升级可能引入会影响代码的新特征或行为，即使没有任何重大更改也如此。

首先，将当前版本的发行说明页面与目标版本的发行说明页面进行比较，以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是使用 [Neptune 蓝绿部署解决方案](neptune-BG-deployments.md)。这样，您就可以在新版本上运行应用程序和查询，而不会影响您的生产数据库集群。

## 请在升级之前始终创建手动快照
<a name="engine-version-snapshot-before-upgrading"></a>

在执行升级之前，我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护，而手动快照在您显式删除它之前仍然可用。

在某些情况下，作为升级过程的一部分，Neptune 会为您创建手动快照，但您不应依赖此快照，无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时，可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照，则其名称将以 `preupgrade` 开头，后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

## Neptune 维护时段
<a name="manage-console-maintaining-window"></a>

每周维护时段为 30 分钟，在此期间将应用定期引擎更新和其他系统更改。大部分维护事件将在 30 分钟的维护时段内完成，但较大的维护事件有时可能需要更长时间才能完成。

每个数据库集群都有每周 30 分钟的维护时段。如果在创建数据库集群时未为其指定首选时段，则 Neptune 随机选择一周中的某一天，然后从这一天 8 小时的时间块中随机分配 30 分钟的时段（随区域的不同而变化）。

例如，以下是多个 AWS 区域使用的维护时段的 8 小时时间块：


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/neptune/latest/userguide/engine-maintenance-management.html)

维护时段决定待处理操作何时开始，大多数维护操作都是在该时段内完成的，但是较大的维护任务可以在该时段结束之后继续进行。

### 移动数据库集群维护时段
<a name="manage-console-maintaining-adjusting-window"></a>

理想情况下，您的维护时段应在集群使用率最低的时候。如果您的当前时段不在这时候，则您可以将其移到更好的时间，如下所示：

**更改数据库集群维护时段**

1. [登录 AWS 管理控制台，然后在家中打开 Amazon Neptune https://console.aws.amazon.com/neptune/ 主机。](https://console.aws.amazon.com/neptune/home)

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

1. 选择要更改维护时段的数据库集群。

1. 选择**修改**。

1. 在**修改集群**页面底部选择**显示更多**。

1. 在**首选维护时段**部分，根据需要设置维护时段的日期、时间和持续时间。

1. 选择**下一步**。

   在确认页面上，检查您的更改。

1. 要立即应用对维护时段的更改，请选择**立即应用**。

1.  选择**提交**以应用更改。

   要编辑您的更改，请选择**以前**，要取消更改，请选择**取消**。

## AutoMinorVersionUpgrade 用于控制次要版本的自动更新
<a name="using-amvu"></a>

**重要**  
`AutoMinorVersionUpgrade` 仅对[引擎版本 1.3.0.0](engine-releases-1.3.0.0.md) 以上的次要版本升级有效。

如果您在数据库集群的写入器（主）实例中将 `AutoMinorVersionUpgrade` 字段设置为 `true`，则次要版本更新将在数据库集群中的所有实例发布后的下一个维护时段内自动应用于这些实例。

如果您在数据库集群的写入器实例中将 `AutoMinorVersionUpgrade` 字段设置为 `false`，则只有在您[明确安装](engine-updates-manually.md#engine-minor-updates-using-console)时才会应用这些更新。

**注意**  
无论 `AutoMinorVersionUpgrade` 参数的设置方式如何，补丁版本（`*.*.*.1`、`*.*.*.2` 等）总是在下一个维护时段内自动安装。

您可以按 AWS 管理控制台 如下方式`AutoMinorVersionUpgrade`进行设置：

**使用 Neptune 控制台设置 `AutoMinorVersionUpgrade`**

1. [登录 AWS 管理控制台，然后在家中打开 Amazon Neptune https://console.aws.amazon.com/neptune/ 主机。](https://console.aws.amazon.com/neptune/home)

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

1. 选择要为其设置 `AutoMinorVersionUpgrade` 的数据库集群的主（写入器）实例。

1. 选择 **Modify**(修改)。

1. 在**修改集群**页面底部选择**显示更多**。

1. 在展开页面的底部，选择**开启自动次要版本升级**或**关闭自动次要版本升级**。

1. 选择**下一步**。

   在确认页面上，检查您的更改。

1. 要应用对自动次要版本升级的更改，请选择**立即应用**。

1.  选择**提交**以应用更改。

   要编辑您的更改，请选择**以前**，要取消更改，请选择**取消**。

您也可以使用 AWS CLI 来设置字`AutoMinorVersionUpgrade`段。例如，要将其设置为 `true`，您可以使用如下命令：

```
1. aws neptune modify-db-instance \
2.   --db-instance-identifier (the ID of your cluster's writer instance) \
3.   --auto-minor-version-upgrade \
4.   --apply-immediately
```

同样，要将其设置为 `false`，可使用如下命令：

```
1. aws neptune modify-db-instance \
2.   --db-instance-identifier (the ID of your cluster's writer instance) \
3.   --no-auto-minor-version-upgrade \
4.   --apply-immediately
```