我们在mariadb服务器之间有一些复制连接,其中大多数是主从连接(主服务器和从服务器上的版本相同)。有时,但有规律地,一个连接似乎停止工作。但是没有错误,io和sql运行线程正在运行。在这些情况下,我们只注意到从机上缺少值,然后我停止并再次启动从机,在这之后,我们在主机后面有一秒,在没有之前。我现在已经了解了一些关于变量master\u heartbeat\u period的内容,但是它是用默认值(30秒)启用的,似乎也不起作用。这种奇怪行为的原因是什么?我们能做什么?
编辑:经过一些研究(主从上的一个预定事件:在主从上它在一个表中写入一个当前时间戳,在从上它保存这个时间戳与当前时间的差异)我发现,在几个小时后,我们有这些从机定期停止。在7200秒(2小时)后,从机将再次启动。现在11小时内发生了两次。会是什么?
edit2:进一步调查表明,这种现象可能不是由mariadb引起的。我已经监视了一些连接(在我的第一次编辑中描述过),这样我发现,只有来自特定主机(mshyper-v)的vm的master复制才会延迟,而且它们绝对同步地延迟。我想,延迟的原因(直到7200秒,然后延迟消失)一定是在这个主机上。但是-我们在这些vm上也有一些主复制的示例,但是这个问题并没有出现在这个连接中。我们从另一个主机的vm到从属vm的其他复制连接也没有问题。奇怪。
edit3:这可能不是dns问题。几天前,我把所有的主地址都换成了ip地址,并设置了skip\u no\u resolve。但一切都没变。一天中有两个主要的时间(大约05:58和10:15)。有趣的是,第一次(05:58)是相对恒定的,但是第二次(10:15)在未来每天大约持续30秒(从19.10的10:11开始)。到现在10:19)。还有,有趣的是,在27号晚上。到28.10。我们的时间发生了变化(夏季到冬季,+1小时),第二次(10:15)也发生了变化(28:10之前)。每11:15一次,现在大约每10:15一次)。第一次05:58没变。而且(我知道,我早就应该这么做了)我在mysql错误日志中每次2个条目:
2018-11-06 10:19:50 6172 [ERROR] Error reading packet from server: Lost connection to MySQL server during query (server_errno=2013) 2018-11-06 10:19:50 6172 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.002007' at position 113739713
好吧,有些东西让复制一天停止两次(大约03:58和08:15),没有任何错误,几乎相同的时间,但第二次大约20-30秒后,每天,2小时后,mariadb意识到这一点,打印这2条消息到日志,并重新连接从机。我很无助。
2条答案
按热度按时间yvfmudvl1#
现在我们解决了这个问题。我们将mariadb从10.1.x版本更新到10.3.7版本,问题就消失了。我们有几个不同版本的mariadb示例,问题只出现在版本10.1.x上,而不是所有版本上。我仍然认为,延误的原因来自马里亚布以外,但我们仍然不知道,原因可能是什么。但是,现在已经不是我们的问题了。更新解决了这个问题。
knsnq2tg2#
我也有同样的问题。添加:
在mysql 8.0.13上为我解决了这个问题。阅读这里:https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit
也可以看到:https://dba.stackexchange.com/questions/232365/mysql-8-0-updates-are-sometimes-stalling/271061#271061