合 阿里数据同步工具Otter和Canal简介
Tags: MySQL高可用主从复制双主数据同步OtterCanal跨机房阿里
Manager使用
Manager使用介绍
otter系统自带了manager,所以简化了一些admin管理上的操作成本,比如可以通过manager发布同步任务配置,接收同步任务反馈的状态信息等。
目前manager的操作可分为两部分:
- 同步配置管理
- 添加数据源
- canal解析配置
- 添加数据表
- 同步任务
- 同步状态查询
- 查询延迟
- 查询吞吐量
- 查询同步进度
- 查询报警&异常日志
manager的用户权限在设计的时候,主要分为三类:
- ADMIN : 超级管理员
- OPERATOR : 普通用户,管理某个同步任务下的同步配置,添加数据表,修改canal配置等
- ANONYMOUS : 匿名用户,只能进行同步状态查询的操作.
同步管理
同步模式配置 (点击同步列表右边的查看/编辑链接)
a. 同步一致性
- 基于数据库反查 (简单点说,就是强制反查数据库,从binlog中拿到pk,直接反查对应数据库记录进行同步,回退到几天前binlog进行消费时避免同步老版本的数据时可采用)
- 基于当前日志变更 (基于binlog/redolog解析出来的字段变更值进行同步,不做数据库反查,推荐使用)
b. 同步模式
- 行模式 (兼容otter3的处理方案,改变记录中的任何一个字段,触发整行记录的数据同步,在目标库执行merge sql)
- 列模式 (基于log中的具体变更字段,按需同步)
c. 特殊组合: (同样支持)
- 基于数据库反查+列模式
- 基于当前日志变更+行模式
同步简要信息 (点击同步列表上的通道Channel名字的链接)
- 延迟时间 = 数据库同步到目标库成功时间 - 数据库源库产生变更时间, 单位秒. (由对应node节点定时推送配置)
- 最后同步时间 = 数据库同步到目标库最近一次的成功时间 (当前同步关注的相关表,同步到目标库的最后一次成功时间)
- 最后位点时间 = 数据binlog消费最后一次更新位点的时间 (和同步时间区别:一个数据库可能存在别的表的变更,不会触发同步时间变更,但会触发位点时间变更)
同步详细信息 (点击同步简要信息上的Pipeline名字的链接)
目前主要分为几类:
- 映射关系列表
- 延迟时间
- 同步进度
- 监控管理
- 日志记录
映射关系列表
点击查看打开映射关系信息页面:
说明:
- 定义同步的源和目标的表信息 (注意:表名可以不同,可以定义数据库分库/分表)
- Push权重 (对应的数字越大,同步会越后面得到同步,优先同步权重小的数据)
- FileResolver (数据关联文件的解析类,目前支持动态源码推送,在目标jvm里动态编译生效,不再需要起停同步任务)
- EventProcessor (业务自定义的数据处理类,比如可以定义不需要同步status='ENABLE'的记录或者根据业务改变同步的字段信息 简单业务扩展,otter4新特性)
- 字段同步 (定义源和目标的字段映射,字段名和字段类型均可进行映射定义,类似于数据库视图定义功能 otter4新特性)
- 组合同步 (字段组的概念,字段组中的一个字段发生变更,会确保字段组中的3个字段一起同步到目标库 otter4新特性)
- 多个字段决定一个图片地址,变更文件字段中的任何一个字段,就会触发FileResolver类解析,从而可以确保基于字段同步模式,也可以保证FileResolver能够正常解析出文件 otter4重要的优化)
吞吐量
- 数据记录统计 (insert/update/delete的变更总和,不区分具体的表,按表纬度的数据统计,可查看映射关系列表->每个映射关系右边的行为曲线链接)
- 文件记录统计