• 沒有找到結果。

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值。