为什么使用 --flush-logs 执行 mysqldump 时 mysql 从属服务器会死机?

为什么使用 --flush-logs 执行 mysqldump 时 mysql 从属服务器会死机?

我在 Linux 上有一个 mysql 复制从属服务器。我正在执行 mysqldump 来备份数据库。我将其指向从属服务器以分散负载。我使用的 mysqldump 选项包括,--flush-logs这导致 mysql 服务器死机。它收到信号 11(即段错误)。当我不使用 执行此操作时--flush-logs,一切都正常。为什么会这样?

更新:这是 /var/log/syslog 的相关部分(这是 debian 系统上 mysql 错误消息所在的位置)

Jun 24 11:01:17 db2 mysqld[30673]: mysqld got signal 11;
Jun 24 11:01:17 db2 mysqld[30673]: This could be because you hit a bug. It is also  possible that this binary
Jun 24 11:01:17 db2 mysqld[30673]: or one of the libraries it was linked against is corrupt, improperly built,
Jun 24 11:01:17 db2 mysqld[30673]: or misconfigured. This error can also be caused by malfunctioning hardware.
Jun 24 11:01:17 db2 mysqld[30673]: We will try our best to scrape up some info that will hopefully help diagnose
Jun 24 11:01:17 db2 mysqld[30673]: the problem, but since we have already crashed, something is definitely wrong
Jun 24 11:01:17 db2 mysqld[30673]: and this may fail.
Jun 24 11:01:17 db2 mysqld[30673]: 
Jun 24 11:01:17 db2 mysqld[30673]: key_buffer_size=16777216
Jun 24 11:01:17 db2 mysqld[30673]: read_buffer_size=131072
Jun 24 11:01:17 db2 mysqld[30673]: max_used_connections=2
Jun 24 11:01:17 db2 mysqld[30673]: max_connections=100
Jun 24 11:01:17 db2 mysqld[30673]: threads_connected=1
Jun 24 11:01:17 db2 mysqld[30673]: It is possible that mysqld could use up to 
Jun 24 11:01:17 db2 mysqld[30673]: key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 233983 K
Jun 24 11:01:17 db2 mysqld[30673]: bytes of memory
Jun 24 11:01:17 db2 mysqld[30673]: Hope that's ok; if not, decrease some variables in the equation.
Jun 24 11:01:17 db2 mysqld[30673]: 
Jun 24 11:01:17 db2 mysqld_safe[31409]: Number of processes running now: 0
Jun 24 11:01:17 db2 mysqld_safe[31411]: restarted

答案1

考虑到内存量约为 200MB,我猜你没有用完内存。你可以检查 dmesg 以查看机器是否已用完内存。

如果其他进程也因类似问题或总线错误而终止,则可能是内存有问题。您可以使用 memtest86 进行检查。

否则,我会说你发现了 mysql 中的一个错误。你可以尝试升级到最新版本的 MySQL,或者如果你使用的是最新版本,请降级并查看是否遇到相同的问题。如果遇到同样的问题,那么我建议向 MySQL 提交错误报告。

答案2

mysql 哪个版本?

您的 my.cnf 文件中是否启用了“expire-log-days”或“log-bin”选项?

--flush-log 选项有几个已知错误,会导致日志轮换、转储等崩溃。

相关内容