mysql - 异常高的 MySQL 写入和大于正常的二进制日志文件。我如何确定是什么原因造成的?

标签 mysql innodb replication mysqlbinlog

我们有一个 MySQL 主数据库,它复制到一个 MySQL 从数据库。我们遇到了 MySQL 在短时间内(几个小时)显示大量写入(但运行的查询数量没有增加)的问题。我们正在努力调查原因。

通常我们的二进制日志文件大小为 1 GB,但在我们遇到这些问题期间,日志文件跃升至 8.5 GB。

当我在其中一个 8.5 GB 的二进制日志上运行 mysqlbinlog --short-form BINARYLOG.0000 时,它只返回 196 KB 的查询和数据。当我在普通二进制日志 (1 GB) 上运行 mysqlbinlog --short-form 时,它会返回大约 8,500 KB 的查询和数据库事件。这没有意义,因为它多了 7 GB 的数据,但返回的二进制日志文件还不到 1 GB。

我看到很多这样的语句都有非常连续的时间戳,但我不确定这是否与问题有关,因为它们既处于正常时期,也处于我们遇到这些问题时。

SET TIMESTAMP=1391452372/*!*/;COMMIT/*!*/;
SET TIMESTAMP=1391452372/*!*/;BEGIN/*!*/;COMMIT/*!*/;
SET TIMESTAMP=1391452372/*!*/;BEGIN/*!*/;COMMIT/*!*/;
SET TIMESTAMP=1391452372/*!*/;BEGIN/*!*/;COMMIT/*!*/;

我如何确定是什么导致这些二进制日志的大小激增,这也导致了高写入,以至于服务器有时会离线,几乎就像 DDoS 攻击一样?

mysqlbinlog 怎么会返回这么少的数据,即使二进制日志文件本身多了 7 GB?我该怎么做才能确定二进制日志为 1 GB 的正常时间段与 8 GB 二进制日志出现问题的时间段之间的区别?感谢您提供的任何帮助。

比尔

最佳答案

我猜你的日志包含某种形式的 LOAD DATA [LOCAL] INFILE命令和与之关联的数据文件。这些命令不会生成太多 SQL 输出,因为它们的数据由 mysqlbinlog 写入临时文件。在处理过程中。你能检查输出是否包含任何这样的 LOAD DATA命令?

关于mysql - 异常高的 MySQL 写入和大于正常的二进制日志文件。我如何确定是什么原因造成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591420/

相关文章:

mysql - 组合主键 VS。 MySQL 中的辅助键

mysql 主从两台服务器复制

mysql - 错误 3098 (HY000) : The table does not comply with the requirements by an external plugin

mysql - Master-Master 复制 auto_increment_offset

php - 使用 php 识别点击了哪个按钮

mysql - 是否有任何已发布的 SQL 编码风格指南?

mysql - 如何从此 SELECT 中排除重复项?

mysql - Unicode 文本混淆 Mysql 查询

mysql - 选择...以嵌套方式进行更新和提交

innodb - MySQL InnoDB : cannot calculate statistics because the . ibd 文件丢失