有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
说明:
本章节以 MySQL 到 MySQL 链路为例进行介绍。
1. DTS 在执行全量数据迁移/同步时,会将源库的全量数据全部读取一次,所以会增加源库的负载。如果您的数据库规格过低,建议您在业务低峰期进行迁移/同步,或者在任务启动前降低 DTS 的速率。
2. 源库的规格不同,DTS 任务配置不同,则对源库的性能影响也不同。以源库规格为 8 核 16G 为例,DTS 任务默认采用 8 线程并发(可调整),在网络无瓶颈的情况下,DTS 任务对源库的性能影响如下,详细的 SQL 影响请参考 DTS 对源数据库的影响
源库全量导出阶段:占用源库约 18%-45% 的 CPU,增加源库约 40-60MB/s 的查询压力,占用约 8 个活跃 session 连接数。
源库增量导出阶段:对源数据库基本无压力,只有一个连接实时监听源库的 binlog 日志。
3. 默认采用无锁迁移/同步来实现,任务过程中对源库不加全局锁(FTWRL),仅对无主键的表加表锁,其他不加锁。
4. 进行数据一致性校验时,DTS 会使用执行任务的账号在源库中写入系统库__tencentdb__,用于记录任务过程中的数据对比信息,请勿删除该系统库。
为保证后续数据对比问题可定位,DTS 任务结束后不会删除源库中的__tencentdb__
__tencentdb__系统库占用空间非常小,约为源库存储空间的千分之一到万分之一(例如源库为50GB,则__tencentdb__系统库约为5MB-50MB) ,并且采用单线程,等待连接机制,所以对源库的性能几乎无影响,也不会抢占资源。