6.9 实时同步RDS MySQL

使用须知

1. 这种方式只支持阿里云RDS for MySQL数据源,包括经典网络和VPC网络。不支持自建MySQL
2. 考虑到数据的绝对精确,目前只支持主键表同步,暂不支持非主键表同步

1) 登录数据同步控制页

首先登陆HybridDB Console页面,选择DataSync子页

2) 点击创建数据同步通道

必填参数说明:

  • 同步通道名称:自定义名称,支持英文字母或数字,长度控制在128个字符,可以与RDS实例名称一样
  • RDS实例名称: 需要进行同步的源RDS实例名称
  • 账号: 全量同步时访问源RDS实例的账号
  • 密码: 全量同步时访问源RDS实例的账号密码

可选参数(一般不用填写):

  • RDS实例所在Region: 选配,不配置会默认是源实例所在位置
  • 备用URL: 选配,一般不需要关心
  • RDS从库实例名称: 选配,如果配置了,全量同步时候会从指定的备库拉取数据而不是主库

点击下一步,等待几分钟即可完成创建.

3) 将源RDS实例的表结构同步至HybridDB上

回到DataSync首页,点击同步表结构

目前支持三种同步模式的表定义类型,以适应多库多表的同步场景:

  • 【可选】目标表自动加上原表schema作为前缀,可以用于多库同步到HDB库,但对表名敏感的应用有侵入
  • 【可选】目标表自动增加一个source_schema字段放在第1列,该字段存储通道信息、库信息、表信息,并作为联合主键,防止多实例多库分库分表同步到一个目标表出现主键冲突。如果确定同步不会出现主键冲突,可以不使用这个模式
  • 【可选】目标表自动增加一个source字段放在第1列,该字段存储通道信息、表信息,并作为联合主键,防止多实例单库分库分表同步到一个目标表出现主键冲突。如果确定同步不会出现主键冲突,可以不使用这个模式

在左边选中需要同步的原表,点击向右箭头,同步到右边。撤回时候选中右边原表,点击向左箭头。

点击“预览目标表” 进入如下页面:

然后针对特定场景的表结构,需要仔细review,如果需要修改建表语句,可以点击“修改表结构” 进入如下页面:

上面部分是原表ddl不能编辑,下面部分是HDB表DDL,可以编辑。编辑好后,保存修改返回原页面。

如果是多张分库分表同步到一张HDB目标表,点击下面 “批量修改表结构” 进入如下页面:

在左边选中具有相同表结构的原表,在右边输入目标表名,然后回车,可以编辑右下方的HDB表DDL,保存修改返回原页面。

点击“开始建表”,如有失败的,修改表结构后,再继续。同步表结构过程中是最容易出错的一步,涉及到DDL修改,有问题随时联系HybridDB技术支持。

4) 创建数据同步任务

同步任务有二种类型:

  • 全量同步:数据以select的方式全量拉去写入HybridDB
  • 增量同步:数据以binlog的方式从RDS同步到HybridDB

在上图中,有4个参数可供填写:

  • 起始时间:增量同步的时间起点,可以指定(一般无需指定)从哪个时间点开始订阅数据,注意前端时间为当前浏览器的时间;后端会自动转换成浏览器的时间对应的UTC时间,因为MySQL的binlog是UTC时间。
  • 起始offset:增量同步的日志起点,只用于引擎内部,用户无需关心。
  • 批量表大小:增量同步的表打包同步数目,一般推荐20张表左右一起同步,性能会有很大提升,如果库的表数目很多,可以设置大一些。
  • 监听种类:默认Insert、Update、Delete

选中左边需要在这个任务同步的表,点击"下一步" 到如下页面:

点击“开始同步”,同步任务启动

特别说明:

在创建好任务后,如果同时勾选了全量和增量都,系统会自动先全量后增量的方式进行拉去。

5) 查看任务状态

有两种方式可以查看数据同步状态:

  • 从DataSync中的DataSync Jobs页面里查看
  • 从select * from information_schema.kepler_load_jobs order by CREATE_TIME desc limit 5;语句查看

6) 取消任务或重试任务

通过DataSync中的DataSync Jobs页面里对任务进行操作

注意事项

  1. 这种方式只支持阿里云RDS for MySQL数据源,包括经典网络和VPC网络。暂不支持自建MySQL。
  2. 考虑到数据的绝对精确,目前只支持主键表同步,暂不支持非主键表同步。
  3. 一个rds实例推荐只创建一个同步通道,需要使用有相关select权限的rds实例用户。
  4. HDB节点资源会限制最大同步任务数,2节点最大不要超过64个同步任务,支持一个任务同步多个表,节省资源。如果节点数较小,而同步任务数较多时,可能出现同步任务不运行的情况。
  5. 关于 RDS->HDB实时同步SQL兼容性:请参考下述的支持情况。

DML 支持情况

操作 支持 备注
REPLACE 对应 HDB 的 REPLACE
INSERT 对应 HDB 的 REPLACE
UPDATE 对应 HDB 的 REPALCE
DELETE 对应 HDB 的 DELETE,用户在配置任务时可选是否同步源端的 DELETE,默认同步

DDL 支持情况

对于不支持的DDL,均忽略不处理

操作 支持 备注
CREATE TABLE 用户需要使用“表结构同步”功能迁移表结构进而建立同步任务
DROP TABLE 忽略不处理
TRUNCATE TABLE 忽略不处理
RENAME TABLE 忽略不处理
OPTIMIZE TABLE 忽略不处理
ALTER TABLE ADD COLUMN 会忽略源表列的 NOT NULL 属性
ALTER TABLE DROP COLUMN 此列在 HDB 的表中仍然存在。若此列没有 NOT NULL,不影响同步任务
ALTER TABLE RENAME COLUMN 可能导致同步任务失败
ALTER TABLE MODIFY COLUMN 可能导致同步任务失败
所有索引 DDL HDB 提供了全列索引

results matching ""

    No results matching ""