本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始迁移
完成所有先决条件后,您可以使用 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 OSS 集群运行的端口。对于禁用集群模式和启用集群模式,列表只能使用一个元素。如果您启用了链式复制,则终端节点可以指向副本而不是您的 Redis OSS 集群中的主节点。
以下是一个使用 CLI 的示例。
aws elasticache start-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"
运行此命令时, ElastiCache 主节点(在每个分片中)会将自己配置为您的 Redis OSS 实例的副本(在相应的分片中,在启用集群的 redis 中拥有相同的插槽)。 ElastiCache 集群状态变为迁移,数据开始从 Redis OSS 实例迁移到 ElastiCache 主节点。根据您的 Redis OSS 实例上的数据大小和负载,迁移可能需要一段时间才能完成。您可以通过在您的 Redis OSS 实例和主节点上运行 redis-cli INFO
成功复制后,对您的 Redis OSS 实例的所有写入都会传播到集群。 ElastiCache您可以使用 ElastiCache 节点进行读取。但是,您无法写入集 ElastiCache群。如果 ElastiCache 主节点连接了其他副本节点,则这些副本节点将继续从 ElastiCache 主节点进行复制。这样,来自您的 Redis OSS 集群的所有数据都会复制到集 ElastiCache 群中的所有节点。
如果 ElastiCache 主节点无法成为 Redis OSS 实例的副本,则它会重试几次,然后最终将自己提升回主节点。然后, ElastiCache群集的状态更改为可用,并发送有关无法启动迁移的复制组事件。要解决此类故障,请检查以下内容:
-
查看复制组事件。使用事件中的任何特定信息修复迁移失败。
-
如果事件未提供任何特定信息,请确保您遵循为迁移做好源和目标 Redis OSS 节点的准备中的准则。
-
确保您的 VPC 和子网的路由配置允许 ElastiCache 节点与 Redis OSS 实例之间的流量。
-
确保挂载到 Redis OSS 实例的安全组允许来自 ElastiCache 节点的输入绑定流量。
-
查看您的 Redis OSS 实例的 Redis OSS 日志,了解有关复制特定故障的更多信息。