You need to enable JavaScript to run this app.
导航

迁移至火山引擎专有网络 Redis

最近更新时间2024.03.20 10:30:18

首次发布时间2023.09.06 19:17:40

本文介绍如何在数据库传输服务 DTS 控制台创建公网自建 Redis 迁移至火山引擎专有网络 Redis 任务。

前提条件

  • 已注册火山引擎账号并完成实名认证。详细操作,请参见如何进行账号注册实名认证

  • 已在公网环境中自行搭建 Redis 实例和数据库。

  • 按需设置目标端信息,具体如下所示:

    • 在使用 VPN 实现数据迁移时,自建数据库所属的本地网络已通过 VPN 网关接入火山引擎。详细操作,请参见搭建云上VPC与云下多数据中心网络互通

    • 在需要使用专线实现数据迁移时,您需要搭建云上单私有网络和云下单数据中心网络连通的专线连接。详细操作,请参见配置专线连接

  • 当源端部署在 IDC 或 ECS 中,且通过公网连接,您需要将 DTS 的服务器 IP 地址添加到自建库的白名单中。

  • 已确认源库和目标库的网络连通性与服务可用性。

注意事项

  • 迁移任务默认进行全量迁移和增量迁移。

  • 当源库为自建 Redis 时,在迁移过程中,请勿对源库或目标库进行重启或主备切换,否则将导致迁移任务失败。

  • 当您想将阿里云的云数据库 Redis 版的数据迁移至火山引擎的缓存数据库 Redis 版时,由于数据库传输服务 DTS 当前仅支持迁移默认账号 default 下的数据,阿里云的云数据库 Redis 版的 default 账号没有复制权限,因此您需要在阿里云的云数据库 Redis 版中创建新的数据库账号,并赋予该账号复制权限。关于后续迁移的详细操作,请参见操作步骤

  • 数据库传输服务 DTS 暂不支持迁移阿里云的云原生内存数据库 Tair 的数据至火山引擎版 Redis。如需迁移,请提交工单联系技术支持。

  • 迁移过程中,请勿变更实例的配置,否则迁移任务不成功。

  • 在创建火山引擎专有网络数据迁移任务的过程中,系统会默认在您选择的私有网络内创建数张网卡,网卡会默认挂载到您选择的子网上。网卡的名称格式为 dts_shuttle_********

  • 暂不支持迁移集群版实例。

  • 在数据迁移的过程中,若遇到目标库中已存在同键值情况,DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。

使用限制

类型说明

源库限制

  • 带宽要求,源库所属的服务器需具备足够出口带宽,否则将影响数据迁移的速率。

  • 当源库中的某些 Key 使用了过期(expire)的策略,可能存在 Key 已过期但未被及时删除的情况,导致目标数据库中查看的 Key 数量比源库的 Key 数量少。

  • 在迁移期间,当源库发生扩缩容例如增加或减少分片、规格变配例如扩大内存时,您需重新配置任务。为保障数据一致性,在重新配置任务前,建议先清空已迁移至目标 Redis 实例内的数据。

  • 在迁移期间,当源库的连接地址发生变化,导致迁移任务失败时,您需要重新配置任务。当不成功时,您可提交工单联系技术支持,如果长时间未处理,源库会重置 AOF 文件。

  • 用于数据迁移的账号需具备以下权限:

    • 源库可以执行 syncpsyncconfig get 命令。

    • 目标库可以执行写命令。

其他限制

  • 建议源库和目标库的 Redis 的数据库版本保持一致,或者从低版本迁移到高版本以保障兼容性。如果是高版本迁移到低版本,可能存在数据库兼容性或数据丢失问题。

  • 在增量数据迁移时,由于目标库在执行脚本时不会明确返回执行结果,对于通过 EVALEVALSHA 调用的 Lua 脚本,数据库传输服务 DTS 无法确认该类型脚本是否执行成功。

  • 数据库传输服务 DTS 在进行全量迁移时,将占用源库和目标库的部分资源,可能会导致数据库服务器负载上升。当数据库业务量较大或服务器规格较低时,可能会加重数据库的压力,甚至会导致数据库服务不可用,以至于数据迁移任务失败。

  • 建议在业务低峰期执行数据迁移,您也可以调大源库的 client -output-buffer-limit 的参数值,防止在迁移大 Key 时,缓冲期溢出。

  • 目标 Redis 的数据库存储空间需大于源 Redis 数据库占用的存储空间。

  • 数据库传输服务 DTS 在使用 psyncsync 命令调用传输数据时,会对目标库数据进行覆盖写入,即如果目标库存在相同的 key 时,会先进行 del 操作。

  • 如果目标库的数据逐出策略参数 maxmemory-policy 配置为 noeviction 以外的值,可能导致目标库的数据和源库不一致。

增量迁移支持的命令

  • APPEND

  • BITOPBLPOPBRPOPBRPOPLPUSH

  • DECRDECRBYDEL

  • EVALEVALSHAEXPIREEXPIREAT

  • GEOADDGETSET

  • HDELHINCRBYHINCRBYFLOATHMSETHSETHSETNX

  • INCRINCRBYINCRBYFLOAT

  • LINSERTLPOPLPUSHLPUSHXLREMLSETLTRIM

  • MOVEMSETMSETNX

  • PERSISTPEXPIREPEXPIREATPFADDPFMERGEPSETEXPUBLISH

  • RENAMERENAMENXRESTORERPOPRPOPLPUSHRPUSHRPUSHX

  • SADDSDIFFSTORESELECTSETSETBITSETEXSETNXSETRANGESINTERSTORESMOVESPOPSREMSUNIONSTORE

  • ZADDZINCRBYZINTERSTOREZREMZREMRANGEBYLEXZUNIONSTOREZREMRANGEBYRANKZREMRANGEBYSCORE

