MySQL - 为什么 SHOW SLAVE HOSTS 会导致 binlog 转储?

MySQL - 为什么 SHOW SLAVE HOSTS 会导致 binlog 转储?

我们的 MySQL 5.0.x 中有大量 binlog 文件。我们有一个正常的主/从复制,其中 1 个主服务器,1 个从服务器。查看 /var/log/mysql.log,几乎 90% 的时间里,复制器都会连接并执行SHOW SLAVE HOSTS导致 bin 日志转储的操作。

例如:

           7020 Query       SHOW SLAVE HOSTS
           7020 Binlog Dump Log: 'mysql-bin.029634'  Pos: 13273

然而,当我SHOW SLAVE HOSTS自己在 mysql 上执行此操作时,我没有得到任何结果。

有时,当复制器执行 时SHOW SLAVE HOSTS,mysql 会挂起数小时。/var/log/syslog同时我什么也没看到...

这是怎么回事?我该如何进一步调试?

记录显示 MySQL 主服务器和从服务器都是 ubuntu dapper。

答案1

要检查的一些事项:

  • 二进制日志的磁盘空间。

  • 检查ifconfig网络错误。我曾见过坏数据包导致复制偏离轨道。

  • 检查SHOW SLAVE STATUS/etc/my.cnf 以确保 MySQL 服务器 ID 没有变得相同。我曾见过这种情况,这对复制来说可能很糟糕。

  • mysql 日志中记录了写入日志或表时遇到的问题。如果它们归 root 所有,则可能会带来麻烦。

  • 如果可以,请使用 lm-sensors 监控服务器温度。风扇故障会升高系统温度,并过早降低内存、磁盘和 raid 控制器的性能。我见过在热系统上 raid 控制器比磁盘更频繁地发生故障。

我还会安排服务器停机CHECK TABLE; REPAIR TABLE; OPTIMIZE TABLE以适当运行。我曾看到 MySQL 日志中没有记录表损坏的情况,应用程序会忽略错误消息。

我见过坏内存损坏表的情况。在计划停机期间,运行物理内存测试。主板上的内存位置也可能出现问题。

我怀疑可能是网络更改导致了此问题,这可能是 DNS 查找更改之类的令人恼火的事情。例如,您的 /etc/resolv.conf 现在可能为空,并且如果它不是 IP 地址,则可能无法解析您的从属地址。

相关内容