主库“写入过 binlog,但后来主库 binlog 文件里看不到了”

典型场景是:

  • 主库事务提交时 binlog 已经写到 OS page cache 或 MySQL binlog 文件缓冲;
  • binlog dump 线程已经把这些 event 发给从库;
  • 从库 IO/SQL 线程收到并执行;
  • 从库开启了 log_slave_updates,所以这些 event 又写进了从库自己的 binlog;
  • 随后主库宕机;
  • 由于主库 sync_binlog != 1,或者底层存储/文件系统没有真正持久化,主库恢复后 binlog 被截断或丢失尾部 event。

这时就会看到:从库 binlog 有这些事务,但主库当前 binlog 文件没有。

所以一句话结论是:

"主库写过但未持久化,复制已发出,主库 crash 后 binlog 丢了,而从库保留了"是可能的。

如果你是在排查真实故障,重点看这些配置和证据:

  • 主库 sync_binlog
  • 主库 innodb_flush_log_at_trx_commit
  • 是否开启半同步,以及 rpl_semi_sync_source_wait_point
  • 主库是否发生过 crash/restart
  • 主库 error log 是否有 binlog truncation / crash recovery 记录
  • 从库 relay log / binlog 中 event 的 GTID 或 position 是否超过主库当前 binlog 末尾
相关推荐
赵渝强老师8 分钟前
【赵渝强老师】高斯数据库(openGauss)的数据库对象
数据库·postgresql·opengauss·国产数据库·高斯数据库
DLYSB_15 分钟前
交换机不会 HTTP 怎么办:用 SNMP Get / Trap 把指标和中断打到博灵声光 TTS
数据库·报警灯
wdfk_prog16 分钟前
canopennode-rtt推荐,不只可以做从站,也可以承担主站角色
c语言·开发语言·数据库·学习·算法·深度优先
昌原的儿子LEO25 分钟前
Linux 网络编程:select 与 epoll IO 多路复用详解
linux·网络·数据库
草莓熊Lotso31 分钟前
【Redis 初阶】特殊数据类型、渐进式遍历与数据库操作生产指南
linux·网络·数据库·redis·tcp/ip·缓存·bootstrap
λqaq735 分钟前
Redis 数据库基础:安装、5 大核心数据类型与常用命令
linux·数据库·redis·python·缓存
lhldsg38 分钟前
智慧场馆解决方案软件开发实战:从需求分析到落地部署全流程
数据库·数据仓库·需求分析
huaweichenai38 分钟前
spring boot 实现数据库分页操作
数据库·spring boot
小白羊丨1 小时前
异步任务创建接口如何幂等?
android·数据库
倔强的石头1061 小时前
连接数失控排查:从数据库会话、应用线程池到连接池泄漏
数据库·oracle