SlideShare a Scribd company logo
1 of 21
DTCC2011



海量数据迁移方案
      徐进挺
      微博:tb丁原
      dingyuan@taobao.com
      日期:201104




                            1
大纲     DTCC2011

1.数据迁移的场景,目标是什么
2.全量迁移常见方案
3.增量迁移常见方案
4.oracle->mysql简单案例
场景是什么      DTCC2011
场景:
表太“大”
业务架构调整,数据需要重新分布
enq: HW - contention
enq: TX - row lock contention
enq: TX - index contention

需求:
表需要从1个库迁移到另外的库中
迁移对应关系可能是1->1, 1->N, N->1,N->M
源,目标端环境可能是:Oracle <-> oracle,Oracle <-
> mysql,Oracle <-> nosql
目标是什么       DTCC2011

目标:
确保数据的完整性。
尽量减少对业务的影响,尽量控制停机时间。
业务可接受的时间,0分钟,1分钟,10分钟,1小时,1天
?
数据量大小,10G,50G,100G,200G,1T?



注:
把迁移分成全量迁移,增量迁移两个步骤。
大纲     DTCC2011

1.数据迁移的场景,目标是什么
2.全量迁移常见方案
3.增量迁移常见方案
4.oracle->mysql简单案例
全量迁移                           DTCC2011
1.Exp/imp/expdp/impdp
2.Insert into table select * from table@Dblink
3.Select * from table into outfile/load data(mysql)
4.Extent->rowid
5.Mv refresh
6.Sqluldr/load data(http://www.anysql.net/software/sqluldr.zip)
7.Rowid(pkid)/procedure
8.Perl
9.Tddl数据层
使用过哪些方案       DTCC2011




选择简单,高效,高可靠性的方案
全量迁移的风险点                     DTCC2011
场景:
2.Insert into table select * from table@Dblink
4.Mv
风险点:                                    全量迁移:
1.ora-01555错误                           建议化整为零分片迁移
2. 迁移过程出错,回滚会非常缓慢
化整为零之extent方案DTCC2011

Rowid:
8i之前rowid结构:
File#       Block#        Row#
8i之后rowid结构:
data_object_id#   File#          Block#      Row#



Segment:
1 Segment         N extent       N*N Block   N*N*N rowid



通过extent为粒度来迁移,来手动并行迁移?
化整为零之extent方案DTCC2011

抽取每个分区:
insert into my_rowid(id,rowid_min,rowid_max,has_deal)
select rownum,
dbms_rowid.rowid_create(1,o.data_object_id,e.relative_fno,e.block_id,0),
dbms_rowid.rowid_create(1,o.data_object_id,e.relative_fno,e.block_id+e.blocks-
1,10000),
0
from dba_extents e,dba_objects o
where e.segment_name=upper('test_table') and e.owner='db1'
and o.object_name = upper('test_table') and o.owner='db1';
化整为零之extent方案DTCC2011

根据分区同步数据:
for c in (select id, rowid_min, rowid_max from my_rowid where has_deal = 0
and mod(id, p_number) = p_now)
loop
insert into test_table
select /*+ rowid(t) */* from test_table@dblink_db1 t
where rowid >= chartorowid(c.rowid_min) and rowid <=
chartorowid(c.rowid_max);
大纲     DTCC2011

1.数据迁移的场景,目标是什么
2.全量迁移常见方案
3.增量迁移常见方案
4.oracle->mysql简单案例
增量迁移                DTCC2011

1.created_date,modified_date字段设计
2. Mv refresh
3. Trigger/procedure
4.Dbsync复制中心:redo log,binlog解析
5.Tddl复制中心
6.Perl
问题:
如果迁移过程中,需要加上业务处理逻辑,哪种方式更容易满
足呢?

 备注:
 每个表必须要有创建时间和修改时间两个字段
trigger/procedure   DTCC2011
dbsync                                               DTCC2011
                                    Oracle server 主库
                                                                                                              mysql server




                                       2.Query data                                                                         2.Query data
                                                                                               1.get binlog event
                                                 Dbsync client/server

               1. Rowid and other
                     info
                                                                        Dbsync client/server

                                             3.DFS Write                                                            3.DFS Write
Oracle server(备库)
  /Dbsync client




                               HDFS                                                                           HDFS
Tddl复制中心   DTCC2011
大纲     DTCC2011

1.数据迁移的场景,目标是什么
2.全量迁移常见方案
3.增量迁移常见方案
4.oracle->mysql简单案例
Oracle-my(no)sql   DTCC2011

场景:
1.Oracle的某一张迁移到mysql对应的表中
2.Oracle的某一张表迁移到mysql对应的多张表(mysql
分表)



常见思路:
1.sqluldr/load data
2.Perl
3.Tddl数据层复制
Sqluldr/load data                          DTCC2011

使用sqluldr从oracle导出数据:
Sqluldr user=${userpwd} query="${v_dw_sql}" quote='"' text=mysql
file=${exp_file}



load data导入到mysql中:
LOAD DATA INFILE "${exp_file}"
IGNORE
INTO TABLE ${v_lake_tab}
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'n'
${v_lake_col};
小结          DTCC2011


1.迁移的场景、目标决定方案了方案的选择
2.全量,增量迁移常用方案
可选方案很多,灵活使用,选择最简单,高效,可靠性
3.海量数据下全量迁移更倾向于extent切分+手动并行,增
量主要采用gmt_modified字段来判断,跨平台迁移主要通
过perl/tddl/sqluldr/dbsync来处理
DTCC2011

More Related Content

What's hot

数据分片方法的分析和比较
数据分片方法的分析和比较数据分片方法的分析和比较
数据分片方法的分析和比较freeplant
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化areyouok
 
主备备的两个备机转为双Master出现诡异的slave lag问题
主备备的两个备机转为双Master出现诡异的slave lag问题主备备的两个备机转为双Master出现诡异的slave lag问题
主备备的两个备机转为双Master出现诡异的slave lag问题haojiewang
 
可靠分布式系统基础 Paxos的直观解释
可靠分布式系统基础 Paxos的直观解释可靠分布式系统基础 Paxos的直观解释
可靠分布式系统基础 Paxos的直观解释Yanpo Zhang
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页liu sheng
 
分布式系统缓存设计
分布式系统缓存设计分布式系统缓存设计
分布式系统缓存设计aleafs
 
分布式系统缓存设计
分布式系统缓存设计分布式系统缓存设计
分布式系统缓存设计zhujiadun
 
淺談 Ado.net
淺談 Ado.net淺談 Ado.net
淺談 Ado.netGelis Wu
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹國昭 張
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo dbLucien Li
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化topgeek
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介昱劭 劉
 
Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例maclean liu
 
备库预热工具relayfetch介绍及性能测试
备库预热工具relayfetch介绍及性能测试备库预热工具relayfetch介绍及性能测试
备库预热工具relayfetch介绍及性能测试zhaiwx1987
 
【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理maclean liu
 
美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践美团点评技术团队
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220Jinrong Ye
 

What's hot (20)

数据分片方法的分析和比较
数据分片方法的分析和比较数据分片方法的分析和比较
数据分片方法的分析和比较
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
主备备的两个备机转为双Master出现诡异的slave lag问题
主备备的两个备机转为双Master出现诡异的slave lag问题主备备的两个备机转为双Master出现诡异的slave lag问题
主备备的两个备机转为双Master出现诡异的slave lag问题
 
可靠分布式系统基础 Paxos的直观解释
可靠分布式系统基础 Paxos的直观解释可靠分布式系统基础 Paxos的直观解释
可靠分布式系统基础 Paxos的直观解释
 
6
66
6
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
分布式系统缓存设计
分布式系统缓存设计分布式系统缓存设计
分布式系统缓存设计
 
分布式系统缓存设计
分布式系统缓存设计分布式系统缓存设计
分布式系统缓存设计
 
淺談 Ado.net
淺談 Ado.net淺談 Ado.net
淺談 Ado.net
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
 
Mysql集群
Mysql集群Mysql集群
Mysql集群
 
Mongo db 特性
Mongo db 特性Mongo db 特性
Mongo db 特性
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介
 
Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例
 
备库预热工具relayfetch介绍及性能测试
备库预热工具relayfetch介绍及性能测试备库预热工具relayfetch介绍及性能测试
备库预热工具relayfetch介绍及性能测试
 
【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理
 
美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220
 

Similar to 丁原:海量数据迁移方案

王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年yp_fangdong
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010Chuanying Du
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicecong lei
 
手机之家的数据访问层实践
手机之家的数据访问层实践手机之家的数据访问层实践
手机之家的数据访问层实践guestf5121c
 
手机之家的数据访问层实践
手机之家的数据访问层实践手机之家的数据访问层实践
手机之家的数据访问层实践xcq
 
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引liu sheng
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Bob Huang
 
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流liu sheng
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性liu sheng
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & developmentXuefeng Zhang
 
OceanBase-破解数据库高可用难题
OceanBase-破解数据库高可用难题OceanBase-破解数据库高可用难题
OceanBase-破解数据库高可用难题everestsun
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索liu sheng
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面Tianwei Liu
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 

Similar to 丁原:海量数据迁移方案 (20)

Cdc@ganji.com
Cdc@ganji.comCdc@ganji.com
Cdc@ganji.com
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud service
 
Sae
SaeSae
Sae
 
手机之家的数据访问层实践
手机之家的数据访问层实践手机之家的数据访问层实践
手机之家的数据访问层实践
 
手机之家的数据访问层实践
手机之家的数据访问层实践手机之家的数据访问层实践
手机之家的数据访问层实践
 
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01Mysql 101014202926-phpapp01
Mysql 101014202926-phpapp01
 
Why use MySQL
Why use MySQLWhy use MySQL
Why use MySQL
 
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & development
 
OceanBase-破解数据库高可用难题
OceanBase-破解数据库高可用难题OceanBase-破解数据库高可用难题
OceanBase-破解数据库高可用难题
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 

丁原:海量数据迁移方案

  • 1. DTCC2011 海量数据迁移方案 徐进挺 微博:tb丁原 dingyuan@taobao.com 日期:201104 1
  • 2. 大纲 DTCC2011 1.数据迁移的场景,目标是什么 2.全量迁移常见方案 3.增量迁移常见方案 4.oracle->mysql简单案例
  • 3. 场景是什么 DTCC2011 场景: 表太“大” 业务架构调整,数据需要重新分布 enq: HW - contention enq: TX - row lock contention enq: TX - index contention 需求: 表需要从1个库迁移到另外的库中 迁移对应关系可能是1->1, 1->N, N->1,N->M 源,目标端环境可能是:Oracle <-> oracle,Oracle <- > mysql,Oracle <-> nosql
  • 4. 目标是什么 DTCC2011 目标: 确保数据的完整性。 尽量减少对业务的影响,尽量控制停机时间。 业务可接受的时间,0分钟,1分钟,10分钟,1小时,1天 ? 数据量大小,10G,50G,100G,200G,1T? 注: 把迁移分成全量迁移,增量迁移两个步骤。
  • 5. 大纲 DTCC2011 1.数据迁移的场景,目标是什么 2.全量迁移常见方案 3.增量迁移常见方案 4.oracle->mysql简单案例
  • 6. 全量迁移 DTCC2011 1.Exp/imp/expdp/impdp 2.Insert into table select * from table@Dblink 3.Select * from table into outfile/load data(mysql) 4.Extent->rowid 5.Mv refresh 6.Sqluldr/load data(http://www.anysql.net/software/sqluldr.zip) 7.Rowid(pkid)/procedure 8.Perl 9.Tddl数据层
  • 7. 使用过哪些方案 DTCC2011 选择简单,高效,高可靠性的方案
  • 8. 全量迁移的风险点 DTCC2011 场景: 2.Insert into table select * from table@Dblink 4.Mv 风险点: 全量迁移: 1.ora-01555错误 建议化整为零分片迁移 2. 迁移过程出错,回滚会非常缓慢
  • 9. 化整为零之extent方案DTCC2011 Rowid: 8i之前rowid结构: File# Block# Row# 8i之后rowid结构: data_object_id# File# Block# Row# Segment: 1 Segment N extent N*N Block N*N*N rowid 通过extent为粒度来迁移,来手动并行迁移?
  • 10. 化整为零之extent方案DTCC2011 抽取每个分区: insert into my_rowid(id,rowid_min,rowid_max,has_deal) select rownum, dbms_rowid.rowid_create(1,o.data_object_id,e.relative_fno,e.block_id,0), dbms_rowid.rowid_create(1,o.data_object_id,e.relative_fno,e.block_id+e.blocks- 1,10000), 0 from dba_extents e,dba_objects o where e.segment_name=upper('test_table') and e.owner='db1' and o.object_name = upper('test_table') and o.owner='db1';
  • 11. 化整为零之extent方案DTCC2011 根据分区同步数据: for c in (select id, rowid_min, rowid_max from my_rowid where has_deal = 0 and mod(id, p_number) = p_now) loop insert into test_table select /*+ rowid(t) */* from test_table@dblink_db1 t where rowid >= chartorowid(c.rowid_min) and rowid <= chartorowid(c.rowid_max);
  • 12. 大纲 DTCC2011 1.数据迁移的场景,目标是什么 2.全量迁移常见方案 3.增量迁移常见方案 4.oracle->mysql简单案例
  • 13. 增量迁移 DTCC2011 1.created_date,modified_date字段设计 2. Mv refresh 3. Trigger/procedure 4.Dbsync复制中心:redo log,binlog解析 5.Tddl复制中心 6.Perl 问题: 如果迁移过程中,需要加上业务处理逻辑,哪种方式更容易满 足呢? 备注: 每个表必须要有创建时间和修改时间两个字段
  • 14. trigger/procedure DTCC2011
  • 15. dbsync DTCC2011 Oracle server 主库 mysql server 2.Query data 2.Query data 1.get binlog event Dbsync client/server 1. Rowid and other info Dbsync client/server 3.DFS Write 3.DFS Write Oracle server(备库) /Dbsync client HDFS HDFS
  • 16. Tddl复制中心 DTCC2011
  • 17. 大纲 DTCC2011 1.数据迁移的场景,目标是什么 2.全量迁移常见方案 3.增量迁移常见方案 4.oracle->mysql简单案例
  • 18. Oracle-my(no)sql DTCC2011 场景: 1.Oracle的某一张迁移到mysql对应的表中 2.Oracle的某一张表迁移到mysql对应的多张表(mysql 分表) 常见思路: 1.sqluldr/load data 2.Perl 3.Tddl数据层复制
  • 19. Sqluldr/load data DTCC2011 使用sqluldr从oracle导出数据: Sqluldr user=${userpwd} query="${v_dw_sql}" quote='"' text=mysql file=${exp_file} load data导入到mysql中: LOAD DATA INFILE "${exp_file}" IGNORE INTO TABLE ${v_lake_tab} FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'n' ${v_lake_col};
  • 20. 小结 DTCC2011 1.迁移的场景、目标决定方案了方案的选择 2.全量,增量迁移常用方案 可选方案很多,灵活使用,选择最简单,高效,可靠性 3.海量数据下全量迁移更倾向于extent切分+手动并行,增 量主要采用gmt_modified字段来判断,跨平台迁移主要通 过perl/tddl/sqluldr/dbsync来处理