主库“写入过 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 小时前
常见的数据库隔离级别以及企业里常用的是什么方案
数据库
Database_Cool_2 小时前
数据库慢查询优化首选方案:阿里云 RDS 性能洞察+自动诊断
数据库·人工智能·阿里云
YOU OU3 小时前
Redis初识
数据库·redis·缓存
长孙豪翔3 小时前
在.net中读写config文件的各种方法
java·数据库·.net
深盾科技_Virbox4 小时前
加密狗授权能力选型:从授权模型到全生命周期管理
java·网络·数据库
峥无4 小时前
深入理解MySQL事务与MVCC机制
数据库·mysql
行思理4 小时前
MongoDB 大数据备份,新手教程
数据库·mongodb
-To be number.wan4 小时前
数据库系统 | 规范化理论
数据库·学习
城数派5 小时前
1950-2026年中国0.1°逐月平均气温栅格数据集
数据库·信息可视化
livemetee5 小时前
【关于redis高性能,高可用处理】
数据库·redis·缓存