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

GaussDB(for MySQL)主备版->GaussDB(DWS)

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

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

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

操作要求

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

类型名称

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

注意事项

  • 表2中的环境要求均不允许在同步过程中修改,直至同步结束。
  • 相互关联的数据对象要确保同时同步,避免因关联对象缺失,导致同步失败。常见的关联关系:索引引用表等。
  • 不支持外键级联操作。
  • 网络中断在30秒内恢复的,不影响实时同步,如果超过30秒,则会导致同步任务失败。
  • 不支持源数据库进行恢复操作。
  • 索引同步不区分索引类型,同步到目标数据库都是默认的索引类型。
  • 目标数据库与源数据库字符集不一致可能会导致同步后数据不一致或者同步失败。
  • 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。
  • 数据类型不兼容时,可能引起同步失败。

操作须知

  • 实时同步过程中,支持修改端口,修改之后同步任务失败,需要通过重试后继续进行同步。
  • 实时同步过程中,不支持IP、账号、密码修改。
  • 增量同步过程中,支持部分DDL操作。
    • 不支持 DROP_DATABASE、DROP_TABLE、TRUNCATE_TABLE、CREATE_VIEW、DROP_VIEW。
    • 支持创建表,例如 :
      create table `ddl_test` (id int, c1 varchar(25), primary key(id));
      create table `ddl_test_gho` like `ddl_test`;
    • 支持表字段的增和改,不支持删列,例如:
      alter table `ddl_test` add column `c2` varchar(25); 
      alter table `ddl_test` modify column `c1` varchar(50);
      alter table `ddl_test` alter c1 set default 'xxx';
    • 支持修改表索引,例如:
      alter table `ddl_test` drop primary key; 
      alter table `ddl_test` add primary key(id); 
      alter table `ddl_test` add index  `ddl_test_uk`(id);
      alter table `ddl_test` drop index `ddl_test_uk`;
    • 表级同步支持增加列、修改列、增加主键和普通索引。多对一情况下执行colunm重命名操作,必须停业务操作,不然会有数据不一致的风险,例如:
      alter table `ddl_test` modify column `c1` varchar(50);
    • 表级同步时由于rename后的表可能在目标库存在冲突,导致任务失败,暂不支持表级同步任务rename table的DDL操作。
    • 库级同步支持新建表、rename表、增加列、修改列、增加主键和普通索引。
    • 新增和修改表名、列名、索引名时不能超出63字符,否则任务会失败。
    • 源库无主键表增加主键的时候,必须含有第一列,否则任务会失败。
  • 增量同步过程中,库级同步不支持Online DDL,表级同步目前只支持阿里云DMS产生的Online DDL。
  • 不支持强制清理binlog,否则会导致同步任务失败。
  • 建议将expire_log_day参数设置在合理的范围,确保恢复时断点处的binlog尚未过期,以保证服务中断后的顺利恢复。

环境要求

实时同步对环境有一些特定的要求,请确保环境配置满足以下条件。该类型的要求系统会自动检查,并给出处理建议。
表2 环境要求

类型名称

使用限制(DRS自动检查)

数据库权限设置

  • 源数据库帐户需要具备如下权限:SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
  • 目标数据库帐号必须具有每张表的如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE、REFERENCES。

同步对象约束

  • 支持表、索引、约束(主键、空、非空)的同步,不支持视图、外键、存储过程、触发器、函数、事件、虚拟列的同步。
  • 不支持的数据类型有:xml、geometry、point、lineString、polygon、geometrycollection、multipoint、multilinestring、multipolygon。
  • 不支持非MyISAM和非InnoDB表的同步。

源数据库要求

  • 源数据库的binlog日志必须打开,且binlog日志格式必须为Row格式。
  • 在磁盘空间允许的情况下,建议源数据库binlog保存时间越长越好,建议为3天。
  • 源数据库expire_logs_days参数值为0,可能会导致同步失败。
  • 必须设置源数据库的server-id,server-id的取值范围在2-4294967296之间。
  • 源数据库中的库名、表名不能包含:'<`>/\以及非ASCII字符。

目标数据库要求

  • 目标数据库的运行状态必须正常。
  • 目标数据库必须有足够的磁盘空间。
  • 目标数据库的时区设置必须与源数据库一致。
分享:

    相关文档

    相关产品

close