主库“写入过 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 末尾
相关推荐
大模型最新论文速读2 小时前
text-to-sql:从学术玩具到生产落地
数据库·sql
ManageEngineITSM2 小时前
工单分类怎么设计?类别、子类别与自动分派的实用方法
大数据·服务器·数据库·人工智能·分类·数据挖掘
ClouGence2 小时前
MongoDB 双向同步如何防止数据循环?(附实操指南)
数据库·mongodb
TDengine (老段)2 小时前
TDengine IDMP 十大实用功能(7)
数据库·物联网·时序数据库·tdengine·涛思数据·工业数据·idmp
Decay__3 小时前
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate)
运维·数据库·sql·mysql·架构
zjx23883 小时前
oracle11g转Gbase8s库SQL常见问题修改
数据库·sql
真上帝的左手3 小时前
30. 技术专题-‌应用框架组件-缓存-Redis
数据库·redis·分布式·缓存·中间件
雪芽蓝域zzs3 小时前
第 2 章:整合 MySQL + MyBatis,搭建数据库基础、实体类、Mapper、测试查询
数据库·mysql·mybatis
实泽有之,无泽虚之3 小时前
SQL Server数据库备份与还原详解
数据库·sqlserver
DevOpenClub3 小时前
高考一分一段 API:分数查位次、科类枚举与历史对照
linux·数据库·高考