Amazon ElastiCache
用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

升级引擎版本

您可以控制为缓存群集提供支持的符合协议标准的软件是否及何时升级到 ElastiCache 所支持的新版本。此级别的控制使您能够与特定 Memcached 或 Redis 版本保持兼容、在生产中部署进行之前使用应用程序测试新版本以及根据自己的条件和时间表执行版本升级。

因为版本升级可能会涉及到某些兼容性风险,因此版本升级不会自动发生。您必须启动它们。

可以通过修改群集或复制组并指定新的引擎版本,对您的群集或复制组启动版本升级。有关更多信息,请参阅 修改 ElastiCache 群集修改具有副本的群集

重要

  • 您可以升级到较新的引擎版本,但不能降级到较早的引擎版本。要使用较早的引擎版本,必须删除现有的群集,并使用较早的引擎版本重新创建。

  • 虽然引擎版本管理功能旨在让您能够尽可能多地控制执行修补的方式,但在数据库软件存在关键安全漏洞的偶然情况下,ElastiCache 保留代您修补数据库实例的权利。

  • Redis (已启用集群模式) 不支持更改引擎版本。

  • ElastiCache 不支持在启用群集与禁用群集间切换。

有关 Memcached 引擎升级的重要说明

由于 Memcached 引擎不支持持久化,因此 Memcached 引擎版本升级始终是一个中断性过程,将清除群集中的所有缓存数据。

有关 Redis 引擎升级的重要说明

Amazon ElastiCache 引擎升级过程旨在尽最大努力保留您的现有数据,并且需要 Redis 复制成功。

重要

如果您希望将引擎从 Redis 2.x 升级到 Redis 3.x,您可以照做,但是,您无法从 Redis (已禁用集群模式)升级到 Redis (已启用集群模式)。要升级到 Redis (已启用集群模式),您必须创建一个新的 Redis (已启用集群模式) 群集。您可以使用 Redis (已禁用集群模式) 快照为该群集做种,前提是旧群集和新群集拥有相同数量的分片(API/CLI:节点组)。

  • 对于单个 Redis 群集以及禁用了多可用区的群集,建议有足够的内存可供 Redis 使用,如确保具有用于创建 Redis 快照的足够内存中所述。请注意,在这些情况下,主项在升级过程中不可用于处理服务请求。

  • 对于启用了多可用区的 Redis 群集,除上述建议之外,还建议在传入的写入流量较低期间安排引擎升级。主项在升级过程中仍然可用于处理服务请求,启动故障转移的几分钟内除外。

阻止的 Redis 引擎升级

如下表所示,如果您有待处理的纵向扩展操作,则会阻止 Redis 引擎升级操作。

待处理的操作 阻止的操作
纵向扩展 立即引擎升级
引擎升级 立即纵向扩展
纵向扩展和引擎升级 立即纵向扩展
纵向扩展和引擎升级 立即引擎升级

要解决阻止的引擎升级,请执行以下操作之一

  • 通过清除 Apply immediately 复选框(CLI 使用:--no-apply-immediately,API 使用:ApplyImmediately=false),将 Redis 引擎升级操作安排在下一维护时段内。

     

  • 等到下一维护时段(或之后)再执行 Redis 引擎升级操作。

     

  • 将 Redis 纵向扩展操作添加到此选中了 Apply Immediately 复选框 (CLI 使用:--apply-immediately,API 使用:ApplyImmediately=true) 的群集修改中。(这将立即执行引擎升级,从而有效地在下一维护时段内取消该操作。)

如何升级引擎版本

通过使用 ElastiCache 控制台、AWS CLI 或 ElastiCache API 修改群集或复制组并指定较新的引擎版本,启动群集或复制组的版本升级。有关更多信息,请参阅以下主题。

重要

请记住,对于 Redis (已启用集群模式),您无法修改群集或复制组。