DTS 搬站的实战心得

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 传统的数据迁移一直是比较头疼的话题,可能需要停机做mysqldump,或者通过一些程序抓取写入到目标库,但这些程序往往缺少一个大规模的使用量,容易出现数据不一致的情况。 另外就是异构场景,即使像Oracle这种商业数据库有EXPDP 这些工具,但是异构场景,就没有用武之地了。

传统的数据迁移一直是比较头疼的话题,可能需要停机做mysqldump,或者通过一些程序抓取写入到目标库,但这些程序往往缺少一个大规模的使用量,容易出现数据不一致的情况。

另外就是异构场景,即使像Oracle这种商业数据库有EXPDP 这些工具,但是异构场景,就没有用武之地了。

DTS 支持的迁移类型

数据源 结构迁移 全量迁移 增量迁移
Oracle->MySQL 支持 支持 支持
Oracle->RDS For PPAS 支持 支持 支持
Oracle->DRDS 不支持 支持 支持
Oracle->ADS 支持 支持 支持
Oracle->Oracle 支持 支持 支持
MySQL ->RDS For MySQL 支持 支持 支持
MySQL ->PostgreSQL 不支持 支持 支持
SQLServer->SQLServer 支持 支持 支持
PostgreSQL->PostgreSQL 支持 支持 支持
MongoDB -> MongoDB 支持 支持 支持
Redis -> Redis 支持 支持 支持
MySQL->DRDS 不支持 支持 支持
MySQL->PetaData 不支持 支持 支持
MySQL->OceanBase 支持 支持 支持
DB2->MySQL 支持 支持 支持

我们的DTS 主要分为 预检查、结构迁移、全量迁移、增量迁移几个阶段。

预检查,主要是检查连通性和账号权限,以及其他一些情况,比如是否有拓扑冲突。

结构迁移,主要是对表结构的DDL语句的迁移。 这里要注意下,增量迁移的过程目标实例最好不要用trigger,源库的触发器生成值,也会随binlog同步过来。

全量迁移,主要是基于SQL 查询,通过切片算法,分段把数据全量拉取过来。

如果需要增量更改的数据,那么就需要我们的增量迁移。 增量迁移是通过拉取源库的日志文件,如MySQL的binlog,sqlserver的LDF等,分析转储成适合目标实例的SQL语句,再增量并发写入到目标实例。

一、 云下机房上云迁移

https://help.aliyun.com/document_detail/26621.html?spm=a2c4g.11186623.6.601.cc2b3588wFTiPu

注意事项:

1) 权限

迁移类型 结构迁移 全量迁移 增量迁移
本地 MySQL 实例 select select super
select
replication slave
replication client
目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限

2) 源库的binlog格式

binlog_format = row

binlog_row_image=full

3) 映射关系

DTS 迁移不能更改迁移对象,所以配置的时候,要选好映射关系

二、 云下机房和云上实例同步

https://help.aliyun.com/document_detail/66730.html?spm=a2c4g.11186623.6.631.571d2b32sICq3v

注意事项

1) 同步必须是内网,所以需要有专线、智能网关、VPN等,正确配置网络路由

关于专线的配置可以参考这篇

https://help.aliyun.com/document_detail/58143.html?spm=a2c4g.11186623.6.616.ccb169a7r7zrhq

2) 同步的其他配置和迁移类似,但是同步初始化完成后,可以更改同步对象

注意的是,每次更改后,需要等到新加入的对象同步初始化完成,才能进行下一次更改

3) 同步还支持双向同步,极大满足云上测试的前提。

https://help.aliyun.com/document_detail/56776.html?spm=a2c4g.11186623.6.627.6472636abYrkHY

双向同步需要注意的是,冲突策略,默认是冲突以后会中断

三、 其他云厂商的迁移与同步

https://help.aliyun.com/document_detail/52555.html?spm=a2c4g.11186623.6.596.cc2b3588wFTiPu

AWS

https://help.aliyun.com/document_detail/52904.html?spm=a2c4g.11186623.6.597.4f814a512mVENC

腾讯

需要注意的是,确认下其他云厂商的MySQL账号权限, 以及binlog的开放情况,如果能买到专线,速度也会更进一步。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL 数据库
MySQL数据库DTS迁移上云
利用DTS数据迁移工具完成RDS实例间的数据迁移。
135 0
|
3月前
|
SQL JSON NoSQL
阿里云DTS踩坑经验分享系列|链路内ETL使用手册
DTS是一个数据迁移和同步服务,通常用于数据搬迁或实时数据传输。DTS在数据同步链路基础上,提供流式数据ETL数据处理功能,支持使用DSL(Domain Specific Language)脚本语言灵活地定义数据处理逻辑。
93084 3
|
11月前
|
存储 SQL 弹性计算
企业运维训练营之数据库原理与实践—RDS常见问题排除及DAS自动弹性伸缩—Q&A
企业运维训练营之数据库原理与实践—RDS常见问题排除及DAS自动弹性伸缩—Q&A
|
11月前
|
运维 关系型数据库 MySQL
企业运维训练营之数据库原理与实践—数据库DAS简介和备份上云方案—数据上云(下)
企业运维训练营之数据库原理与实践—数据库DAS简介和备份上云方案—数据上云(下)
|
11月前
|
SQL 安全 关系型数据库
自建MySQL数据库免费上云?手把手教你用阿里云数据传输服务DTS!
数据传输服务(Data Transmission Service,简称DTS)支持关系型数据库、NoSQL、大数据(OLAP)等数据源,集数据迁移、订阅及实时同步功能于一体,能够解决公共云、混合云场景下,远距离、秒级异步数据传输难题。其底层基础设施采用阿里双11异地多活架构,为数千下游应用提供实时数据流,已在线上稳定运行7年之久。
16376 2
自建MySQL数据库免费上云?手把手教你用阿里云数据传输服务DTS!
|
存储 资源调度 Cloud Native
阿里云数据迁移工具解决方案:华为云迁移到阿里云
阿里云数据迁移工具解决方案:华为云迁移到阿里云
阿里云数据迁移工具解决方案:华为云迁移到阿里云
|
SQL 数据采集 分布式计算
DTS 数据同步集成 MaxCompute 数仓最佳实践|学习笔记
快速学习 DTS 数据同步集成 MaxCompute 数仓最佳实践
465 0
|
机器学习/深度学习 关系型数据库 MySQL
DTS数据迁移使用体验
原来业务升级需要使用RDS数据库,原本在阿里云轻量服务器上保存的数据需要迁移到RDS,我原本估计的工作量是3天时间,没想到通过阿里云的DTS数据迁移工具只要了5个小时不到,完成了100万行数据的迁移,大大超出了我的预期。
DTS数据迁移使用体验
|
SQL 监控 关系型数据库
|
SQL 缓存 监控
DTS数据迁移 | 《DTS控制台入门一本通》第三章(下篇)
本章重点介绍DTS数据迁移的任务列表
2263 0
DTS数据迁移 | 《DTS控制台入门一本通》第三章(下篇)