

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

# 使用基于节点的集群时的升级注意事项
<a name="VersionManagement-upgrade-considerations"></a>

**注意**  
以下注意事项仅在升级基于节点的集群时适用。它们不适用于 ElastiCache 无服务器。

**Valkey 和 Redis OSS 注意事项**

在升级基于节点的 Valkey 或 Redis OSS 集群时，请注意以下事项。
+ 引擎版本管理的设计使您可以尽可能多地控制修补的发生方式。但是，如果系统或缓存软件中出现严重安全漏洞，则 ElastiCache 保留代表您修补集群的权利。
+ 从Valkey的7.2 ElastiCache ElastiCache 版和Redis OSS的6.0版开始， ElastiCache 将为每个次要版本提供单一版本，而不是提供多个补丁版本。
+ 从 Redis OSS 引擎版本 5.0.6 开始，您可以在最短的停机时间内升级集群版本。集群在整个升级过程中可供读取，并在大部分升级持续时间内可供写入，但在只持续几秒钟的故障转移操作期间则例外。
+ 您也可以使用 5.0.6 之前的版本升级 ElastiCache 集群。所涉及的过程相同，但在 DNS 传播期间可能会导致更长的故障转移时间（30 秒 - 1 分钟）。
+ 从 Redis OSS 7 开始， ElastiCache 支持在 Valkey 或 Redis OSS（已禁用集群模式）和 Valkey 或 Redis OSS（已启用集群模式）之间切换。
+ 亚马逊 ElastiCache Redis OSS 引擎升级流程旨在尽最大努力保留现有数据，并且需要成功复制 Redis OSS。
+ 升级引擎时， ElastiCache 将终止现有的客户端连接。为了最大限度地减少引擎升级期间的停机时间，我们建议您实施[关于 Redis OSS 客户端的最佳实践](BestPractices.Clients.redis.md)，包括错误重试和指数回退，以及关于[维护期间最大限度减少停机时间](BestPractices.MinimizeDowntime.md)的最佳实践。
+ 升级引擎时，您无法从 Valkey 或 Redis OSS（已禁用集群模式）直接升级到 Valkey 或 Redis OSS（已启用集群模式）。以下过程演示了如何从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）。

**从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）引擎版本**

  1. 备份 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [进行手动备份](backups-manual.md)。

  1. 使用备份创建具有一个分片（节点组）的 Valkey 或 Redis OSS（已启用集群模式）集群并为其制作种子。在创建集群或复制组时，指定新的引擎版本并启用集群模式。有关更多信息，请参阅 [教程：使用外部创建的备份为新的基于节点的集群制作种子](backups-seeding-redis.md)。

  1. 删除旧 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [删除中的集群 ElastiCache](Clusters.Delete.md)或 [删除复制组](Replication.DeletingRepGroup.md)。

  1. 将新的 Valkey 或 Redis OSS（已启用集群模式）集群或复制组扩展到所需的分片（节点组）数。有关更多信息，请参阅 [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)。
+ 升级主要引擎版本（例如从 5.0.6 升级到 6.0）时，还需要选择一个与新引擎版本兼容的新参数组。
+ 对于单个 Redis OSS 集群和 Multi-AZ 已禁用的集群，我们建议按中所述为 Redis OSS 提供足够的内存。[确保具有用于创建 Valkey 或 Redis OSS 快照的足够内存](BestPractices.BGSAVE.md)在这些情况下，主项在升级过程中不可用于处理服务请求。
+ 对于 Multi-AZ 已启用的 Redis OSS 集群，我们还建议您在传入写入流量较低的时段安排引擎升级。升级到 Redis OSS 5.0.6 或更高版本时，主集群在升级过程中仍可用于服务请求。

  将处理和修补带多个分片的集群和复制组，如下所示：
  + 将并行处理所有分片。在任何时候，仅在分片上执行一次升级操作。
  + 在每个分片中，亚马逊都会 ElastiCache 创建一组运行新引擎版本的新节点。新节点与现有主节点同步。同步完成后，故障转移会将新节点升级为主节点。然后，剩余的新节点与新的主节点同步，并将旧节点从集群中移除。
  + 在此过程中，集群拓扑中会出现新旧节点。连接到仍在加载数据的新副本节点的客户端可能会收到错误。为了处理这种瞬态状态，我们建议[客户端最佳实践（Valkey 和 Redis OSS）](BestPractices.Clients.redis.md)使用错误重试和指数退避来实现。
  + 在所有分片中，主故障转移是串联处理的。一次只能对一个主节点进行故障切换。
+ 如果在当前集群或复制组上启用了加密，则无法升级到不支持加密的引擎版本。

**Memcached 注意事项**

在升级基于节点的 Memcached 集群时，请注意以下事项。
+ 引擎版本管理的设计使您可以尽可能多地控制修补的发生方式。但是，如果系统或缓存软件中出现严重安全漏洞，则 ElastiCache 保留代表您修补集群的权利。
+ 由于 Memcached 引擎不支持持久化，因此 Memcached 引擎版本升级始终是一个中断性过程，将清除集群中的所有缓存数据。