4.2 入云同步使用须知
4.2.19 DDM->DDM
使用技巧(需要人为配合)
推荐提前2-3天启动任务,并配合如下使用技巧和操作要求,以确保任务稳定运行。
● 基于以下原因,建议您结合定时启动功能,选择业务低峰期开始运行同步任务。
– 在网络无瓶颈的情况下,全量同步会对源数据库增加约50MB/s的查询压力,
以及占用2~4个CPU。
– 同步无主键表时,为了确保数据一致性,会存在3s以内的单表级锁定。
– 正在同步的数据被其他事务长时间锁死,可能导致读数据超时。
– DRS并发读取数据库,会占用大约6-10个session连接数,需要考虑该连接数 对业务的影响。
● 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建 同步任务。
● 数据类型不兼容时,可能引起同步失败。
● 支持目标数据库中的表比源数据库多列场景,但是需要避免以下 场景可能导致的任务失败。
– 目标端多的列要求非空且没有默认值,源端insert数据,同步 到目标端后多的列为null,不符合目标端要求。
– 目标端多的列设置固定默认值,且有唯一约束。源端insert多 条数据后,同步到目标端后多的列为固定默认值,不符合目标 的DDL操作,这样可能会引起任务同步失败。
● 建议将源中间件物理分片的expire_log_day参数设置在合理的范
环境要求
设置 ● 源数据库DDM帐户需要具备SELECT权限,DDM物理分片数据库 帐户需要具备如下权限:SELECT、SHOW VIEW、EVENT、
LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
● 目标中间件帐户需要具备以下基本权限:CREATE、DROP、
ALTER、 INDEX、 INSERT、DELETE、 UPDATE、 SELECT, 同 时必须具备扩展权限::全表Select权限。
● 目标中间件帐户必须具备对所同步数据库的权限。
同步对象约
束 ● 全量同步支持数据、表结构和索引的同步。
● 源库不允许存在拆分键为timestamp类型的表。
● 不支持非MyISAM和非InnoDB表的同步。
源数据库要
求 ● MySQL源数据库的binlog日志必须打开,且binlog日志格式必须 为Row格式。
● 在磁盘空间允许的情况下,建议源数据库binlog保存时间越长越 好,建议为3天。
● 增量同步时,必须设置MySQL源数据库的server_id。如果源数据 库版本小于或等于MySQL5.6,server_id的取值范围在2-
4294967296之间;如果源数据库版本大于或等于MySQL5.7,
server_id的取值范围在1-4294967296之间。
● 源分库分表中间件中的库名、表名不能包含:'<>/\以及非ASCII 字符。
● MySQL源数据库建议开启skip-name-resolve,减少连接超时的 可能性。
● 目标实例及关联RDS实例的运行状态必须正常,若关联RDS实例 是主备实例,复制状态也必须正常。
● 目标库关联RDS实例必须有足够的磁盘空间。
● 目标库关联RDS数据库的字符集必须与源数据库一致。
● 目标库实例若选择将时间戳类型(TIMESTAMP,DATETIME)的 列作为分片键,则源库数据在同步到目标库之后,作为分片键的 该时间戳类型列的秒精度将被丢弃。
● 目标数据库存在表的AUTO_INCREMENT值至少不能小于源库表 的AUTO_INCREMENT值。