背景
otter4.0发布至今也差不多有近一年的时间,中间过程有着比较曲折经历,拥抱了许多变化,目前otter4已经在逐步替换otter3,继续服务icbu的相关中美同步业务,otter3即将成为过去式。
otter4管理系统(manager)
比如我们内部系统使用了otter.alibaba-inc.com的域名,后续文档描述的时候会基于此域名链接
系统登录
匿名访问时只拥有同步状态的查询权限,可考虑与自己用户授权管理.
同步管理
同步模式配置 (点击同步列表右边的查看/编辑链接)
说明:
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的变更总和,不区分具体的表,按表纬度的数据统计,可查看映射关系列表->每个映射关系右边的行为曲线链接)
- 文件记录统计
延迟时间
说明:
- 延迟时间的统计 = 数据库同步到目标库成功时间 - 数据库源库产生变更时间, 单位秒. (由对应node节点定时推送配置)
同步进度
说明:
- mainstem状态: 代表canal模块当前的运行节点(也即是binlog解析的运行节点,解析会相对耗jvm内存)
- position状态: 当前同步成功的最后binlog位点信息 (包含链接的是数据库ip/port,对应binlog的位置,对应binlog的变更时间此时间即是计算延迟时间的源库变更时间)
- 同步进度: 每个同步批次会有一个唯一标识,可根据该唯一标示进行数据定位,可以查看每个批次的运行时间,找出性能瓶颈点
监控管理
说明:
- 监控项目
- 同步延迟,position超时(位点超过多少时间没有更新) , 一般业务方关心这些即可
- 异常 (同步运行过程中出现的异常,比如oracle DBA关心oracle系统ORA-的异常信息,mysql DBA关心mysql数据库相关异常)
- process超时(一个批次数据执行超过多少时间),同步时间超时(数据超过多少时间没有同步成功过)
- 阀值设置
- 1800@0900 , 这例子是指定了早上9点到下午6点,报警阀值为1800.
- 发送对象
- otterteam为otter团队的标识,阿里内部使用了dragoon系统监控报警通知,如果外部系统可实现自己的报警通知机制
日志记录
说明:
- 日志标题即为对应的监控规则定义的名字,可根据监控规则检索对应的日志记录
- 日志内容即为发送报警的信息
注意: otter4采用主动推送报警的模式,可以保证报警的及时性以及日志完整性(相比于日志文件扫描机制来说)
配置管理
数据源
说明:
- 主要是数据库连接信息:定义字符编码,ip地址等 (类似napoli等存储也可以抽象为数据源进行配置)
- 切换数据库时,可根据ip检索同步数据库,找到需要切换的同步任务
数据表
说明:
- 数据表是一种抽象概念,(针对数据库类型即为一个数据库表的定义)
canal配置
说明:主要是管理canal链接到mysql/oracle获取日志的相关参数等,业务方可不重点关注
机器管理
原文: https://github.com/alibaba/otter/wiki/Manager%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D