更新时间:2024-11-26 gmt 08:00
mysql数据同步对源数据库和目标数据库有什么影响-九游平台

以下数据以mysql2mysql大规格实时同步任务为例,不同规格对数据库的连接数存在差异,仅供参考。
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
- 增量阶段对源数据库cpu基本无压力,只有一个dump连接实时获取增量日志,产生binlog日志生成速率等同的io及带宽影响。
drs对目标数据库的压力及影响
- 全量(初始化)阶段,drs需要将源数据库结构、索引以及存量数据全部写入到目标数据库,顺序为先迁移结构,再迁移数据,最后迁移索引,不同过程不会并行,一般活跃总连接数小于8个,其中:
- 有小于8个连接在批量创建结构。
- 有小于8个连接在批量写数据,类似如下语句:
insert into *** (id,name,msg) values (***);
- 有小于8个连接在批量创建索引,类似如下语句:
alter table *** add index ***;
- 增量阶段,drs会把源数据库日志中的增量数据解析成sql在目标数据库中执行,一般总连接数小于64个,其中:
- ddl会单连接串行执行,执行ddl时,不会有其他dml执行。
- dml最多会有64个连接(短连接,默认超时时间30秒),其中dml只是简单的insert、update、delete、replace语句。

如果需要评估对源数据库的影响,可选择创建测试任务,再通过限速功能或业务低峰期动等来调整迁移策略。
父主题:
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