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

功能概述

数据迁移功能指不同数据源之间的数据复制,它以整体数据库搬迁为目的,属于短期的一次性任务,迁移完成后用户一般会进行手动割接,将业务对接到新的数据库上。腾讯云 DTS 支持数据库不停机无锁迁移,可以最小化迁移过程引起的数据库停机对业务造成的影响。
腾讯云 DTS 支持源数据库为自建数据库、腾讯云数据库和第三方云厂商数据库等的迁移。
自建数据库迁移上云:将本地 IDC 自建数据库、CVM 上的自建数据库、轻量应用服务器上的轻量数据库等,迁移到腾讯云数据库。
腾讯云数据库跨实例间迁移:如数据库版本升级,跨地域迁移(包括国内国外跨地域),不同腾讯云账号下的数据库实例迁移等。
第三方厂商迁移:从其他云厂商(如阿里云、AWS 等)迁移到腾讯云。

实现原理

如下以 MySQL 为例进行介绍。数据迁移的过程如下:
?
1. 结构迁移:迁移源库的库、表结构数据,在目标库中创建与源库相同的库、表结构信息。
2. 全量数据迁移:将源库中除系统数据库表外的其他存量数据都迁移至目标数据库。全量数据迁移为一次性迁移,适用于迁移过程中源库无数据写入的场景。如果迁移过程中,源库有数据写入,则需要选择全量 + 增量迁移。
3. 增量数据迁移:全量数据迁移开始,DTS 对源库的 Binlog 接管也会启动,源库在全量迁移过程中发生的 SQL 操作会写入 Binlog 中,待全量迁移结束,DTS 根据 Binlog 解析,将全量迁移过程中产生的增量数据,再次回放并写入目标库中。
4. 迁移任务完成,进行数据一致性校验,对比目标库数据与源库迁移数据是否一致。

无锁逻辑说明

业内一般对 MySQL 进行“全量+增量”数据同步或者备份中,通常会在全量同步阶段对源库加全局锁(FTWRL)以获取增量同步开始的 Binlog 位点, 但加全局锁可能会影响源库业务,短暂(秒级)阻塞数据写入。
DTS 通过技术升级,实现了无锁迁移方式。这里的有锁、无锁都是针对全量迁移,其他非全量迁移的场景,不存在有锁、无锁机制。
在 MySQL/MariaDB/Percona/TDSQL-C MySQL/TDSQL MySQL/TDSQL TDStore 之间的迁移链路中,全量迁移阶段都使用无锁迁移,不需要对源库加全局锁(FTWRL),仅对无主键的表加表锁。

典型应用场景

数据迁移上云
DTS 提供的数据迁移仅需几步设置,即可帮助您完成数据从本地迁移上云的一系列繁琐工作。迁移过程并不影响源数据库继续对外提供服务,最小化上云过程对您业务的影响。
?

支持的迁移类型

DTS 支持如下三种迁移类型:
结构迁移:将源库中迁移对象的结构迁移至目标数据库。
全量迁移:将源库中除系统数据库表外的其他数据一次性迁移至目标数据库。全量迁移为一次性迁移,适用于源实例无数据写入的场景。
全量 + 增量迁移:先进行全量迁移,完成目标数据库的初始化,再进行增量迁移,通过解析日志等技术手段保持源库和目标库数据库的数据一致性。全量 + 增量迁移适用于源实例有数据写入的场景。
说明:
如果选择全量数据迁移,请勿在迁移过程中向源实例中写入新的数据,否则会导致源和目标数据不一致。针对有数据写入的场景,为实时保持数据一致性,建议选择全量 + 增量迁移。

支持的数据库类型

数据迁移支持的源库类型、目标库类型、版本、迁移类型详情请参考 数据迁移支持的数据库

支持的功能列表

支持功能
功能描述
相关文档
支持异构迁移、支持源库为第三方厂商的迁移
支持不同类型的数据库之间的迁移,如 MySQL 迁移到 TDSQL-C。第三方厂商目前支持阿里云和 AWS 数据的迁移。
支持跨账号迁移
支持不同腾讯云账号下的实例间数据迁移。
支持大部分数据库的跨版本迁移
目标库版本大于等于源库即可,如5.5.x 版本支持迁移到5.5.x、5.6.x 及更高版本,最后一位属于小版本,小版本不限制。
支持迁移账号(用户信息)
支持将源库中的账号信息迁移到目标库中。
支持迁移视图、高级对象
支持迁移视图、存储过程、函数、触发器和事件。
支持数据一致性校验
支持对源库和目标库的数据结果进行一致性检查。
支持任务进度可视化
支持显示迁移的步骤,迁移进度详情等数据。
支持指标监控和事件告警
支持对数据迁移的各项指标进行监控。
支持对数据迁移事件进行监控,事件异常时自动通知用户。
支持无锁迁移
无锁迁移指全量数据迁移阶段对源库不加全局锁(FTWRL),仅对无主键的表加表锁,其他不加锁。
-
支持库表映射功能
源库迁移到目标库的库表对象支持重新命名。
支持实例重启或者升级
增量迁移过程中,支持实例重启或者升级。
-
支持 HA 切换
支持源实例(开启 GTID 的前提下)和目标实例 HA 切换。
-
无 Super 权限要求
操作用户不需要具备源实例账号的 Super 权限(部分数据库已支持)。
-
支持迁移 Online DDL 临时表
使用 gh-ost、pt-osc 工具对源库中的表做 Online DDL,DTS 支持将 Online DDL 变更产生的临时表迁移到目标库。
支持暂停任务
任务启动后,如果源数据库连接数过多或者业务需要调整,用户可以选择暂停任务,等业务调整完成后继续迁移任务。
支持自动重试
迁移任务因网络异常等引起的任务临时中断,DTS 将在设置的时间范围内自动重试和恢复任务,不需要用户手动操作。
SSL 安全连接
DTS 与源/目标数据库之间的传输通道支持 SSL 安全连接,对传输通道进行加密。
-
支持 XA 事务
识别源库进行的 XA 事务操作,同步到目标端的数据是按照 XA 事务的逻辑进行解析。 如果源库发生了 XA 事务回滚(rollback),则源库上 rollback 及 rollback 之前的 SQL 语句不会再同步到目标端。
-
?


http://www.vxiaotou.com