一、准备工作
1. 请根据你需要使用的接入类型,提前打通 DTS 与数据库之间的访问通道,具体请参考 网络准备工作。
·IDC 自建数据库/其他云厂商数据库:接入方式可选择“公网/专线接入/VPN 接入/云联网”。
外网实例迁移时,请确保源实例服务在外网环境下可访问,并且要保持外网连接的稳定性,当网络出现波动或者故障时会导致迁移失败,迁移一旦失败,就需要重新发起迁移任务。
·CVM 上的自建数据库:接入方式选择“云服务器自建”。
·腾讯云数据库实例:接入方式选择“云数据库”。
2. 迁移前检查
如下检查需要用户在迁移前自行排查,否则可能会出现迁移失败。
2.1 检查源端是否存在大 Key
在迁移过程中,大 Key 可能引起缓冲区 client-output-buffer-limit 溢出,导致迁移失败。
·腾讯云数据库,请使用数据库智能管家(TencentDB for DBbrain,DBbrain)的诊断优化功能快速分析大 Key。具体操作,请参见 内存分析(大 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. 在新建迁移任务页面,选择任务创建参数,然后单击立即购买。
| 配置参数 | 说明 |
| 服务类型 | 选择数据迁移。 |
| 创建模式 | 新建任务:新建一个全新的任务。创建类似任务:快速创建一个和历史任务相同配置的任务,新的任务中数据库类型、接入方式、计费模式、迁移类型等默认填充的选项都和历史任务保持一致,用户如果需要也可根据情况进行修改。 |
| 计费模式 | 仅支持按量计费。 |
| 源实例类型 | 请根据你的源数据库类型选择,购买后不可修改。此处选择 Distributed Cache。 |
| 源实例地域 | 选择源数据库所属地域。如果源库为自建数据库,选择离自建数据库最近的一个地域即可。 |
| 目标实例类型 | 请根据你的目标数据库类型选择,购买后不可修改。此处选择 Distributed Cache。 |
| 目标实例地域 | 选择目标数据库所属地域。 |
| 版本 | 当前仅支持 NewDTS。 |
| 规格 | 当前仅支持 Xlarge 规格。 |
| 标签 | 给迁移任务设置标签键与标签值,便于通过标签高效管理多个任务。 |
| 任务名 | 选择创建后命名,默认任务名称与任务 ID 一致。在迁移任务创建完成之后,可重新设置任务名称。选择立即命名,在下面输入框,输入任务名称。 |
| 协议条款 | 请务必勾选 我已阅读并同意 《云数据库服务条款》。 |
| 数量 | 单次最多支持购买10个迁移任务。 |
3. 购买完成后,页面自动跳转到数据迁移任务列表。
三、步骤二:设置源和目标数据库
1. 在数据迁移任务列表中,找到刚才创建的任务,单击操作列的配置。
2. 进入设置源和目标数据库页签,填写源和目标数据库等信息,然后单击测试连通性,测试通过后,单击保存进入下一步。
·任务设置
| 配置参数 | 说明 |
| 任务名称 | 设置一个具有业务意义的名称,便于任务识别。 |
| 运行模式 | 立即执行:前置校验通过后会立即启动任务。定时执行:设置一个任务开始执行的时间,前置校验通过后不启动任务,到设定的时间再启动。 |
| 自动重试 | 勾选后,迁移任务因网络异常等引起的任务中断,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 网关实例。私有网络:选择私有网络和子网。主机地址:源数据库 IP 地址。端口:源数据库使用的端口。密码:源数据库迁移账号的密码。 |
| 云数据库 | 接入类型选择“云数据库”时,需要配置如下参数。是否跨账号本账号:源数据库实例和目标数据库实例所属的主账号为同一个腾讯云账号。跨账号:源数据库实例和目标数据库实例所属的主账号为不同的腾讯云账号。详细的跨账号操作指导请参见 云数据库跨账号实例间迁移。云数据库实例:选择源数据库的实例 ID。密码:请输入账号和密码,默认账号仅需密码。说明:腾讯云分布式缓存数据库支持自定义账号,请输入自定义账号连接参数。默认分隔符为@,格式为:账号@密码(例如,user@password)。用户也可以在腾讯云分布式缓存数据库控制台上将分隔符修改为其他字符(例如,user:password),DTS 侧会与腾讯云分布式缓存数据库保持一致,按实际配置的分隔符格式输入即可。 |
| 云联网 | 接入类型选择“云联网”时,需要配置如下参数。云联网接入时,支持同账号云联网和跨账号云联网,因网络打通配置较多,请参考 通过云联网方式迁移自建数据库至腾讯云数据库。主机所在网络环境:请根据实际情况选择。源库为腾讯云数据库实例,选择“腾讯云”;源库为 IDC 自建数据库,选择“自建 IDC”;源库为其他云厂商数据库,则选择对应的网络。主机地址:源数据库的主机 IP 地址。端口:源数据库使用的端口。密码:源数据库迁移账号的密码。云联网实例所属账号我的账号:云联网资源和 DTS 归属同一个腾讯云主账号。其他账号:云联网资源和 DTS 归属不同的腾讯云主账号。私有网络云联网:云联网实例名称。接入 VPC:选择接入 VPC 及子网。接入 VPC 指的是云联网中接入 DTS 迁移链路的 VPC。请在云联网关联的所有 VPC 中,选择除了源数据库所属 VPC 外的其他 VPC。接入 VPC 地域:购买任务时选择的源数据库地域与接入 VPC 地域需要保持一致,如果不一致,DTS 会将购买任务中选择的源数据库地域,改为接入 VPC 地域。 |
| 连接方式 | SSL 安全连接指 DTS 与数据库通过 SSL(Secure Sockets Layer)安全连接,对传输链路进行加密。选择 SSL 安全连接可能会增加数据库的连接响应时间,一般腾讯云内网链路相对较安全,无需开启 SSL 安全连接,采用公网/专线等传输方式,并且对数据安全要求较高的场景,需要开启 SSL 安全连接。选择 SSL 安全连接前,需要先在数据库中开启 SSL 加密。 |
·目标库设置
目标库参数设置与源库类似,如下仅对差异点进行描述。
| 配置参数 | 说明 |
| 接入类型 | 根据你的场景选择。不同接入类型的配置原则与源库类似。说明:支持下云迁移,当源数据库接入类型选择“云数据库”时,目标库可选择“公网/云服务器自建/专线接入/VPN 接入/云联网”。 |
| 节点类型 | 接入类型选择除“云数据库”之外的其他参数时显示该参数。请根据目标库的实际情况选择,支持选择“单节点迁移”、“Redis Cluster 迁移”、“代理集群迁移”。 |
四、步骤三:设置迁移选项和选择迁移对象
在设置迁移选项及迁移对象页签,配置参数后,单击下一步。
·基础选项
| 配置项 | 说明 |
| 迁移类型 | 默认选择全量 + 增量迁移,不可修改。全量+增量迁移表示迁移前源库的历史数据,和迁移过程中源库新增的写入数据都一起迁移。 |
| 迁移对象 | 默认选择整个实例,不可修改。 |
| 启用 key 过滤 | 多 key 命令可以设置前缀过滤规则,详情请参考 Key 前缀过滤。 |
| 目标库写入模式 | 清空目标实例:源库数据同步到目标库时,目标库已有的数据会被清空,然后重新写入。覆盖写:源库数据同步到目标库时,用源库的 Key 来覆盖目标库的 Key。对于迁移下云的场景,如果 DTS 任务配置中没有选择“覆盖写”,则在目标端有数据时会触发前置检查无法通过,自动重试会失效。 |
| 启用目标库读写 | 允许 DTS 或者其他服务向目标库写入数据。Redis 迁移场景需要开启目标库读写。 |
| 过期 Key 自动淘汰 | 1. 勾选后目标库上对过期的 Key 自动淘汰,可以节省目标库的空间,但勾选后可能会出现源库和目标库的数据结果不一致,请慎重操作。2. 正常情况下,目标端本身会设置过期 Key 自动淘汰,用户如果需要保证源和目标的数据结果一致性,在 DTS 任务配置中不勾选“过期 Key 自动淘汰”,则目标端上过期 Key 不会淘汰。在结束 DTS 任务后,这里的配置会还原,目标库上过期 Key 仍会自动淘汰。3. Redis 迁移场景需要开启目标库读写,如果用户需要迁移源库的 SET NX 命令(键不存在时才执行),建议开启过期 Key 自动淘汰,否则 DTS 向目标库写入 SET NX 命令时,可能会因为目标库上存在过期的 key,导致迁移任务报错。 |
·高级选项
| 配置项 | 说明 |
| 限制数据传输速率 | 一般不需要设置,如果 DTS 的传输速率对目标库造成负载影响,则可设置限速。目标库分片数:目标库为腾讯云数据库实例时,自动获取实例分片数,不支持修改。目标库单分片流量限制:填写单分片流量限制,设置范围为0-100MB/s。如果目标实例为集群架构,则单实例每秒传输的最大流量=分片数*单分片流量限制(MB/s) |
五、步骤四:设置一致性校验
数据一致性校验,即 DTS 对数据同步的源库和目标库的表数据进行对比,并给出对比结果和不一致详情,辅助用户快速对同步结果进行验证。
在设置一致性校验页面,勾选开启数据一致性校验,配置参数后,单击下一步。
注意:说明:
注意:如果无需开启数据一致性校验,则不勾选开启数据一致性校验,单击下一步。
·校验选项
| 配置项 | 说明 |
| 校验内容 | 全量校验:对源库选择迁移的所有对象数据逐条对比,确保迁移数据完整性。 |
| 校验基准 | 源端:使用源端的数据作为校验基准。 |
| 校验模式 | 对比 Key + Value:校验所有数据是否一致。只对比 Key :只校验 Key 是否存在。对比 Value 长度:只校验 Value 的长度是否相同。对比 Value:对于长度超过 1000 的 Key 只对比长度,不对比内容。 |
·校验参数配置
| 配置项 | 说明 |
| 校验 QPS | 设置校验的每秒查询速率(即 QPS)。QPS 为单个分片的校验上限,限制校验的每秒查询速率,为 0 代表不限制。 |
| 复检次数 | 设置复检次数。如果在第一次全量数据校验结果为不一致时,后台会对全量校验的不一致数据,发起校验。 |
| 复检时间间隔 | 设置复检时间间隔。 |
·校验对象选项
| 配置项 | 说明 |
| 校验对象 | 全部迁移对象:校验范围为迁移任务勾选的全部对象。 |
六、步骤五:校验和启动任务
1. 在校验任务页面,系统自动进行前置校验,校验通过后,单击立即启动,会立即启动数据迁移(如果在配置任务时设置了定时执行时间,这里也可选择稍后启动,任务将在设置的时间点启动)。
注意:说明:
注意:如果出现校验结果失败, 请参考 前置校验项不通过处理。
·校验结果为失败:表示校验项检查未通过,任务阻断,需要修复问题后重新执行校验任务。
·校验结果为警告:表示校验项检查不完全符合要求,可以继续任务,但对业务有一定的影响,用户需要根据提示自行评估是忽略警告项还是修复问题再继续。
2. 在弹出的启动迁移任务对话框中,单击确定。
3. 返回数据迁移任务列表,任务进入准备运行状态,运行1分钟 ~ 2分钟后,数据迁移任务开始正式启动。
七、步骤六:结束任务
1. 如果你需要进行查看任务进度详情、删除任务等操作,请在操作列单击对应的按钮,详情可参考 任务管理。
2. 当任务状态为“准备完成”,表示增量同步已完成,用户可以结束任务。在操作列单击完成,结束迁移任务。
·建议在目标与源库的数据差距为0KB、目标与源库时间差距为0秒时,再结束任务。
·建议在结束任务前,进行一次一致性数据校验,确保对比结果一致,再结束任务。
注意:说明:
注意:建议进行全量数据校验或重要业务数据校验,优先选择完整校验,数据量大时可以结合业务情况选择抽样校验。
·如果你需要在迁移完成后对业务进行割接,请参考 割接说明。