更新时间:2022-05-25 GMT+08:00
分享

MySQL->MySQL

使用技巧(需要人为配合)

推荐提前2-3天启动任务,并配合如下使用技巧和操作要求,以确保任务稳定运行。

  • 基于以下原因,建议您结合定时启动功能,选择业务低峰期开始运行同步任务。
    • 在网络无瓶颈的情况下,全量同步会对源数据库增加约50MB/s的查询压力,以及占用2~4个CPU。
    • 同步无主键表时,为了确保数据一致性,会存在3s以内的单表级锁定。
    • 正在同步的数据被其他事务长时间锁死,可能导致读数据超时。
    • 由于MySQL固有特点限制,CPU资源紧张时,存储引擎为Tokudb的表,读取速度可能下降至10%。
    • DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数对业务的影响。
    • 全量阶段读取表数据时,特别是大表的读取,可能会阻塞业务上对大表的独占锁操作。
  • 建议您结合数据对比的“稍后启动”功能,选择业务低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从而失去参考意义。
  • 如果涉及多对一场景的同步任务,可参考多对一的场景约束及操作建议
  • 如果涉及表级汇集的多对一同步任务,则不支持DDL,否则会导致同步全部失败。

操作要求

针对一些无法预知或人为因素及环境突变导致同步失败的情况,数据复制服务提供以下常见的操作限制,供您在同步过程中参考。
表1 操作要求

类型名称

操作限制(需要人为配合)

注意事项

  • 相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。
  • 不支持外键级联操作。
  • 不支持源数据库恢复到之前时间点的操作(PITR)。
  • 支持断点续传功能,但是对于无主键的表可能会出现重复插入数据的情况。
  • 当前仅MySQL->MySQL的同步支持多对一任务同步。
  • 进行表级多对一同步时,源库不允许存在无主键表。
  • 源库不允许存在与目标库同名的无主键表。
  • 目标数据库实例状态需为可读写状态,否则可能同步失败。
  • 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。
  • 源库和目标库为RDS for MySQL实例时,不支持带有TDE特性并建立具有加密功能表。
  • 如果目标库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7-5.7.28之间),需提交运维申请才能使用SSL测试连接。
  • 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。
    • 目标端多的列要求非空且没有默认值,源端insert数据,同步到目标端后多的列为null,不符合目标端要求。
    • 目标端多的列设置固定默认值,且有唯一约束。源端insert多条数据后,同步到目标端后多的列为固定默认值,不符合目标端要求。

操作须知

  • 实时同步过程中,如果修改了源库或者目标库的用户名、密码,会导致同步任务失败,需要在数据复制服务控制台将上述信息重新修改正确,然后重试任务可继续进行实时同步。一般情况下不建议在同步过程中修改上述信息。
  • 实时同步过程中,如果修改了源库或者目标库端口,会导致同步任务失败。针对该情况,数据复制服务提供不同的处理机制。
    • 对于源库端口,需要在数据复制服务控制台修改为正确的端口,然后重试任务可继续进行实时同步
    • 对于目标库端口,系统自动更新为正确的端口,需要重试任务即可进行同步。

      一般情况下不建议在同步过程中修改端口。

  • 实时同步过程中,如果源库为非本云关系型数据库实例,不支持修改IP地址。如果是本云关系型数据库实例,对于因修改IP地址导致同步任务失败的情况,系统自动更新为正确的IP地址,需要重试任务可继续进行同步。一般情况下,不建议修改IP地址。
  • 不支持强制清理binlog,否则会导致同步任务失败。
  • 当在全量同步过程中,对MyISAM表执行修改操作时,可能造成数据不一致。
  • 增量同步过程中,支持的DDL操作取决于同步帐号的权限,对应权限支持的DDL语句可参考“MySQL官方参考手册中安全>访问控制和账户管理>MySQL提供的权限”章节。
  • 不支持已选择的表与未选择的表之间互相rename的DDL操作,否则会导致同步任务失败。
  • 表级同步时由于rename后的表可能在目标库存在冲突,导致任务失败,暂不支持表级同步任务rename table的DDL操作。
  • 选择表级对象同步时,增量同步过程中不建议对表进行重命名操作。
  • 建议将expire_log_day参数设置在合理的范围,确保恢复时断点处的binlog尚未过期,以保证服务中断后的顺利恢复。
分享:

    相关文档

    相关产品

close