学习 Canal(二):Canal 原理

2018-01-12 miko

MySQL Binary Log

MySQL Binary Log 支持两种数据复制方式:

  • 基于语句的复制(>= MySQL 3.23,--binlog-format=STATEMENT)
  • 基于行的复制(>= MySQL 5.1,--binlog-format=ROW)

Binary Log 是向后兼容的,新版本 MySQL 可以作为老版本 MySQL 的备库,但是反之则不行

步骤:

  1. 主库将数据更改记录到 Binary Log 中
  2. 从库将主库的 Binary Log 复制到自己的 Relay Log 中
  3. 从库读取 Relay Log 中的事件,进行重放

显示主库状态:

SHOW MASTER STATUS

File binlog 文件名

Position binlog 当前位置

如果需要 Canal 读取最新的 binlog,那么可以配置 instance.properties 文件下 canal.instance.master.journal.namecanal.instance.master.position 属性

参考: https://github.com/alibaba/canal/wiki/AdminGuide#instanceproperties%E4%BB%8B%E7%BB%8D

Cacal 原理


用户评论
开源开发学习小组列表