Amazon ElastiCache
用户指南 (API Version 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 (已启用集群模式),您无法修改集群或复制组。