操作步骤

  1. 登录 DTS 控制台

  2. 在顶部菜单栏,选择项目和地域。

  3. 在左侧导航栏,单击数据迁移

  4. 迁移任务列表页面,单击创建任务

  1. 创建迁移任务页面的配置源库及目标库配置向导页面,配置以下参数信息。

    类别参数说明

    任务名称

    (可选)自定义迁移任务名称。命名规则如下:

    • 以字母开头。

    • 长度需在 64 个字符内。

    • 只能包含字母、数字、下划线(_)和中划线(-)。

    链路规格

    按需选择迁移任务的链路规格,当前支持 CompactStandard

    说明

    成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格

    源库配置实例类型选择 Redis

    接入方式

    选择公网自建 Redis

    说明

    在迁移公网自建 Redis 实例时,您需要提前在源端的白名单或安全组策略中,添加 DTS IP 段的访问权限。单击查看 DTS IP 段查看和复制 IP 段。

    主机地址输入自建实例的主机地址。
    端口输入自建实例的端口号。
    数据库账号默认账号为 default,您可以根据实际情况设置数据库账号。
    数据库密码输入自建实例数据库账号对应的密码。

    测试链接

    单击测试链接,验证是否成功连接实例。
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:

    • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。

    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。

    • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。

    目标库配置

    实例类型

    选择 Redis

    接入方式选择火山引擎专有网络 Redis
    主机地址输入火山引擎专有网络实例的主机地址。
    端口输入火山引擎专有网络实例的端口号。

    私有网络

    从下拉列表中选择目标实例所在的私有网络,具体如下所示:

    • 专线连接:通过专线 CEN 实现数据连通时,选择 CEN 下所属的任意私有网络。

    • VPN 连接:通过 VPN 实现数据连通时,选择 VPN 网关绑定的私有网络。

    子网

    从下拉列表中选择和私有网络连通的子网。

    说明

    在迁移火山引擎专有网络 Redis 实例时,您需要提前在源端的白名单或安全组策略中,添加子网 IP 段的访问权限。单击查看子网 IP 段查看和复制 IP 段。

    数据库账号默认账号为 default,您可以根据实际情况设置数据库账号。
    数据库密码输入源实例数据库账号对应的密码。

    测试链接

    单击测试链接,验证是否成功连接实例。
    当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:

    • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。

    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。

    • 连接认证失败,无法正常创建连接,请联系客服:当出现该报错提示时,请提交工单联系技术人员。

    • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。

    • 专有网络需要子网有 * 个可用 IP,当前私有网络内子网可用 IP 数不足,无法创建任务,请检查私有网络内子网资源:当出现该报错提示时,您需要调整私有网络子网内可用的 IP 数量,以保证目标私有网络内子网内有足够的 IP。

    项目

    (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目

    说明

    • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限

    • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。详细操作,请参见资源移入项目

    • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。

    标签

    (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:

      • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。

      • 大小写敏感,且长度在 1~128 个字符内。

      • 使用 UTF-8 编码的 Unicode 格式。

      • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:VOLC: 等。

    • (可选)值

      • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。

      • 大小写敏感,且长度在 0~256 个字符内。

      • 使用 UTF-8 编码的 Unicode 格式。

    说明

    • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。

    • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。

    计费方式

    当前仅支持按量计费,您无需选择。

    说明

    关于计费的详细信息,请参见计费说明

  2. 单击下一步:配置迁移对象

  3. 配置迁移对象配置向导页面,配置相关参数信息,如下表所示。

    说明

    • 迁移任务默认进行全量迁移增量迁移

    • 若暂时不需要启动迁移任务,您可以在完成迁移对象配置后,单击页面右下角的保存

    • 保存后会跳转回迁移任务列表页,此时任务状态为待启动,您可以在合适的时候再配置迁移任务。配置方法,请参见配置迁移任务

    参数说明

    迁移对象

    迁移对象区域中勾选需要迁移的对象,您可以在已选择对象区域中再次确认需要迁移的对象。

    说明

    默认进行全量迁移和增量迁移。

    错误重试时间在迁移任务中,当源库和目标库断连后导致迁移任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 7200 秒。
  1. 单击预检查

  2. 预检查配置向导页面,根据检查结果执行以下操作:

    • 单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试

    • 单击操作列的忽略,忽略本次告警继续启动迁移任务。同时,也可以单击忽略全部,一键忽略全部告警信息。

    说明

    • 选择忽略告警并启动迁移任务,可能导致数据不一致,带来业务风险。

    • 关于预检查的具体说明,请参见预检查项

  3. 预检查页面右下角,单击确认订单

  4. 确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务

成功创建数据迁移任务后,您可以返回数据库传输服务 DTS 控制台,在数据迁移任务列表查看数据迁移任务的信息。更多信息,请参见查看迁移任务

相关 API

API描述
CreateTransmissionTask调用 CreateTransmissionTask 接口创建数据库传输服务任务。
ModifyTransmissionTask调用 ModifyTransmissionTask 接口修改传输任务。