操作场景
基于 DTS 的 Redis 数据迁移,支持全量 + 增量数据的迁移,即迁移前源库的历史数据,和迁移过程中源库新增的写入数据可一并进行迁移。
本文介绍使用 DTS 数据迁移功能从 Redis 迁移数据至腾讯云数据库 Redis® 的操作指导。
准备工作
1. 请根据您需要使用的接入类型,提前打通 DTS 与数据库之间的访问通道,具体请参考 网络准备工作。
IDC 自建数据库/其他云厂商数据库:接入方式可选择“公网/专线接入/VPN 接入/云联网”。
外网实例迁移时,请确保源实例服务在外网环境下可访问,并且要保持外网连接的稳定性,当网络出现波动或者故障时会导致迁移失败,迁移一旦失败,就需要重新发起迁移任务。
CVM 上的自建数据库:接入方式选择“云主机自建”。
腾讯云数据库实例:接入方式选择“云数据库”。
2. 迁移前检查
如下检查需要用户在迁移前自行排查,否则可能会出现迁移失败。
2.1 检查源端是否存在大 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'
2.2 检查源端 Linux 内核 TCP 连接数的限制
如果业务并发请求比较大,迁移之前,请检查 Linux 内核对连接数的限制,如果业务请求连接数超出内核限制的连接数,Linux 服务器将会主动断开与 DTS 的连接。
echo "net.ipv4.tcp_max_syn_backlog=4096" >> /etc/sysctl.confecho "net.core.somaxconn=4096" >> /etc/sysctl.confecho "net.ipv4.tcp_abort_on_overflow=0" /etc/sysctl.confsysctl -p
2.3 检查源端 RDB 文件目录的访问权限
迁移之前,请务必检查源端存放 RDB 文件目录的访问权限是否为可读,否则将会因 RDB 文件不可读而引起迁移失败。
如果 RDB 文件所在目录不可读,请在源端执行如下命令,设置“无盘复制”,直接发送 RDB 文件给 DTS 落盘,而不需要保存在源端的磁盘再发送。
config set repl-diskless-sync yes
2.4 (可选)对于标准架构迁移到集群架构的场景,请检查命令兼容性问题。具体请参见 标准架构迁移集群架构检查 进行静态评估与动态评估。
操作步骤
步骤一:新建迁移任务
1. 登录 DTS 控制台,选择数据迁移页,然后在右侧单击新建迁移任务。
2. 在新建迁移任务页面,选择任务创建参数,然后单击立即购买。
配置参数 | 说明 |
服务类型 | 选择数据迁移。 |
创建模式 | 新建任务:新建一个全新的任务。 创建类似任务:快速创建一个和历史任务相同配置的任务,新的任务中数据库类型、接入方式、计费模式、迁移类型等默认填充的选项都和历史任务保持一致,用户如果需要也可根据情况进行修改。 |
计费模式 | 仅支持按量计费。 |
源实例类型 | 请根据您的源数据库类型选择,购买后不可修改。此处选择 Redis。 |
源实例地域 | 选择源数据库所属地域。如果源库为自建数据库,选择离自建数据库最近的一个地域即可。 |
目标实例类型 | 请根据您的目标数据库类型选择,购买后不可修改。此处选择 Redis。 |
目标实例地域 | 选择目标数据库所属地域。 |
版本 | 当前仅支持 NewDTS。 |
规格 | 当前仅支持 Xlarge 规格。 |
标签 | 给迁移任务设置标签键与标签值,便于通过标签高效管理多个任务。 |
任务名 | 选择创建后命名,默认任务名称与任务 ID 一致。在迁移任务创建完成之后,可重新设置任务名称。 选择立即命名,在下面输入框,输入任务名称。 |
协议条款 | |
数量 | 单次最多支持购买10个迁移任务。 |
3. 购买完成后,页面自动跳转到数据迁移任务列表。
步骤二:设置源和目标数据库
1. 在数据迁移任务列表中,找到刚才创建的任务,单击操作列的配置。
2. 进入设置源和目标数据库页签,填写源和目标数据库等信息,然后单击测试连通性,测试通过后,单击保存进入下一步。
说明:
源和目标库为腾讯云数据库 Redis® 的场景,输入的数据库账号需要为 root 账号/密码,其他账号在测试连通性时无法通过。
任务设置
配置参数 | 说明 |
任务名称 | 设置一个具有业务意义的名称,便于任务识别。 |
运行模式 | 立即执行:前置校验通过后会立即启动任务。 定时执行:设置一个任务开始执行的时间,前置校验通过后不启动任务,到设定的时间再启动。 |
自动重试 | 勾选后,迁移任务因网络异常等引起的任务中断,DTS 将在设置的时间范围内自动重试,不需要用户手动操作。
重试机制为,从头开始重新进行数据迁移,重新迁移时,之前已迁移到目标端的数据会被清空,或者会被覆盖。 |
源库设置
配置参数 | 说明 |
源库类型 | 购买时选择的源数据库类型,不可修改。 |
服务提供商 | 源库为 IDC 自建数据库、CVM 上的自建数据库、腾讯云数据库,请选择“普通”。 源库为阿里云、华为云等,请选择“普通”。 源库为 AWS,当前仅支持 AWS ElasticCache for Redis,其他 AWS 的 Redis 数据库暂不支持。根据 PSYNC 命令是否带前缀,选择不同。 PSYNC 命令带前缀,选择“AWS”。 PSYNC 命令不带前缀,选择“普通”。 |
所属地域 | 购买时选择的源数据库地域,不可修改。 |
接入类型 | 源库为 IDC 自建数据库/其他云厂商数据库,接入方式可选择“公网/专线接入/VPN 接入/云联网”。 公网:源数据库可以通过公网 IP 访问。 专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。 VPN 接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。 云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。 源库为 CVM 上的自建数据库,接入方式选择“云主机自建”。 源库为腾讯云数据库实例,接入方式选择“云数据库”。 |
节点类型 | 接入类型选择除“云数据库”之外的其他参数时显示该参数。请根据实际情况选择。 单节点迁移:指一主多副本的集群架构。 集群迁移:指由若干个分片,而每个分片上又存在若干个副本节点的集群架构。勾选集群迁移后,需要填写节点信息。 填写源库集群的所有分片节点地址和密码(IP:端口:密码 或 IP:端口),多个节点请换行处理。 源库为 AWS 时,需要填写 PSYNC 名称(IP:端口:PSYNC 名称:密码 或 IP:端口:PSYNC 名称),PSYNC 名称指 PSYNC 命令前缀,需要从 AWS 侧申请。如果 PSYNC 命令不带前缀,则需要将前面服务提供商参数选择为“普通”,按照普通集群迁移。 建议填写的地址为源库的副本节点(从节点),从副本节点迁移可以避免影响源库的业务访问。 |
公网 | 接入类型选择“公网”时,需要配置如下参数。 主机地址:源数据库 IP 地址或域名。 端口:源数据库使用的端口。 密码:源数据库迁移账号的密码。 |
云主机自建 | 接入类型选择“云主机自建”时,需要配置如下参数。 云主机实例:云服务器 CVM 的实例 ID。 端口:源数据库使用的端口。 密码:源数据库迁移账号的密码。 |
专线接入 | 接入类型选择“专线接入”时,需要配置如下参数。 私有网络专线网关:专线接入时只支持私有网络专线网关,请确认网关关联网络类型。 私有网络:选择私有网络和子网。 主机地址:源数据库 IP 地址。 端口:源数据库使用的端口。 密码:源数据库迁移账号的密码。 |
VPN 接入 | 接入类型选择“VPN 接入”时,需要配置如下参数。 VPN 网关:VPN 网关,请选择打通源库网络所对应的 VPN 网关实例。 私有网络:选择私有网络和子网。 主机地址:源数据库 IP 地址。 端口:源数据库使用的端口。 密码:源数据库迁移账号的密码。 |
云数据库 | 接入类型选择“云数据库”时,需要配置如下参数。 是否跨账号 本账号:源数据库实例和目标数据库实例所属的主账号为同一个腾讯云账号。 跨账号:源数据库实例和目标数据库实例所属的主账号为不同的腾讯云账号。详细的跨账号操作指导请参见 云数据库跨账号实例间迁移。 云数据库实例:选择源数据库的实例 ID。 密码:源数据库迁移账号的密码。 |
云联网 | 接入类型选择“云联网”时,需要配置如下参数。 主机所在网络环境:请根据实际情况选择。 源库为腾讯云数据库实例,选择“腾讯云”;源库为 IDC 自建数据库,选择“自建 IDC”;源库为其他云厂商数据库,则选择对应的网络。 主机地址:源数据库的主机 IP 地址。 端口:源数据库使用的端口。 密码:源数据库迁移账号的密码。 云联网实例所属账号 我的账号:云联网资源和 DTS 归属同一个腾讯云主账号。 其他账号:云联网资源和 DTS 归属不同的腾讯云主账号。 私有网络云联网:云联网实例名称。 接入 VPC:选择接入 VPC 及子网。接入 VPC 指的是云联网中接入 DTS 迁移链路的 VPC。请在云联网关联的所有 VPC 中,选择除了源数据库所属 VPC 外的其他 VPC。 接入 VPC 地域:购买任务时选择的源数据库地域与接入 VPC 地域需要保持一致,如果不一致,DTS 会将购买任务中选择的源数据库地域,改为接入 VPC 地域。 |
目标库设置
目标库参数设置与源库类似,如下仅对差异点进行描述。
配置参数 | 说明 |
接入类型 | 根据您的场景选择。不同接入类型的配置原则与源库类似。 支持下云迁移,当源数据库接入类型选择“云数据库”时,目标库可选择“公网/云主机自建/专线接入/VPN 接入/云联网”。 |
节点类型 | 接入类型选择除“云数据库”之外的其他参数时显示该参数。 请根据目标库的实际情况选择,支持选择“单节点迁移”、“Redis Cluster 迁移”、“代理集群迁移”。 |
步骤三:设置迁移选项和选择迁移对象
在设置迁移选项及迁移对象页签,配置参数后,单击下一步。
基础选项
配置项 | 说明 |
迁移类型 | 默认选择全量 + 增量迁移,不可修改。全量+增量迁移表示迁移前源库的历史数据,和迁移过程中源库新增的写入数据都一起迁移。 |
迁移对象 | 默认选择整个实例,不可修改。 |
目标库写入模式 | 清空目标实例:源库数据同步到目标库时,目标库已有的数据会被清空,然后重新写入。 覆盖写:源库数据同步到目标库时,用源库的 Key 来覆盖目标库的 Key。 |
启用目标库读写 | 允许 DTS 或者其他服务向目标库写入数据。 |
过期 Key 自动淘汰 | 勾选后目标库上对过期的 Key 自动淘汰,可能会出现源库和目标库的数据结果不一致,请慎重操作。 |
高级选项
配置项 | 说明 |
限制数据传输速率 | 一般不需要设置,如果 DTS 的传输速率对目标库造成负载影响,则可设置限速。 目标库分片数:目标库为腾讯云数据库实例时,自动获取实例分片数,不支持修改。 目标库单分片流量限制:填写单分片流量限制,设置范围为0-100MB/s。 如果目标实例为集群架构,则单实例每秒传输的最大流量=分片数*单分片流量限制(MB/s) |
步骤四:校验和启动任务
1. 在校验任务页面,系统自动进行前置校验,校验通过后,单击启动任务,会立即启动数据迁移(如果在配置任务时设置了定时执行时间,这里也可选择稍后启动,任务将在设置的时间点启动)。
说明:
校验结果为失败:表示校验项检查未通过,任务阻断,需要修复问题后重新执行校验任务。
校验结果为警告:表示检验项检查不完全符合要求,可以继续任务,但对业务有一定的影响,用户需要根据提示自行评估是忽略警告项还是修复问题再继续。
2. 返回数据迁移任务列表,任务进入准备运行状态,运行1分钟 - 2分钟后,数据迁移任务开始正式启动。
步骤五:结束任务
1. 如果您需要进行查看任务进度详情、删除任务等操作,请在操作列单击对应的按钮,详情可参考 任务管理。
2. 当任务状态为“准备完成”,表示增量同步已完成,用户可以结束任务。在操作列单击完成,结束迁移任务。
建议在目标与源库的数据差距为0KB、目标与源库时间差距为0秒时,再结束任务。
如果您需要在迁移完成后对业务进行割接,请参考 割接说明。