内容来自于《一节课解密阿里巴巴Canal》
传统MySQL主从复制原理
![](https://img2020.cnblogs.com/blog/299612/202101/299612-20210129112446630-1841630990.png)
Canal原理
![](https://img2020.cnblogs.com/blog/299612/202101/299612-20210129112536768-1068774467.png)
Canal整体架构原理
![](https://img2020.cnblogs.com/blog/299612/202101/299612-20210129112549246-497182568.png)
检查MySQL配置相关命令
这些命令需要在MySQL命令行中去查看执行
#是否启用了日志 show variables like 'log_bin'; #查看当前日志 show master status; #查看MySQL binlog模式 show variables like 'binlog_format'; #获取binglog文件列表 show binary logs; #查看当前正在写入的binlog文件 show master statusG #查看指定binlog文件的内容,注意,binlog日志格式要求为row格式; show binlog event in 'mysql-bin.000002';
其中binlog分为三种基本类型
ROW模式
除了记录sql语句之外,还会记录每个字段的变化情况,能够清楚的记录每行数据的变化历史,但是会占用较多的空间,需要使用mysqlbinlog工具进行查看
STATEMENT模式
只记录了sql语句,但是没有记录上下文信息,在进行数据恢复的时候可能会导致数据丢失的情况
MIX模式
比较灵活的记录,例如说当遇到表结构变更的时候,就会记录为Statement模式。当遇到了数据更新或者删除的情况下就会变为row模式。