有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

基本概念

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

适用场景

适合通过 DTS 进行数据迁移的源端与目标端数据库形态如下表所示。
源端
目标端
说明
自建数据库 Redis(IDC 自建、腾讯云 CVM 上自建)
腾讯云 KeeWiDB
-
第三方云厂商 Redis
腾讯云 KeeWiDB
-
腾讯云 Redis
腾讯云 KeeWiDB
腾讯云 Redis 与 KeeWiDB 实例之间迁移场景包括:
腾讯云同地域或不同地域间的迁移。
腾讯云同账号或跨账号之间的迁移。
兼容 Redis 协议不同版本之间的迁移。
集群架构之间的迁移。标准架构迁移至集群架构,迁移之前,请进行标准架构迁移集群架构检查
腾讯云 Tendis
腾讯云 KeeWiDB
腾讯云 Tendis 与 KeeWiDB 实例之间迁移场景包括:
腾讯云同地域或不同地域间的迁移。
腾讯云同账号或跨账号之间的迁移。
兼容 Redis 协议不同版本之间的迁移。
集群架构之间的迁移。

版本说明

迁移 KeeWiDB 场景,源数据库当前仅支持兼容 Redis 4.0 及以下的版本,其他版本,请 提交工单 进行申请。

约束限制

迁移过程中请勿进行如下操作,否则会导致迁移任务失败。
请勿修改、删除源数据库和目标数据库中用户信息(包括用户名、密码和权限)和端口号。
在数据迁移阶段,请勿删除目的端数据库。
在数据迁移阶段,请勿操作目的端数据,避免最终数据不一致。
源库中的数据库个数需要小于或等于目标库的数据库个数。
目标库的磁盘空间必须大于等于源库待迁移数据所占空间的2
目标端支持开启覆盖写入模式,若不开启,则目标端数据库需为空。
只允许迁移实例状态为运行中的实例,未初始化密码或者有其他任务在执行中的实例,不能迁移。
源库必须为 Slave 节点,否则校验项会报警告。可根据主节点的业务情况消除告警再进行迁移。
云数据库 KeeWiDB 的字符串长度不能超过16MB,该限制既针对 String 类型的 Key 和 Value,也包含 Hash、Set、Zset、List 等复合数据结构中的每一个元素。否则,迁移过程中将会报错,请在迁移之前进行自检。

迁移前准备

确认源端与目标端数据库实例状态是否正常。
确认源端网络环境接入类型是否互通。
DTS 迁移服务支持多种常见的网络类型,包括公网、CVM 自建、专线接入、VPN 接入、云联网。
公网:源数据库可以通过公网 IP 访问。
云主机自建:源数据库部署在 腾讯云服务器 CVM 上。
专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。
VPN 接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。
云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。
确认磁盘空间:目标库的空间必须大于等于源库待迁移数据所占空间的 2 倍。
确认数据库个数:源库中的数据库个数需要小于或等于目标库的数据库个数。
目标端支持覆盖写入模式,需在迁移任务配置中进行开启,如果不开启,请排查目标端数据库是否为空。
源端为一主多从的单节点类型,请确认命令兼容性。具体信息,请参见 兼容性检查
检查源端是否存在大 Key。
在迁移过程中,大 Key 可能引起缓冲区 client-output-buffer-limit 溢出,导致迁移失败。
腾讯云数据库,请在控制台系统监控页面分析监控指标每秒大Value请求的次数进行判断。
非腾讯云数据库,请使用 rdbtools 分析 Redis 大 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 中的配置进行更新。
计费模式
仅支持按量计费
源实例类型
请根据您的源数据库类型选择,购买后不可修改。对于 KeeWIDB 迁移场景,可选择 Redis 或者 Tendis。
源实例地域
选择源数据库所属地域。如果源库为自建数据库,选择离自建数据库最近的一个地域即可。
目标实例类型
仅能选择 KeeWiDB
目标实例地域
选择目标数据库所属地域。
规格
当前仅支持 Xlarge
标签
给迁移任务设置标签键与标签值,便于通过标签高效管理任务。
任务名
创建后命名:创建任务之后,再设置任务名称。
立即命名:在下方输入框给迁移任务设置名称。
不支持除 - 之外的任意特殊符号。
支持小写字母、大写字母、汉字及数字。
长度限制请以控制台为准。
建议设置便于识别业务的名称。
协议条款
请务必勾选我已阅读并同意《云数据库服务条款》
数量
创建任务的数量,取值范围[1,10]。
链路配置费用
当前免费。
3. 返回数据迁移任务页面,在迁移任务列表,可查看任务状态及进度,等待任务创建完成。

步骤二:配置迁移任务

1. 在数据迁移列表中,找到已创建的迁移任务。
2. 在其操作列,单击配置。
3. 修改迁移任务配置向导的设置源和目标数据库页签,根据下表说明配置源库网络接入类型、主机地址、端口以及目标库的实例信息,并测试连通性,单击保存,如下图所示。



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

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

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

事件告警和指标监控

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