开始迁移 - ElastiCache 适用于 Redis 的 Amazon
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

开始迁移

在满足所有先决条件后,您可以使用 Amazon Web Services Management Console、ElastiCache API 或 Amazon CLI 开始迁移数据。如果启用集群模式,当插槽迁移有所不同时,将在实时迁移之前执行重新分片。下面显示了使用 CLI 的示例。

注意

我们建议使用 TestMigration API 来验证迁移设置。但这完全是可选的。

可以使用以下参数调用 start-migration 命令以开始进行迁移:

  • --replication-group-id – 目标 ElastiCache 复制组的标识符

  • --customer-node-endpoint-list – 具有 DNS 或 IP 地址以及运行源 Redis 集群的端口的端点列表。对于禁用集群模式和启用集群模式,列表只能使用一个元素。如果启用了链式复制,则端点可能指向副本,而不是 Redis 集群中的主节点。

以下是一个使用 CLI 的示例。

aws elasticache start-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"

当您运行此命令时,ElastiCache 主节点(在每个分片中)会将自己配置成为您的 Redis 实例的副本(在启用集群的 redis 中拥有相同插槽的相应分片中)。ElastiCache 集群的状态将变为正在迁移,并开始将数据从 Redis 实例迁移到 ElastiCache 主节点。根据 Redis 实例上的数据大小和负载,迁移可能需要一段时间才能完成。您可以在 Redis 实例和 ElastiCache 主节点上运行 redis-cli INFO 命令来检查迁移进程。

在成功复制后,写入到 Redis 实例的所有数据都将传播到 ElastiCache 集群。您可以使用 ElastiCache 节点执行读取操作。不过,您无法写入到 ElastiCache 集群。如果 ElastiCache 主节点连接了其他副本节点,这些副本节点将继续从 ElastiCache 主节点中进行复制。这样,Redis 集群中的所有数据将复制到 ElastiCache 集群中的所有节点。

如果 ElastiCache 主节点无法成为 Redis 实例的副本,则它会重试几次,然后最终将自身重新提升回为主节点。ElastiCache 集群的状态将变为 available(可用),并发送有关启动迁移失败的复制组事件。要解决此类故障,请检查以下内容:

  • 查看复制组事件。使用事件中的任何特定信息修复迁移失败。

  • 如果事件未提供任何特定信息,请确保您遵循准备源和目标 Redis 节点以进行迁移中的准则。

  • 确保 VPC 和子网的路由配置允许 ElastiCache 节点和 Redis 实例之间的流量。

  • 确保附加到 Redis 实例的安全组允许来自 ElastiCache 节点的入站流量。

  • 检查 Redis 实例的 Redis 日志,以获取有关特定于复制的失败的更多信息。