在业务搬迁的场景中,本地数据库迁移至云上后,需进行切流将业务割接到云上,为避免业务切流后云上的数据库出现异常,建议使用 DTS 数据迁移功能配置反向迁移链路,当业务出现异常时您可将业务立即切换到本地自建数据库。本文以本地自建 MySQL 数据库实例和火山引擎云数据库 MySQL 版为例,介绍如何通过 DTS 实现将本地数据迁移上云、业务切换、数据回迁和业务回退等操作步骤。
已将本地自建数据库和火山引擎的私有网络打通,根据实际情况按需选择配置方式:
在使用 VPN 实现数据迁移时,自建数据库所属的本地网络已通过 VPN 网关接入火山引擎。详细操作,请参见搭建云上 VPC 与云下多数据中心网络互通。
在需要使用专线实现数据迁移时,您需要搭建云上单私有网络和云下单数据中心网络连通的专线连接。详细操作,请参见配置专线连接。
已创建云数据库 MySQL 版实例和数据库,用于将本地自建数据迁移到云上。详细信息,请参见创建 RDS MySQL 实例和创建数据库。
当数据库实例的接入方式选择的是专有网络时,且数据库实例开启了访问限制,那么在创建数据库传输任务前,您需要将子网网段添加至数据库实例的白名单或安全组中。华南1(广州)子网网段是 172.31.0.0/20
,华北2(上海)和华北2(北京)子网网段是 192.168.3.0/24
,亚太东南(柔佛)子网网段是 192.168.0.0/24
,中国香港的子网网段是 192.168.0.0/24
。更多信息,请参见添加 DTS 服务器的 IP 地址段。
源端和目标端所属的服务器需确保具备足够出口带宽,否则将影响数据迁移的速率。
正向迁移、反向迁移,是两个独立的单向迁移任务,每个独立任务的约束、操作限制等要求都需要满足迁移任务的基本要求,在进行数据迁移过程中的注意事项,请参见创建专有网络 MySQL 迁移到云数据库 MySQL 版、创建云数据库 MySQL 版迁移到专有网络 MySQL。
在全量迁移过程中,目标数据库会产生大量 Binlog 文件,因此导致目标库的磁盘使用量远远大于原实例的磁盘使用量。建议您在全量迁移前,修改目标数据库 Binlog 的保存策略。
启动反向迁移任务前,必须先暂停正向迁移任务,否则可能会出现数据回环的情况。
由于执行业务切换操作需要停止数据库写入并暂停业务,建议在业务低峰期操作以降低业务影响。
数据库 | 结构迁移 | 全量迁移 | 增量迁移 |
---|---|---|---|
源端 | SELECT 权限 | SELECT 权限 | REPLICATION SLAVE 、REPLICATION CLIENT 和 SELECT 权限。 |
目标端 | SELECT 权限 | SELECT 权限 | REPLICATION SLAVE 、REPLICATION CLIENT 和 SELECT 权限。 |
在业务搬迁的场景中,本地数据库迁移至云上后,需进行业务切换,为避免业务切换后云上的数据库出现异常,建议使用 DTS 数据迁移功能配置反向迁移链路,当业务出现异常时您可将业务立即切换到本地数据库,主要流程如下所示:
创建并启动正向迁移任务
正向任务选择结构迁移 + 全量迁移 + 增量迁移,将本地自建数据库迁移至云上数据库中。
创建反向迁移任务,但不启动
反向任务选择增量迁移,创建但不启动任务,避免出现数据回环。
业务切换至云上数据库
暂停源端本地自建数据库的业务写入,并将业务切换至云上数据库。
暂停正向迁移任务,启动反向迁移任务
将目标端云上数据库产生的增量数据迁移至本地自建数据库,为业务提供回退方案。
(可选)业务回退
如果云上业务出现异常,您可以将业务切换至本地自建数据库。
登录 DTS 控制台。
在顶部菜单栏,选择项目和地域。
在左侧导航栏,单击数据迁移。
在迁移任务列表页面,单击创建任务。
在创建迁移任务页面的配置源库及目标库配置向导页面,配置以下参数信息。
类别 | 参数 | 说明 |
---|---|---|
无 | 任务名称 | (可选)自定义迁移任务名称。命名规则如下:
|
链路规格 | 按需选择迁移任务的链路规格,当前支持 Compact 和 Standard。 说明 成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格。 | |
源库配置 | 选择已有数据源 | 您可以按需选择是否使用已录入的实例:
|
实例类型 | 选择 MySQL。 | |
接入方式 | 选择专有网络 MySQL。 | |
地域 | 选择私有网络所属地域。 | |
主机地址 | 输入专有网络 MySQL 实例的主机地址。 | |
端口 | 输入专有网络 MySQL 实例的端口。 | |
私有网络 | 从下拉列表中选择目标私有网络,具体如下所示:
| |
子网 | 从下拉列表中选择私有网络中的子网。 说明 在迁移专有网络 MySQL 实例时,您需要提前在源端的白名单或安全组策略中,添加子网 IP 段的访问权限。单击查看子网 IP 段查看和复制 IP 段。 | |
数据库账号 | 输入目标实例的数据库账号。 | |
数据库密码 | 输入目标实例数据库账号对应的密码。 | |
测试链接 | 单击测试链接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
| |
目标库配置 | 选择已有数据源 | 您可以按需选择是否使用已录入的实例:
|
实例类型 | 选择 MySQL。 | |
接入方式 | 选择火山引擎版 MySQL。 | |
地域 | 选择目标实例所属地域。 | |
MySQL 实例 | 在下拉列表中选择云数据库版 MySQL 的目标实例。 说明 下拉列表中仅展示前 10 个实例。您也可以通过实例 ID 或名称搜索目标实例。 | |
数据库账号 | 输入目标实例的数据库账号。 | |
数据库密码 | 输入目标实例数据库账号对应的密码。 | |
测试链接 | 单击测试链接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
| |
无 | 项目 | (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目。 |
标签 | (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:
说明
| |
计费方式 | 当前仅支持按量计费,您无需选择。 说明 关于计费的详细信息,请参见计费说明。 |
单击下一步:配置迁移对象。
在配置迁移对象配置向导页面,配置相关参数信息,如下表所示。
参数 | 说明 |
---|---|
迁移类型 | 勾选结构迁移、全量迁移和增量迁移。 说明 若需要进行用户迁移,用户和权限的迁移需要单独处理。当出现源数据库部分账号不支持迁移时,需先确保业务不受这些账号的缺失而影响运行。 |
迁移用户 | 按需勾选目标账号,在目标账号的新密码(选填) 列设置新密码。当需迁移多个用户时,可单击批量修改密码,统一修改需要迁移的账号密码,若不修改则目标库账号密码和源库密码一致。 说明 当迁移类型选择用户迁移时,支持此配置。 |
迁移起始点 | 设置从某个指定位点或时间点拉取 Binlog 日志,取值如下:
说明
|
是否开启外键检查 | 按需选择是否开启外键检查,开启外键检查后,支持迁移源库的外键级联更新、删除等操作,从而保证数据迁移的完整性和一致性。 |
迁移对象 | 在迁移对象区域中勾选需要迁移的对象,支持通过普通搜索和全局搜索方式查询目标对象。同时,您可以在已选择对象区域中实现以下操作:
说明
|
过滤条件 | (可选)在开启过滤条件时,可以在全量数据扫描阶段即开始过滤数据,进而提高迁移性能,您可以在目标库、表或视图的过滤条件列,单击笔状图标,设置过滤条件,然后单击校验语句,验证是否满足过滤条件。 说明
|
错误重试时间 | 在迁移任务中,当源端和目标端断连后导致迁移任务失败时,会立即在指定时间内多次重试连接源端和目标端。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。 |
全量迁移速率 | 按需设置全量迁移速率。防止在迁移速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整以下参数:
说明
|
单击预检查。
(可选)当创建的任务已有预检查时,您可以根据以下提示确认是否重新发起预检查,当需要重新发起预检查时,请在是否重新发起预检查对话框,单击确定。
若源端和目标端的数据库实例未做修改,则无需再次发起预检查。
如果修改了源端、目标端的数据库实例信息或迁移任务的参数配置,那么建议您重新发起预检查,否则可能会导致任务启动失败或者任务中断。
在预检查配置向导页面,根据检查结果执行以下操作:
单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试。
单击操作列的忽略,忽略本次告警继续启动迁移任务。同时,也可以单击忽略全部,一键忽略全部告警信息。
说明
选择忽略告警并启动迁移任务,可能导致数据不一致,带来业务风险。
关于预检查的具体说明,请参见预检查项。
在预检查页面右下角,单击确认订单。
在确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务。
成功创建数据迁移任务后,您可以返回数据库传输服务 DTS 控制台,在数据迁移任务列表查看数据迁移任务的信息。更多信息,请参见查看迁移任务。
反向迁移任务的作用是为业务提供回退方案。业务恢复运行后,当数据出现异常时您可将业务立即切换至原本地自建数据库中。
说明
反向迁移任务的迁移类型只需要选择增量迁移即可。您可以根据以下指导创建反向迁移任务,但不启动反向迁移任务。
登录 DTS 控制台。
在顶部菜单栏,选择项目和地域。
在左侧导航栏,单击数据迁移。
在迁移任务列表页面,单击创建任务。
在创建迁移任务页面的配置源库及目标库配置向导页面,配置以下参数信息。
类别 | 参数 | 说明 |
---|---|---|
无 | 任务名称 | (可选)自定义迁移任务名称。命名规则如下:
|
链路规格 | 按需选择迁移任务的链路规格,当前支持 Compact 和 Standard。 说明 成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格。 | |
源库配置 | 选择已有数据源 | 您可以按需选择是否使用已录入的实例:
|
接入方式 | 选择火山引擎版 MySQL。 | |
地域 | 选择目标实例所属地域。 | |
是否跨火山引擎账号 | 按需选择是否跨账号传输数据,取值如下:
说明
| |
跨账号 ID | 输入源库所属的火山引擎账号 ID。 | |
跨账号角色 | 输入已授权 DTS 访问跨账号资源的 IAM 角色。 | |
MySQL 实例 | 在下拉列表中选择云数据库版 MySQL 的目标实例。 说明 您也可以通过实例 ID 或名称搜索目标实例。 | |
节点类型 | 按需选择节点类型,当前支持选择主节点和只读节点。 说明 当实例内创建了只读节点时,支持选择只读节点。关于创建只读节点的详细操作,请参见只读节点概述。 | |
MySQL 只读节点 | 从下拉列表中选择目标只读节点。 说明 在实例中创建了只读节点,且节点类型选择只读节点时,支持配置此参数。 | |
数据库账号 | 输入目标实例的数据库账号。 | |
数据库密码 | 输入目标实例数据库账号对应的密码。 | |
测试链接 | 单击测试链接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
| |
目标库配置 | 选择已有数据源 | 您可以按需选择是否使用已录入的实例:
|
实例类型 | 选择 MySQL。 | |
接入方式 | 选择专有网络 MySQL。 | |
地域 | 选择私有网络所属地域。 | |
主机地址 | 输入专有网络 MySQL 实例的主机地址。 | |
端口 | 输入专有网络 MySQL 实例的端口。 | |
私有网络 | 从下拉列表中选择目标私有网络,具体如下所示:
| |
子网 | 从下拉列表中选择私有网络中的子网。 说明 在迁移专有网络 MySQL 实例时,您需要提前在源端的白名单或安全组策略中,添加子网 IP 段的访问权限。单击查看子网 IP 段查看和复制 IP 段。 | |
数据库账号 | 输入目标实例的数据库账号。 | |
数据库密码 | 输入目标实例数据库账号对应的密码。 | |
测试链接 | 单击测试链接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
| |
无 | 项目 | (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目。 |
标签 | (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:
说明
| |
计费方式 | 当前仅支持按量计费,您无需选择。 说明 关于计费的详细信息,请参见计费说明。 |
单击下一步:配置迁移对象。
在配置迁移对象配置向导页面,配置相关参数信息,如下表所示。
参数 | 说明 |
---|---|
迁移类型 | 反向迁移任务仅需要将云上新增的数据迁移至本地数据库作为存储备份,因此您只需要选择增量迁移即可。 |
迁移起始点 | 设置从某个指定位点或时间点拉取 Binlog 日志,取值如下:
|
是否开启外键检查 | 按需选择是否开启外键检查,开启外键检查后,支持迁移源库的外键级联更新、删除等操作,从而保证数据迁移的完整性和一致性。 |
迁移对象 | 在迁移对象区域中勾选需要正向迁移任务中选择的对象,支持通过普通搜索和全局搜索方式查询目标对象。 |
错误重试时间 | 在迁移任务中,当源库和目标库断连后导致迁移任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。 |
单击保存。
注意
创建反向迁移任务,但不启动反向迁移任务时单击保存即可。
当正向任务完成全量迁移和结构迁移,进入增量迁移阶段后您可以根据以下配置完成业务切流操作。
show processlist;
(可选)切换业务前,您可以进行数据校验,验证源端和目标端数据是否一致。
您需要创建全量校验任务和结构校验任务,详细操作请参见创建数据校验任务。
业务切换至云上数据库。
暂停源端本地自建数据库的业务写入。
将业务切换至云上数据库。
暂停正向迁移任务。详细操作,请参见暂停迁移任务。
说明
当迁移任务处于已暂停时,请不要随意启动任务,否则可能会导致数据不一致。
启动反向迁移任务。详细操作,请参见启动迁移任务。
启动云上业务写入。
测试业务功能。
如果云上业务出现异常,您可以根据以下操作提示,降低数据迁移对业务的影响。
暂停业务,禁止新数据的写入。
切换业务至源端本地自建数据库。
恢复业务数据的写入。