选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

将 Redis OSS 作为 AWS Database Migration Service 的目标

聚焦模式
将 Redis OSS 作为 AWS Database Migration Service 的目标 - AWS 数据库迁移服务

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

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

Redis OSS 是一个开源的内存数据结构存储,用作数据库、缓存和消息代理。在内存中管理数据可能导致读取或写入操作花费不到一毫秒的时间,每秒可执行数亿次操作。作为内存数据存储,Redis OSS 支持需要亚毫秒响应时间的苛刻要求应用程序。

使用 AWS DMS,您可以将数据从任何支持的源数据库迁移到目标 Redis OSS 数据存储,并且可以更大限度地减少停机时间。有关 Redis OSS 的更多信息,请参阅 Redis OSS 文档

除本地 Redis OSS 之外,AWS Database Migration Service 还支持以下内容:

  • Amazon ElastiCache(Redis OSS)作为目标数据存储。ElastiCache(Redis OSS)可与您的 Redis OSS 客户端配合使用,并使用开放的 Redis OSS 数据格式来存储数据。

  • Amazon MemoryDB 作为目标数据存储。MemoryDB 与 Redis OSS 兼容,使您能够使用当前在用的所有 Redis OSS 数据结构、API 和命令来构建应用程序。

有关将 Redis OSS 作为 AWS DMS 目标的其他信息,请参阅以下章节:

将 Redis OSS 集群作为 AWS DMS 目标的先决条件

DMS 支持独立配置中的本地 Redis OSS 目标,也支持在多个节点之间自动分片 数据的 Redis OSS 集群。分片是将数据分成小块(称为分片)的过程,这些小块分布在多个服务器或节点上。实际上,分片是一个数据分区,它包含总数据集的子集,并作为总工作负载的一部分。

由于 Redis OSS 是键值 NoSQL 数据存储,因此当您的源是关系数据库时,使用的 Redis OSS 键命名约定是 schema-name.table-name.primary-key。在 Redis OSS 中,键和值不得包含特殊字符 %。否则,DMS 会跳过记录。

注意

如果您使用 ElastiCache(Redis OSS)作为目标,则 DMS 仅支持启用集群模式 配置。有关使用 ElastiCache(Redis OSS)版本 6.x 或更高版本创建启用集群模式的目标数据存储的更多信息,请参阅《Amazon ElastiCache(Redis OSS)用户指南》中的入门

在开始数据库迁移之前,请使用以下条件启动 Redis OSS 集群。

  • 集群拥有一个或多个分片。

  • 如果您使用 ElastiCache(Redis OSS)目标,请确保您的集群不使用基于 IAM 角色的访问控制,而是使用 Redis OSS Auth 对用户进行身份验证。

  • 启用多可用区。

  • 确保集群具有足够的可用内存以容纳要从数据库迁移的数据。

  • 在开始初始迁移任务之前,请确保您的目标 Redis OSS 集群中已清除所有数据。

在创建集群配置之前,应该确定数据迁移的安全要求。无论目标复制组的加密配置如何,DMS 都支持迁移到目标复制组。但是,只有在创建集群配置时才能启用或禁用加密。

将 Redis 作为 AWS Database Migration Service 目标的限制

将 Redis OSS 作为目标时存在以下限制:

  • 由于 Redis OSS 是键值 no-sql 数据存储,因此当您的源是关系数据库时,使用的 Redis OSS 键命名约定是 schema-name.table-name.primary-key

  • 在 Redis OSS 中,键值不能包含特殊字符 %。否则,DMS 会跳过记录。

  • DMS 不会迁移包含 % 字符的行。

  • DMS 不会迁移字段名称中包含 % 字符的字段。

  • 不支持完整 LOB 模式。

  • 使用 ElastiCache(Redis OSS)作为目标时,不支持私有证书颁发机构(CA)。

将数据从关系或非关系数据库迁移到 Redis OSS 目标

您可以将数据从任何源 SQL 或 NoSQL 数据存储直接迁移到 Redis OSS 目标。设置和开始到 Redis OSS 目标的迁移类似于使用 DMS 控制台或 API 进行的任何完全加载和更改数据捕获迁移。要将数据库迁移到 Redis OSS 目标,请执行以下操作。

  • 创建复制实例以执行迁移的所有过程。有关更多信息,请参阅 创建复制实例

  • 指定源端点。有关更多信息,请参阅 创建源和目标终端节点

  • 找到集群的 DNS 名称和端口号。

  • 下载可用来验证 SSL 连接的证书捆绑包。

  • 指定目标端点,如下所述。

  • 创建一个任务或一组任务来定义要使用的表和复制过程。有关更多信息,请参阅 创建任务

  • 将数据从源数据库迁移到目标集群。

您可以通过以下两种方式之一开始数据库迁移:

  1. 您可以选择 AWS DMS 控制台并在其中执行每个步骤。

  2. 您可以使用 AWS Command Line Interface(AWS CLI)。有关使用适用于 AWS DMS 的 CLI 的更多信息,请参阅适用于 AWS DMS 的 AWS CLI

