背景

otter4.0发布至今也差不多有近一年的时间,中间过程有着比较曲折经历,拥抱了许多变化,目前otter4已经在逐步替换otter3,继续服务icbu的相关中美同步业务,otter3即将成为过去式。

otter4管理系统(manager)

比如我们内部系统使用了otter.alibaba-inc.com的域名,后续文档描述的时候会基于此域名链接

系统登录

匿名访问时只拥有同步状态的查询权限,可考虑与自己用户授权管理.

同步管理

Manager使用介绍 - 图1

同步模式配置 (点击同步列表右边的查看/编辑链接)

Manager使用介绍 - 图2说明:

a. 同步一致性

  • 基于数据库反查 (简单点说,就是强制反查数据库,从binlog中拿到pk,直接反查对应数据库记录进行同步,回退到几天前binlog进行消费时避免同步老版本的数据时可采用)
  • 基于当前日志变更 (基于binlog/redolog解析出来的字段变更值进行同步,不做数据库反查,推荐使用)

b. 同步模式

  • 行模式 (兼容otter3的处理方案,改变记录中的任何一个字段,触发整行记录的数据同步,在目标库执行merge sql)
  • 列模式 (基于log中的具体变更字段,按需同步)
    c. 特殊组合: (同样支持)

  • 基于数据库反查+列模式

  • 基于当前日志变更+行模式

同步简要信息 (点击同步列表上的通道Channel名字的链接)

Manager使用介绍 - 图3说明:

  • 延迟时间 = 数据库同步到目标库成功时间 - 数据库源库产生变更时间, 单位秒. (由对应node节点定时推送配置)
  • 最后同步时间 = 数据库同步到目标库最近一次的成功时间 (当前同步关注的相关表,同步到目标库的最后一次成功时间)
  • 最后位点时间 = 数据binlog消费最后一次更新位点的时间 (和同步时间区别:一个数据库可能存在别的表的变更,不会触发同步时间变更,但会触发位点时间变更)

同步详细信息 (点击同步简要信息上的Pipeline名字的链接)

目前主要分为几类:

  • 映射关系列表
  • 延迟时间
  • 同步进度
  • 监控管理
  • 日志记录
映射关系列表

Manager使用介绍 - 图4

点击查看打开映射关系信息页面:Manager使用介绍 - 图5说明:

  • 定义同步的源和目标的表信息 (注意:表明可以不同,可以定义数据库分库/分表)
  • Push权重 (对应的数字越大,同步会越后面得到同步,优先同步权重小的数据)
  • FileResolver (数据关联文件的解析类,目前支持动态源码推送,在目标jvm里动态编译生效,不再需要起停同步任务)
  • EventProcessor (业务自定义的数据处理类,比如可以定义不需要同步status='ENABLE'的记录或者根据业务改变同步的字段信息 简单业务扩展,otter4新特性)
  • 字段同步 (定义源和目标的字段映射,字段名和字段类型均可进行映射定义,类似于数据库视图定义功能 otter4新特性)
  • 组合同步 (字段组的概念,字段组中的一个字段发生变更,会确保字段组中的3个字段一起同步到目标库 otter4新特性)
  • 多个字段决定一个图片地址,变更文件字段中的任何一个字段,就会触发FileResolver类解析,从而可以确保基于字段同步模式,也可以保证FileResolver能够正常解析出文件 otter4重要的优化)
吞吐量

Manager使用介绍 - 图6说明:

  • 数据记录统计 (insert/update/delete的变更总和,不区分具体的表,按表纬度的数据统计,可查看映射关系列表->每个映射关系右边的行为曲线链接)
  • 文件记录统计
延迟时间

Manager使用介绍 - 图7说明:

  • 延迟时间的统计 = 数据库同步到目标库成功时间 - 数据库源库产生变更时间, 单位秒. (由对应node节点定时推送配置)
同步进度

Manager使用介绍 - 图8说明:

  • mainstem状态: 代表canal模块当前的运行节点(也即是binlog解析的运行节点,解析会相对耗jvm内存)
  • position状态: 当前同步成功的最后binlog位点信息 (包含链接的是数据库ip/port,对应binlog的位置,对应binlog的变更时间此时间即是计算延迟时间的源库变更时间)
  • 同步进度: 每个同步批次会有一个唯一标识,可根据该唯一标示进行数据定位,可以查看每个批次的运行时间,找出性能瓶颈点
监控管理

Manager使用介绍 - 图9说明:

  • 监控项目
  • 同步延迟,position超时(位点超过多少时间没有更新) , 一般业务方关心这些即可
  • 异常 (同步运行过程中出现的异常,比如oracle DBA关心oracle系统ORA-的异常信息,mysql DBA关心mysql数据库相关异常)
  • process超时(一个批次数据执行超过多少时间),同步时间超时(数据超过多少时间没有同步成功过)
  • 阀值设置
  • 1800@09:00-18:00 , 这例子是指定了早上9点到下午6点,报警阀值为1800.
  • 发送对象
  • otterteam为otter团队的标识,阿里内部使用了dragoon系统监控报警通知,如果外部系统可实现自己的报警通知机制
日志记录

Manager使用介绍 - 图11说明:

  • 日志标题即为对应的监控规则定义的名字,可根据监控规则检索对应的日志记录
  • 日志内容即为发送报警的信息
    注意: otter4采用主动推送报警的模式,可以保证报警的及时性以及日志完整性(相比于日志文件扫描机制来说)

配置管理

数据源

Manager使用介绍 - 图12说明:

  • 主要是数据库连接信息:定义字符编码,ip地址等 (类似napoli等存储也可以抽象为数据源进行配置)
  • 切换数据库时,可根据ip检索同步数据库,找到需要切换的同步任务

数据表

Manager使用介绍 - 图13

说明:

  • 数据表是一种抽象概念,(针对数据库类型即为一个数据库表的定义)

canal配置

说明:主要是管理canal链接到mysql/oracle获取日志的相关参数等,业务方可不重点关注

机器管理

Manager使用介绍 - 图14

原文: https://github.com/alibaba/otter/wiki/Manager%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D