SlideShare a Scribd company logo
1 of 34
Download to read offline
沪江去 Windows 实践 -
从 SQL Server 到 MySQL
@3D 2018-05-17
关于我 - 狄敬超
๏沪江技术中⼼心平台架构部
架构师
๏负责 去 Windows MySQL
数据库迁移 / Metrics 监
控报警 / OpenResty
based Gateway 等
๏曾任堆糖⽹网平台研发负责
⼈人,5 年年内经历了了 PV 从
万到亿的变化
⼤大纲
๏ 产⽣生背景和⾯面临的问题
๏ 全量量离线迁移
๏ 在线增量量迁移
产⽣生背景
๏ 沪江成⽴立于 2001 年年
๏ .net ⽣生态:成本、⼈人才、技术把控
๏ C# -> Java
๏ ASP.net -> Spring Boot
๏ SQL Server -> MySQL
异构数据库迁移问题
๏ 所有字段类型是否对应?
๏ 逻辑算⼦子和函数?
๏ 存储过程处理理?
๏ MySQL SQL 解析器器性能?
数据库分表和表结构调整
๏ 表名和字段名的调整
๏ ⽼老老表设计不不合理理,拆表
๏ 数据量量过⼤大,分表:Range /
Hash / Date / Router
⽂文档和团队先⾏行行
๏ Guide to Migrating from Microsoft SQL Server to MySQL
๏ Datatypes 数据类型对应表
๏ Predicates 逻辑算⼦子对应表
๏ Operators & Data Functions 函数对应表
๏ MySQL 开发规范
๏ 数据库表结构设计(字段、索引、存储过程)
๏ SQL 查询规范
๏ MySQL 熟悉程度摸底调查和相关培训
市⾯面上的 ETL ⼯工具
๏Database migration and
synchronization tools :国外⼀一家提
供数据库迁移解决⽅方案的公司
๏DataX :阿⾥里里巴巴开发的数据库同步
⼯工具
๏yugong :阿⾥里里巴巴开发的数据库迁
移⼯工具
๏MySQL Workbench :MySQL 提供
的 GUI 管理理⼯工具,包含数据库迁移
功能
๏Data Integration - Kettle :国外的⼀一
款 GUI ETL ⼯工具
๏Ispirer :提供应⽤用程序、数据
库异构迁移⽅方案的公司
๏DB2DB 数据库转换⼯工具 :⼀一个
国产的商业数据库迁移软件
๏Navicat Premium :经典的数据
库管理理⼯工具,带数据迁移功能
๏DBImport :个⼈人维护的迁移⼯工
具,⾮非常简陋陋,需要付费
全量量离线迁移流程
如何做在线增量量迁移
๏ 增量量数据如何获得?
๏ 数据⼀一致性?
๏ 增量量数据重消费?
增量量迁移⽅方案
alibaba/yugong
๏ Oracle -> MySQL
๏ 全量量 / 增量量(Oracle 物化视图)
๏ 异构⽀支持
๏ 编码
๏ 库名 / 表名 / 字段名
๏ 字段个数
增量量过程
增量量迁移需要的条件
๏ 增量量变化:⽀支持增量量获得增量量数据库变化
๏ 延迟:获取变化数据这个动作耗时需要尽
可能低
๏ 幂等⼀一致性:变化数据的消费应当做到幂
等,即不不管⽬目标数据库已有数据什什么状态,
都可以⽆无差别消费
Change Data Capture 原理理
CDC ⻓长什什么样⼦子
CDC Change Table
CDC 查询
CDC 查询结果
1 删除
2 插⼊入
3 更更新前数据
4 更更新后数据
Metrics
CDC Benchmark
๏ CDC 的开启/关闭
๏ 过程会导致若⼲干个 Process Block
๏ ⼤大流量量请求下⾯面(15k TPS)过程会导致若 20 个左右 Process Block
๏ 对服务器器的 IO / CPU ⽆无明显波动
๏ 开启/关闭瞬间会带来 mssql.sql-statistics.sql-compilations 剧烈烈波动
๏ CDC 开启后
๏ ⼤大流量量请求下⾯面对 QPS / Page IO ⽆无明显波动
๏ 对服务器器的 IO / CPU ⽆无明显波动
๏ CDC 开启后可以在 16k TPS 下正常⼯工作
CDC Influence
在线增量量迁移流程
使⽤用 Canal 回滚流程
yugong 6 项功能增强
๏ SQL Server <-> MySQL
๏ ⽀支持 SQL Server 增量量迁移
๏ ⽀支持复合主键迁移
๏ ⽀支持迁移过程中完成 Range / Time / Mod / Hash 分
表
๏ ⽀支持新增、删除字段
๏ ⽀支持 Canal binlog 作为数据源
yugong 4 项⼯工程增强
๏ ⽀支持使⽤用 YAML 作为配置格式
๏ 调整 yugong 为 fat jar 模式运⾏行行
๏ ⽀支持表名、字段名⼤大⼩小写格式变
化,驼峰和下划线⾃自由转换
๏ ⽀支持表名、字段名细粒度⾃自定义
获得的成果
๏ 42 个系统:⽤用户、订单、⽀支付、
电商、学习、社群、内容和⼯工具
๏ 迁移的数据总规模接近百亿
๏ 最⼤大单表数据超过 2 亿
๏ 没有发⽣生⼀一起事故
Reference
๏ https://github.com/alibaba/yugong
๏ https://docs.oracle.com/cd/
B10500_01/server.920/a96567/
repmview.htm
๏ https://docs.microsoft.com/en-us/
previous-versions/sql/sql-
server-2008/dd266396(v=sql.100)
Q & A
沪江去 Windows 实践 - 从 SQL Server 到 MySQL

