MySQL binlog
1.概要
MySQL 的二进制日志binlog 可以说是MySQL最重要的日志
它记录了所有的DDL 和DML 语句(除了select)
以事件的形式记录 还包含语句所执行所消耗的时间
其中MySQL 的二进制日志是事务安全的
DDL ,主要有CREATE ALTER DROP 等
DML , 主要是用在定义或 改变表 的结构,数据类型 表之间的链接和约束
等初始化工作上,SELECT UPDATE INSERT DELETE 等用于操作数据库数据
2.binlog 应用场景:
场景一:MySQL 主从复制
主库:一般是业务库
从库:一般同步主库里面的数据
MySQL Replication 在master 端开启binlog,
master 把它的二进制日志传递给slaves 来达到
master-slaves 数据一致的目的
也就是我们常说的主库和备库
场景二:数据恢复,通过使用mysqlbinlog 工具来恢复数据
3.binlog日志包括两类文件:
1)二进制日志索引文件(文件名后缀为.index)
用于记录所有的二进制文件
2)二进制日志文件(文件名后缀为.00000*)
记录数据库所有的DDL和DML(除select)语句事件
4.kudu + MySQL 集成
mysql主库 mysql备库(产生binlog日志)–> cannel进行解析(maxwell也OK) --> Kafka/MQ --> spark --> kudu --> impala
streamset 可以实时将kafka的数据同步到kudu