找到集群的 DNS 名称和端口号
  • 使用以下 AWS CLI 命令为 replication-group-id 提供复制组的名称。

    aws elasticache describe-replication-groups --replication-group-id myreplgroup

    此处,输出在集群中主节点的 Address 属性中显示 DNS 名称,在 Port 属性中显示端口号。

    ... "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup- 111.1abc1d.1111.uuu1.cache.example.com" } ...

    如果您使用 MemoryDB 作为目标,请使用以下 AWS CLI 命令为您的 Redis OSS 集群提供端点地址。

    aws memorydb describe-clusters --clusterid clusterid
下载可用来验证 SSL 连接的证书捆绑包。
  • 在命令行输入以下 wget 命令。Wget 是一个免费的 GNU 命令行实用工具,用于从互联网下载文件。

    wget https://s3.aws-api-domain/rds-downloads/rds-combined-ca-bundle.pem

    在这里,aws-api-domain 在您的 AWS 所在区域中填写访问指定 S3 存储桶所需的 Amazon S3 域及其提供的 rds-combined-ca-bundle.pem 文件。

使用 AWS DMS 控制台创建目标端点

此端点适用于已经在运行的 Redis OSS 目标。

  • 在控制台的导航窗格中,选择端点,然后选择创建端点。下表描述了设置。

    对于该选项 请执行该操作

    端点类型

    选择目标端点类型。

    终端节点标识符

    输入端点名称。例如,在名称中包含端点的类型,如 my-redis-target

    目标引擎

    选择 Redis OSS 作为您希望此端点连接的数据库引擎类型。

    集群名称

    输入您的 Redis OSS 集群的 DNS 名称。

    端口

    输入您的 Redis OSS 集群的端口号。

    SSL 安全协议

    选择纯文本SSL 加密

    纯文本 – 该选项不为端点和数据库之间的流量提供传输层安全性协议(TLS)加密。

    SSL 加密 – 如果选择此选项,请输入 SSL 证书颁发机构(CA)证书 ARN 以验证服务器的证书并建立加密连接。

    对于本地 Redis OSS,DMS 同时支持公有和私有证书颁发机构(CA)。对于 ElastiCache(Redis OSS),DMS 仅支持公有 CA。

    身份验证类型

    选择连接到 Redis OSS 目标时要执行的身份验证类型。选项包括身份验证角色身份验证令牌

    如果选择身份验证角色,请提供身份验证用户名身份验证密码

    如果选择身份验证令牌,则仅提供身份验证密码

    复制实例

    [可选] 仅在您想要测试连接时,才选择先前在创建复制实例页面上输入的复制实例的名称。

提供端点的所有信息后,AWS DMS 会创建您的 Redis OSS 目标端点以供数据库迁移期间使用。

有关创建迁移任务和开始数据库迁移的信息,请参阅创建任务

指定 Redis OSS 作为目标时的端点设置

要创建或修改目标终端节点,您可以使用控制台,也可以使用 CreateEndpointModifyEndpoint API 操作。

对于 Redis OSS 目标,在 AWS DMS 控制台中的创建端点修改端点控制台页面上指定特定于端点的设置

使用 CreateEndpointModifyEndpoint API 操作时,请为 RedisSettings 选项指定请求参数。以下示例说明如何使用 AWS CLI 执行此操作。

aws dms create-endpoint --endpoint-identifier my-redis-target --endpoint-type target --engine-name redis --redis-settings '{"ServerName":"sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com","Port":6379,"AuthType":"auth-token", "SslSecurityProtocol":"ssl-encryption", "AuthPassword":"notanactualpassword"}' { "Endpoint": { "EndpointIdentifier": "my-redis-target", "EndpointType": "TARGET", "EngineName": "redis", "EngineDisplayName": "Redis", "TransferFiles": false, "ReceiveTransferredFiles": false, "Status": "active", "KmsKeyId": "arn:aws:kms:us-east-1:999999999999:key/x-b188188x", "EndpointArn": "arn:aws:dms:us-east-1:555555555555:endpoint:ABCDEFGHIJKLMONOPQRSTUVWXYZ", "SslMode": "none", "RedisSettings": { "ServerName": "sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com", "Port": 6379, "SslSecurityProtocol": "ssl-encryption", "AuthType": "auth-token" } } }

--redis-settings 参数如下:

  • ServerName –(必填)类型为 string,指定数据将迁移到的 Redis OSS 集群,并且位于同一 VPC 中。

  • Port –(必填)类型为 number,用于访问端点的端口值。

  • SslSecurityProtocol –(可选)有效值包括 plaintextssl-encryption。默认为 ssl-encryption

    plaintext 选项不为端点和数据库之间的流量提供传输层安全性协议(TLS)加密。

    使用 ssl-encryption 建立加密连接。ssl-encryption 不需要 SSL 证书颁发机构(CA)ARN 来验证服务器的证书,但可以选择使用 SslCaCertificateArn 设置进行识别。如果没有为证书颁发机构提供 ARN,则 DMS 将使用 Amazon 根 CA。

    使用本地 Redis OSS 目标时,您可以使用 SslCaCertificateArn 将公有或私有证书颁发机构(CA)导入 DMS,并提供该 ARN 用于服务器身份验证。使用 ElastiCache(Redis OSS)作为目标时,不支持私有 CA。

  • AuthType –(必填)指示连接到 Redis OSS 时要执行的身份验证类型。有效值包括 noneauth-tokenauth-role

    auth-token 选项要求提供“AuthPassword”,而 auth-role 选项则要求提供“AuthUserName”和“AuthPassword”。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。