You need to enable JavaScript to run this app.
导航
迁移至专有网络 Redis
最近更新时间:2024.11.25 17:41:23首次发布时间:2023.09.06 19:17:39

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

前提条件

  • 已创建缓存数据库 Redis 版数据库和设置账号密码。详细操作,请参见创建实例设置账号密码

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

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

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

  • 当数据库实例的接入方式选择的是专有网络时,且数据库实例开启了访问限制,那么在创建数据库传输任务前,您需要将子网网段添加至数据库实例的白名单或安全组中。华南1(广州)子网网段是 172.31.0.0/20,华北2(上海)和华北2(北京)子网网段是 192.168.3.0/24,亚太东南(柔佛)子网网段是 192.168.0.0/24,中国香港的子网网段是 192.168.0.0/24。更多信息,请参见添加 DTS 服务器的 IP 地址段
  • 已确认源库和目标库的网络连通性与服务可用性。

注意事项

  • 迁移任务默认进行全量迁移和增量迁移。
  • 迁移过程中,请勿变更实例的配置,否则迁移任务不成功。
  • 在创建专有网络数据迁移任务的过程中,系统会默认在您选择的私有网络内创建数张网卡,网卡会默认挂载到您选择的子网上。网卡的名称格式为 dts_shuttle_********
  • 在全量和增量迁移 Stream 的任务中,请勿在目标数据库实例中进行双写操作,否则可能会导致任务迁移失败。
  • 暂不支持迁移开启 SSL 的实例。
  • 您可以通过分片到分片的形式迁移集群版实例。
  • 在数据迁移的过程中,若遇到目标库中已存在同键值情况,DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。
  • 当前属于邀测阶段,如需使用请提交工单
  • 缓存数据库 Redis 企业版当前处于邀测阶段,如需迁移至缓存数据库 Redis 企业版,请提交工单申请服务。关于缓存数据库 Redis 企业版的详细信息,请参见什么是缓存数据库 Redis 企业版

使用限制

类型说明

源库限制

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

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

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

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

  • 用于数据迁移的目标库账号可以执行写命令。

其他限制

  • 建议源库和目标库的 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

说明

Redis 7.0 暂不支持 Function 相关命令。

操作步骤

  1. 登录 DTS 控制台

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

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

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

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

    类别参数说明

    任务名称

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

    • 以字母开头。

    • 长度需在 64 个字符内。

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

    链路规格

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

    说明

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

    源库配置

    选择已有数据源

    您可以按需选择是否使用已录入的实例:

    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理

    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。

    实例类型选择 Redis
    接入方式选择火山引擎版 Redis
    地域选择目标实例所属地域。

    是否跨火山引擎账号

    按需选择是否跨账号传输数据,取值如下:

    • 本账号:选择本账号时,表示仅在本账号内实现数据传输。

    • 跨账号:选择跨账号时,表示将实现两个账号间的数据传输。

      说明

      • 在进行跨账号传输数据时,您需要通过目标端所在的账号登录数据库传输服务 DTS 控制台。

      • 跨账号进行数据传输前,您需要在源端的主账号内创建 IAM 角色并授权。详细操作,请参见如何授权用户实现跨账号传输数据

    跨账号 ID输入源库所属的火山引擎账号 ID。
    跨账号角色输入已授权 DTS 访问跨账号资源的 IAM 角色。

    Redis 实例

    在下拉列表中选择缓存数据库 Redis 的目标实例。

    说明

    您也可以通过实例 ID 或名称搜索目标实例。

    数据库账号默认账号为 default,您可以根据实际情况设置数据库账号。

    数据库密码

    输入源实例数据库账号对应的密码。

    说明

    在缓存数据库 Redis 版的实例开启免密访问时,无需输入密码即可成功访问目标实例。关于开启免密访问的详细操作,请参见免密访问

    测试链接

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

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

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

    目标库配置

    选择已有数据源

    您可以按需选择是否使用已录入的实例:

    • 使用已录入实例:单击选择已有数据源,在选择数据源控制面板,从地域下拉列表中选择目标地域,然后选择目标数据源。支持通过数据源名称和 ID 选择数据源。关于数据源的创建方法,请参见数据源管理

    • 不使用已录入实例:如果不使用已录入的实例,那么您需要配置以下数据库实例信息。

    实例类型

    选择 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)。默认值为 600 秒。
  1. 单击预检查

  2. (可选)当创建的任务已有预检查时,您可以根据以下提示确认是否重新发起预检查,当需要重新发起预检查时,请在是否重新发起预检查对话框,单击确定

    • 若源端和目标端的数据库实例未做修改,则无需再次发起预检查。

    • 如果修改了源端、目标端的数据库实例信息或迁移任务的参数配置,那么建议您重新发起预检查,否则可能会导致任务启动失败或者任务中断。

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

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

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

    说明

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

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

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

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

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

相关 API

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