tencent cloud

文档反馈

使用 DTS 进行迁移

最后更新时间:2023-05-23 10:36:38

    基本信息

    腾讯云 数据传输服务(Data Transmission Service,DTS)集数据迁移、数据同步、数据订阅于一体,帮助用户在业务不停服的前提下轻松完成数据库迁移上云,利用实时同步通道轻松构建高可用的数据库容灾架构,通过数据订阅来满足商业数据挖掘、业务异步解耦等场景需求。
    DTS for Redis 目前支持数据迁移功能,可一次性将数据迁移到云上数据库,迁移过程中不停机,并且支持全量 + 增量数据的迁移,即迁移前源库的历史数据,和迁移过程中源库新增的写入数据都支持一起迁移。

    适用场景

    适合通过 DTS 进行数据迁移的源端与目标端数据库形态如下表所示。
    源端
    目标端
    说明
    自建数据库 Redis(IDC 自建、腾讯云 CVM 上自建)
    腾讯云 Redis、腾讯云 KeeWiDB
    迁移至腾讯云 KeeWiDB 。
    腾讯云 Redis
    自建数据库 Redis(IDC 自建、腾讯云 CVM 上自建)
    腾讯云 Redis 迁移至自建 Redis(下云&多云同步)。
    第三方云厂商 Redis
    腾讯云 Redis、腾讯云 KeeWiDB
    迁移至腾讯云 KeeWiDB。
    腾讯云 Redis
    腾讯云 Redis、腾讯云 KeeWiDB
    腾讯云 Redis 实例之间迁移场景包括:
    腾讯云 Redis 不同地域间迁移
    腾讯云 Redis 同地域间迁移
    腾讯云 Redis 跨版本迁移
    跨腾讯云账号迁移
    腾讯云标准架构迁移至集群架构,或集群架构迁移至标准架构。集群架构数据是分布式存储,与标准架构存在命令兼容性问题。迁移之前,请进行 标准架构迁移集群架构检查
    从其他类型数据库
    腾讯云 Redis
    Codis 迁移至腾讯云 Redis。
    腾讯自研 istore 迁移至腾讯云 Redis。

    版本与架构说明

    源端数据库支持的版本包括 Redis 2.8、3.0、3.2、4.0、5.0、6.2。建议目标库版本大于或等于源库版本,否则会存在兼容性问题。
    支持的集群架构包括:单节点架构、Redis Cluster 原生方案、Codis 集群方案、Twemproxy 集群方案 。
    源端实例支持 SYNC 或者 PSYNC 命令。

    约束限制

    源库中的数据库个数需要小于或等于目标库的数据库个数。
    目标库的内存空间必须大于等于源库待迁移数据所占空间的1.5倍。
    目标端支持开启覆盖写入模式,若不开启,则目标端数据库需为空。
    只允许迁移实例状态为运行中的实例,未初始化密码或者有其他任务在执行中的实例,不能迁移。
    源库必须为 Slave 节点,否则校验项会报警告。可根据主节点的业务情况消除告警。
    注意:
    DTS 不能做环形同步。环形同步数据,写入数据不会被终止,一直在环路上执行,将会导致写风暴。
    DTS 不支持断点续传,因为没有 Binlog 文件,增量都同步在连接的内存中,一但断掉,增量就从内存中丢失,因此任务一旦发起,不支持暂停。

    迁移前准备

    确认源端与目标端数据库实例状态是否正常。
    确认源端网络环境接入类型是否互通。
    公网:源数据库可以通过公网 IP 访问。
    云主机自建:源数据库部署在 腾讯云服务器 CVM 上。
    专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。
    VPN 接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。
    云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。
    确认内存空间:目标库的空间必须大于等于源库待迁移数据所占空间的1.5倍。
    确认数据库个数:源库中的数据库个数需要小于或等于目标库的数据库个数。
    目标端支持覆盖写入模式,需在迁移任务配置中进行开启,如果不开启,请排查目标端数据库是否为空。
    说明
    DTS 系统会在启动迁移任务前进行校验,报错后的处理方法请参见 Redis 校验项
    检查源端是否存在大 Key。
    在迁移过程中,大 Key 可能引起缓冲区 client-output-buffer-limit 溢出,导致迁移失败。
    腾讯云数据库,请使用数据库智能管家(TencentDB for DBbrain,DBbrain)的诊断优化功能快速分析大 Key。具体操作,请参见 内存分析
    非腾讯云数据库,请使用 rdbtools 分析 Redis 大 Key。
    评估大 Key 进行拆分或清理,如果保留大 Key,请设置源端缓冲区的大小 client-output-buffer-limit 为无限大。
    config set client-output-buffer-limit 'slave 0 0 0'
    检查源端 Linux 内核 TCP 连接数的限制。
    如果业务并发请求比较大,迁移之前,请检查 Linux 内核对连接数的限制,如果业务请求连接数超出内核限制的连接数,Linux 服务器将会主动断开与 DTS 的连接。
    echo "net.ipv4.tcp_max_syn_backlog=4096" >> /etc/sysctl.conf
    echo "net.core.somaxconn=4096" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_abort_on_overflow=0" /etc/sysctl.conf
    sysctl -p
    检查源端 RDB 文件目录的访问权限。
    迁移之前,请务必检查源端存放 RDB 文件目录的访问权限是否为可读,否则将会因 RDB 文件不可读而引起迁移失败。
    如果 RDB 文件所在目录不可读,请在源端执行如下命令,设置“无盘复制”,直接发送 RDB 文件给 DTS 落盘,而不需要保存在源端的磁盘再发送。
    config set repl-diskless-sync yes
    标准架构迁移到集群架构,请检查命令兼容性问题。具体操作,请参见 标准架构迁移集群架构检查 进行静态评估与动态评估。
    

    迁移步骤

    步骤一:新建迁移任务

    1. 登录 DTS 控制台,进入数据迁移页面,单击新建迁移任务
    2. 数据传输服务页面,根据下表配置项说明创建迁移任务,单击立即购买
    配置项
    说明
    服务类型
    选择数据迁移
    创建模式
    选择创建任务模式,支持以下两种方式。
    新建任务:创建一个全新的任务。
    创建类似任务:基于已存在的一个迁移任务,创建其类似任务,方便快速。
    任务 ID
    创建模式选择创建类似任务时,需配置该参数。
    在下拉表中,选择类似的迁移任务 ID。
    配置该参数后,下方的配置项将按照已选择的任务 ID 中的配置进行更新。
    计费模式
    仅支持按量计费
    源实例类型
    请根据您的源数据库类型选择,购买后不可修改。此处选择 Redis
    源实例地域
    选择源数据库所属地域。如果源库为自建数据库,选择离自建数据库最近的一个地域即可。
    目标实例类型
    请根据您的目标数据库类型选择,购买后不可修改。此处选择 Redis
    目标实例地域
    选择目标数据库所属地域。
    规格
    当前仅支持 Xlarge
    标签
    给迁移任务设置标签键与标签值,便于通过标签高效管理任务。
    任务名
    创建后命名:创建任务之后,再设置任务名称。
    立即命名:在下方输入框给迁移任务设置名称。
    不支持除 - 之外的任意特殊符号。
    支持小写字母、大写字母、汉字及数字。
    长度限制请以控制台为准。
    建议设置便于识别业务的名称。
    协议条款
    请务必勾选 我已阅读并同意
    数量
    创建任务的数量,取值范围[1,10]。
    链路配置费用
    当前免费。
    3. 返回数据迁移任务页面,在迁移任务列表,可查看任务状态及进度,等待任务创建完成。

    步骤二:配置迁移任务

    1. 在数据迁移列表中,找到已创建的迁移任务。
    2. 在其操作列,单击配置。
    3. 修改迁移任务配置向导的设置源和目标数据库页签,根据下表说明配置源库网络接入类型、主机地址、端口以及目标库的实例信息,并测试连通性,单击保存,如下图所示。
    
    
    
    配置类别
    配置项
    说明
    任务设置
    任务名称
    新建迁移任务时已设置任务名称,此配置项便默认为已创建的名称。
    新建任务时,未配置任务名称,请在输入框设置便于识别的任务名称。
    不支持除 - 之外的任意特殊符号。
    支持小写字母、大写字母、汉字及数字。
    长度限制请以控制台为准。
    运行模式
    选择任务运行模式,支持选择立即执行定时执行
    立即执行:配置完迁移任务之后,立即运行。
    定时执行:可设置具体的执行时间,将在设定的执行时间开始运行。建议选择此种方式。
    配置迁移任务之后,支持在执行时间之前修改定时执行时间。
    迁移任务设置定时执行时间之后,而又需在定时时间之前立即运行任务,可在迁移任务列表操作列,单击立即启动
    源库设置
    源库类型
    购买时选择的源数据库类型,不可修改。
    所属地域
    购买时选择的地域,不可修改。
    接入类型
    选择源库接入的网络类型。对于第三方云厂商数据库,一般可以选择公网方式,也可以选择 VPN 接入、专线或者云联网的方式,请根据实际的网络情况选择。
    公网:源数据库可以通过公网 IP 访问。
    云主机自建:源数据库部署在 腾讯云服务器 CVM 上。
    专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。
    VPN接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。
    云数据库:源数据库属于腾讯云数据库实例。
    云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。
    节点类型
    选择源库集群部署类型,支持选择单节点迁移集群迁移
    单节点迁移:指一主多副本的集群架构。
    集群迁移:指由若干个分片,而每个分片上又存在若干个副本节点的集群架构。
    主机地址
    节点类型选择单节点迁移时,显示该参数。请在输入框填写源库的主机副本节点的 IP 地址。
    端口
    节点类型选择单节点迁移时,显示该参数。请在输入框填写源库的端口。
    密码
    节点类型选择单节点迁移时,显示该参数。请在输入框填写源库访问密码。
    节点信息
    节点类型选择集群迁移时,显示该参数。
    填写源库集群的所有分片节点地址和密码(IP:端口:密码 或 IP:端口),多个节点请换行处理。
    建议从源库的副本节点(从节点)进行数据迁移,避免影响源库的业务访问。
    目标库设置
    目标库类型
    购买时选择的目标库类型,不可修改。固定为 Redis。
    所属地域
    购买时选择的目标库地域,不可修改。
    接入类型
    选择目标端数据库接入的网络类型。
    节点类型
    选择目标端数据库集群部署类型。
    单节点迁移:指一主多副本的标准架构。
    Redis Cluster 迁移:指原生 Redis Cluster 架构方案,不支持有代理(Proxy)架构。
    代理集群迁移:具备代理(Proxy)的集群架构,如 Codis 集群方案,Twemproxy 集群方案。
    主机地址
    节点类型选择单节点迁移时,显示该参数。请在输入框填写目标库的主机节点的 IP 地址。
    端口
    节点类型选择单节点迁移时,显示该参数。请在输入框填写目标库的端口。
    密码
    节点类型选择单节点迁移时,显示该参数。请在输入框填写目标库访问密码。
    节点信息
    节点类型选择Redis Cluster 迁移或者代理集群迁移时,显示该参数。
    填写目标库集群的所有分片节点地址和密码(IP:端口:密码 或 IP:端口),多个节点请换行处理。
    4. 设置迁移选项及迁移对象页签,确认迁移类型全量 + 增量迁移迁移对象整个实例,可根据需要判断是否启用覆盖写入模式,单击保存。
    说明:
    覆盖写入模式,指在目标端数据库写入数据时,直接覆盖原有数据,并不清空数据库,从文件开头进行写入。
    5. 校验任务页签,将自动进行任务校验。校验项目包含:网络、实例访问密码、实例容量、目标实例只读等信息。
    校验结果为失败:表示校验项检查未通过,任务阻断,需要修复问题后重新执行校验任务。
    校验结果为警告:表示检验项检查不完全符合要求,可以继续任务,但对业务有一定的影响,用户需要根据提示自行评估是忽略警告项还是修复问题再继续。
    6. 校验任务全部通过后,单击启动任务稍后启动。
    启动任务:立即启动迁移任务,即使设置了定时执行时间,也不等待,立即启动数据迁移。
    稍后启动:配置任务时,设置了定时执行时间,可选择稍后启动,任务将在执行时间点启动。
    7. 返回数据迁移任务列表,任务进入准备运行状态,运行1分钟 - 2分钟后,数据迁移任务开始正式启动。

    步骤三:查看并管理数据迁移任务

    在迁移任务列表,可查看迁移任务进度,等待迁移任务状态变为任务成功时,在目标数据库上验证数据,如果验证无误,确定割接时间,将业务系统指向目标数据库。
    当源库和目标库的 Key 同步一致时,在操作列单击完成,结束数据迁移任务。
    管理迁移任务:在任务列表的操作列,可对任务进行重试、终止、暂停等操作,具体信息,请参见 任务管理

    事件告警和指标监控

    DTS 支持迁移中断自动上报事件告警,以便及时了解到迁移任务的异常,详细步骤请参见 配置数据迁移告警
    DTS 支持查看迁移过程中的各项指标监控, 以便了解系统的各项指标性能,请参见 查看监控指标

    常见问题

    DTS迁移过程中,常见错误提示信息及处理方法,请参见 使用 DTS 迁移常见错误提示信息
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持