更新时间:2024-01-30 GMT+08:00
DRS对源数据库和目标数据库有什么影响
DRS对源数据库的压力及影响
- 全量(初始化)阶段,DRS需要从源库将所有存量数据查询一次。DRS查询使用简单SQL语句,对源库影响主要体现在IO上,查询速度也受限于源数据库IO相关的性能以及网络带宽。一般在网络无瓶颈的情况下,会对源数据库增加约50MB/s的查询压力,以及占用2~4个CPU,在并发读取源数据库时,会占用大约6-10个session连接数,其中:
- 有小于8个连接查询源数据库的一些系统表(如information_schema库下的表信息tables,视图信息views、列信息columns等);
- 有小于4个连接查询源数据库数据分片的SQL,类似如下语句,其中select和where后的条件只会有主键或者唯一键。
select id from *** where id>12345544 and limit 10000,1;
- 有小于4个连接查询数据的SQL,类似如下语句,其中select后为表所有的列名,where后的条件只会有主键或者唯一键。
select id,name,msg from *** where id>12345544 and id<=12445544;
- 无主键表的锁表操作SQL,类似如下语句,锁表只是为了获取无主键表的一致性位点,锁表后获取一个连接就会解锁。
flush table *** with read lock
lock table *** read
- 增量阶段对源数据库基本无压力,只有一个dump连接实时监听binlog增量。
DRS对目标数据库的压力及影响
- 全量(初始化)阶段,DRS需要将源数据库结构、索引以及存量数据全部写入到目标数据库,顺序为先迁移结构,再迁移数据,最后加索引,一般总连接数小于16个session,其中:
- 有小于8个连接在批量创建结构。
- 有小于8个连接在批量写数据,类似如下语句:
insert into *** (id,name,msg) values (***);
- 有小于8个连接在批量创建索引,类似如下语句:
alter table *** add index ***;
- 增量阶段,DRS会把源数据库binlog中的增量数据解析成SQL在目标数据库中执行,一般总连接数小于64个session,其中:
- DDL会串行执行,执行DDL时,不会有其他DML执行。
- DML最多会有64个连接(短连接,超时时间30秒),其中DML只是简单的insert、update、delete、replace语句。
如果需要评估对源数据库的影响,可选择创建测试任务,再通过限速功能或业务低峰期动等来调整迁移策略。
父主题: 产品咨询
产品咨询 所有常见问题
- 区域和可用区
- 什么是数据复制服务
- 数据复制服务是否支持关系型数据库的HA实例迁移
- 数据复制服务对源数据库有什么要求
- 数据复制服务对目标数据库有什么要求
- 数据复制服务是否采用了并发技术
- 数据复制服务是否采用了压缩技术
- DRS是否支持公有云和专属云间的数据库迁移
- 什么是配额
- DRS支持将DB2 for LUW迁移到PostgreSQL吗
- Microsoft SQL Server数据库能与本地数据库的数据实时同步吗
- 数据复制服务是否支持某个时间段的数据复制
- DRS支持断点续传吗
- 什么是单主/双主灾备
- 实时迁移、实时同步和实时灾备有什么区别
- MySQL迁移出现数据膨胀怎么办
- DRS对源数据库和目标数据库有什么影响
- DRS需要源数据库停止业务吗
- 什么是SMN主题
- DRS任务的双AZ和单AZ有什么区别
- DRS是否支持只迁移表结构不迁移数据
- MySQL迁移、同步、灾备任务怎么迁移账号,是否支持修改密码
- 影响DRS任务速度的因素有哪些以及如何进行耗时预估
- DRS任务支持修改对象吗
- DRS是否支持同一实例不同库之间的同步
- 源或者目标数据库哪些操作,会影响DRS任务状态
- 数据订阅与MySQL到Kafka同步的区别
- 为什么DRS不支持部分他云只读实例的备库做源库
- DRS支持caching_sha2_password加密用户迁移吗
- 为什么迁移前后数据库磁盘空间使用量不一致
- DRS发送Kafka消息序列化方式是什么
more