有奖:语音产品征文挑战赛火热进行中> HOT

基本信息

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

适用场景

适合通过 DTS 进行数据迁移的源端与目标端数据库形态如下表所示。
源端
目标端
说明
自建数据库 Redis(IDC 自建、腾讯云 CVM 上自建)
腾讯云 Redis、腾讯云 KeeWiDB
迁移至腾讯云 KeeWiDB ,请参见 数据迁移
腾讯云 Redis
自建数据库 Redis(IDC 自建、腾讯云 CVM 上自建)
-
第三方云厂商 Redis
腾讯云 Redis、腾讯云 KeeWiDB
迁移至腾讯云 KeeWiDB ,请参见 数据迁移
腾讯云 Redis
腾讯云 Redis、腾讯云 KeeWiDB
腾讯云 Redis 实例之间迁移场景包括:
腾讯云 Redis 不同地域间迁移
腾讯云 Redis 同地域间迁移
腾讯云 Redis 跨版本迁移
跨腾讯云账号迁移
腾讯云标准架构迁移至集群架构,或集群架构迁移至标准架构。集群架构数据是分布式存储,与标准架构存在命令兼容性问题。迁移之前,请进行 标准架构迁移集群架构检查
从其他类型数据库
腾讯云 Redis
Codis 迁移至腾讯云 Redis。
腾讯自研 istore 迁移至腾讯云 Redis。
AWS 迁移至腾讯云 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。具体操作,请参见 如何使用 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. 修改迁移任务配置向导的设置源和目标数据库页签,根据下表说明配置源库网络接入类型、主机地址、端口以及目标库的实例信息,并测试连通性,单击保存,如下图所示。



配置类别
配置项
说明
任务设置
任务名称
新建迁移任务时已设置任务名称,此配置项便默认为已创建的名称。
新建任务时,未配置任务名称,请在输入框设置便于识别的任务名称。
不支持除 - 之外的任意特殊符号。
支持小写字母、大写字母、汉字及数字。
长度限制请以控制台为准。
运行模式
选择任务运行模式,支持选择立即执行定时执行
立即执行:配置完迁移任务之后,立即运行。
定时执行:可设置具体的执行时间,将在设定的执行时间开始运行。建议选择此种方式。
配置迁移任务之后,支持在执行时间之前修改定时执行时间。
迁移任务设置定时执行时间之后,而又需在定时时间之前立即运行任务,可在迁移任务列表操作列,单击立即启动
源库设置
源库类型
购买时选择的源数据库类型,不可修改。
服务提供商
普通:源库为 IDC 自建数据库、CVM 上的自建数据库、腾讯云数据库、华为云、阿里云等,请选择“普通”。
AWS:源库为 AWS,选择“AWS”。
数据库版本
当服务提供商选择 AWS 时,需指定 AWS 的版本。当前仅支持 ElastiCache for Redis 4.0、5.0、6.0 版本,其他版本和其他 AWS 的 Redis 数据库暂不支持。
所属地域
购买时选择的地域,不可修改。
接入类型
选择源库接入的网络类型。对于第三方云厂商数据库,一般可以选择公网方式,也可以选择 VPN 接入、专线或者云联网的方式,请根据实际的网络情况选择。
公网:源数据库可以通过公网 IP 访问。
云主机自建:源数据库部署在 腾讯云服务器 CVM 上。
专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。
VPN接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。
云数据库:源数据库属于腾讯云数据库实例。
云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。
节点类型
选择源库集群部署类型,支持选择单节点迁移集群迁移
单节点迁移:指一主多副本的集群架构。
集群迁移:指由若干个分片,而每个分片上又存在若干个副本节点的集群架构。
主机地址
节点类型选择单节点迁移时,显示该参数。请在输入框填写源库的主机副本节点的 IP 地址。
端口
节点类型选择单节点迁移时,显示该参数。请在输入框填写源库的端口。
PSYNC 名称
PSYNC 命令前缀,需从 AWS 申请。
密码
节点类型选择单节点迁移时,显示该参数。请在输入框填写源库访问密码。
节点信息
节点类型选择集群迁移时,显示该参数。
填写源库集群的所有分片节点地址和密码(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 迁移常见错误提示信息
DTS迁移过程中,常见问题,请参见 使用 DTS 迁移常见咨询问题