MySQL binlog浅析

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

原文地址:https://www.cnblogs.com/liuge36/p/12614717.html