MySQL复制滞后增加

我有简单的主从复制设置。 一切工作都没有问题超过一年。

几天前,复制滞后开始上升,而且还在上升,没有明显的原因。

Seconds_Behind_Master现在已经超过4天6小时。

SQL和IO从线程都在工作,通信没有问题。

SHOW SLAVE STATUS\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: s1.my.pl Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.001674 Read_Master_Log_Pos: 10948252 Relay_Log_File: mysqld-relay-bin.000509 Relay_Log_Pos: 63370742 Relay_Master_Log_File: mysql-bin.001638 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 63370596 Relay_Log_Space: 3523067396 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 371329 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 1 row in set (0.00 sec) 

显示完整的进程列表在一行中产生奇怪的输出“exit mysqld_lock_tables()”,我不知道这意味着什么

  SHOW FULL PROCESSLIST; +-----+-------------+-----------+------+---------+--------+----------------------------------+-----------------------+-----------+---------------+-----------+ | Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined | Rows_read | +-----+-------------+-----------+------+---------+--------+----------------------------------+-----------------------+-----------+---------------+-----------+ | 808 | system user | | NULL | Connect | 892 | Waiting for master to send event | NULL | 0 | 0 | 1 | | 809 | system user | | NULL | Connect | 371477 | exit mysqld_lock_tables() | NULL | 0 | 0 | 1 | | 810 | root | localhost | NULL | Query | 0 | NULL | SHOW FULL PROCESSLIST | 0 | 0 | 401 | +-----+-------------+-----------+------+---------+--------+----------------------------------+-----------------------+-----------+---------------+-----------+ 

SHOW_OPEN_TABLES命令显示没有表被locking

任何提示我可以做什么来解决这个问题或如何得到更详细的诊断?

MySQL复制的一个问题是从机中的I / O串行化。 当主设备同时执行多个I / O任务时,它们被写入到单个中继日志中,然后由从设备执行,从而串行化I / O。 因此,您的从机应该始终能够比主机拥有更多的I / O吞吐量。

要查看实际上是否有I / O问题,请安装ioprompt ( 主页 )。

在你的情况下,可能会有另一个问题,你可能会遇到一个错误。 你有没有尝试过

 stop slave; start slave; 

看看是否解决了这个问题? 接下来,尝试停止并启动你的MySQL slave进程。