与
ESC
输入关键词搜索文章

磁盘满Mysql同步状态显示正常实际不同步

全文约 517 字预计阅读 2 分钟
今天有台mysql从数据库服务器因为磁盘满了而导致同步失败,访问也失败,清理空间后重启mysql一切都显示正常,查看同步专业如下: mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.10.10.1 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-bin.006842 Read_Master_Log_Pos: 67309612 Relay_Log_File: mysqld-relay-bin.019867 Relay_Log_Pos: 66793478 Relay_Master_Log_File: master-bin.006833 Slave_IO_Running: Yes Slave_SQL_Running: Yes 同步的两个slave都是yes,也就没留意它了,到后来才发现它实际上停止的,没有任何错误提示,想想取消同步,再开启说不定就可以了,结果一执行stop slave就卡死了。 mysql> stop slave; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 15367 Current database: *** NONE *** 接下来就什么都操作不了了,kill mysql重新启动重复操作都不行。 应该是磁盘满的时候同步的日志文件没有写完整,导致同步的时候卡死。最后查看mysql任务列表发现有个卡了1865618秒的Waiting for an event from Coordinator复制进程任务,决定kill它,应该是它卡了很久。 mysql> show processlist; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 18126 Current database: *** NONE *** +-------+-------------+-----------+------+---------+---------+-----------------------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-------+-------------+-----------+------+---------+---------+-----------------------------------------------+------------------+ | 16549 | system user | | NULL | Connect | 685 | Waiting for master to send event | NULL | | 16550 | system user | | NULL | Connect | 685 | Waiting for Slave Worker to release partition | NULL | | 16551 | system user | | NULL | Connect | 1865618 | Waiting for an event from Coordinator | NULL | | 18126 | root | localhost | NULL | Query | 0 | init | show processlist | +-------+-------------+-----------+------+---------+---------+-----------------------------------------------+------------------+ 4 rows in set (0.00 sec) kill后确实可以stop slave同步了,可是一启动,又出现了,而且同样实际没有同步,会卡死所有的别的操作,最后没办法,只能老办法关闭多线程复制,改成单线程复制试试看。 mysql> set global slave_parallel_workers = 0; 重新kill,再开启同步,结果发现复活了。不知道为什么开始多并发同步就会卡死在一些错误的地方。同样暂时没有详细去寻找答案。
磁盘满Mysql同步状态显示正常实际不同步
分享

发表评论

评论 0 条

暂无评论,来说点什么吧。