面试官问我Mysql binlog如何运作的

本文详细介绍了MySQL主从复制的工作原理,包括主节点的binary log dump线程,从节点的I/O线程和SQL线程,以及异步、半同步和全同步模式。同时讨论了binlog的三种格式:row、statement和mixed,以及它们各自的优缺点。在使用statement格式的binlog时,Read Committed隔离级别可能导致主从数据不一致。
摘要由CSDN通过智能技术生成

binlog

主节点binary log dump线程

  当从节点连接主节点时,主节点会创建一个 log dump 线程,用于发送 binlog 的内容。在读取 binlog 中的操作时,此线程会对主节点上的 binlog 加锁,当读取完成,在发送给从节点之前,锁会被释放。

从节点 I/O 线程

  当从节点上执行start slave命令之后,从节点会创建一个 I/O 线程用来连接主节点,请求主库中更新的 binlog。I/O 线程接收到主节点 binlog dump 进程发来的更新之后,保存在本地 relay-log(中继日志)中。

从节点 SQL 线程

  SQL 线程负责读取 relay log 中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。

主从复制模式

  MySQL 主从复制默认是异步的模式。MySQL 增删改操作会全部记录在 binlog 中,当 slave 节点连接 master 时,会主动从 master 处获取最新的 bin log 文件。并把 bin log 中的 sql relay。

异步模式(mysql async-mode)

  这种模式下,主节点不会主动push bin log到从节点,这样有可能导致failover的情况下࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值