More Related Content

Similar to 沪江去 Windows 实践 - 从 SQL Server 到 MySQL

淘宝数据库架构演进历程
淘宝数据库架构演进历程淘宝数据库架构演进历程
淘宝数据库架构演进历程Jian Peng
 
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC
 
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations ChinaNetCloud
 
2018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v22018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v2Jingchao Di
 
数据库性能量化
数据库性能量化数据库性能量化
数据库性能量化yzsind
 
数据库性能量化 叶正盛
数据库性能量化 叶正盛数据库性能量化 叶正盛
数据库性能量化 叶正盛yzsind
 
数据库性能量化
数据库性能量化数据库性能量化
数据库性能量化mysqlops
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平drewz lin
 
Yog Framework
Yog FrameworkYog Framework
Yog Frameworkfansekey
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)Duran Hsieh
 
海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)Zhaoyang Wang
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)锐 张
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)vanadies10
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTarget Source
 
移动互联网服务端架构介绍
移动互联网服务端架构介绍移动互联网服务端架构介绍
移动互联网服务端架构介绍arganzheng
 
ASP.Net MVC2 简介
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介Allen Lsy
 
No sql@vip new
No sql@vip newNo sql@vip new
No sql@vip newChao Zhu
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011Yiwei Ma
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座NTC.im(Notch Training Center)
 

Similar to 沪江去 Windows 实践 - 从 SQL Server 到 MySQL (20)

淘宝数据库架构演进历程
淘宝数据库架构演进历程淘宝数据库架构演进历程
淘宝数据库架构演进历程
 
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
 
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations ChinaNetCloud - Aliyun Joint Event on Cloud Operations
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
 
2018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v22018 01 metrics-monitoring-system-v2
2018 01 metrics-monitoring-system-v2
 
数据库性能量化
数据库性能量化数据库性能量化
数据库性能量化
 
数据库性能量化 叶正盛
数据库性能量化 叶正盛数据库性能量化 叶正盛
数据库性能量化 叶正盛
 
数据库性能量化
数据库性能量化数据库性能量化
数据库性能量化
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
 
Yog Framework
Yog FrameworkYog Framework
Yog Framework
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
 
海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)海通证券金融云思考与实践(数据技术嘉年华2017)
海通证券金融云思考与实践(数据技术嘉年华2017)
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
 
移动互联网服务端架构介绍
移动互联网服务端架构介绍移动互联网服务端架构介绍
移动互联网服务端架构介绍
 
ASP.Net MVC2 简介
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介
 
No sql@vip new
No sql@vip newNo sql@vip new
No sql@vip new
 
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
 

More from Jingchao Di

2017 05 monitoring-introducing
2017 05 monitoring-introducing2017 05 monitoring-introducing
2017 05 monitoring-introducingJingchao Di
 
Brief principle and principle of coding
Brief principle and principle of codingBrief principle and principle of coding
Brief principle and principle of codingJingchao Di
 
Mitmproxy usage v20141216
Mitmproxy usage v20141216Mitmproxy usage v20141216
Mitmproxy usage v20141216Jingchao Di
 
打造可维护的应用 20160704
打造可维护的应用 20160704打造可维护的应用 20160704
打造可维护的应用 20160704Jingchao Di
 
Window management v16.03.23
Window management v16.03.23Window management v16.03.23
Window management v16.03.23Jingchao Di
 
HTML5 实战 WebApp 阅读应用– Shiu
HTML5 实战 WebApp 阅读应用– ShiuHTML5 实战 WebApp 阅读应用– Shiu
HTML5 实战 WebApp 阅读应用– ShiuJingchao Di
 

More from Jingchao Di (6)

2017 05 monitoring-introducing
2017 05 monitoring-introducing2017 05 monitoring-introducing
2017 05 monitoring-introducing
 
Brief principle and principle of coding
Brief principle and principle of codingBrief principle and principle of coding
Brief principle and principle of coding
 
Mitmproxy usage v20141216
Mitmproxy usage v20141216Mitmproxy usage v20141216
Mitmproxy usage v20141216
 
打造可维护的应用 20160704
打造可维护的应用 20160704打造可维护的应用 20160704
打造可维护的应用 20160704
 
Window management v16.03.23
Window management v16.03.23Window management v16.03.23
Window management v16.03.23
 
HTML5 实战 WebApp 阅读应用– Shiu
HTML5 实战 WebApp 阅读应用– ShiuHTML5 实战 WebApp 阅读应用– Shiu
HTML5 实战 WebApp 阅读应用– Shiu
 

沪江去 Windows 实践 - 从 SQL Server 到 MySQL