数据库主从异常问题不同步问题

数据库主从异常问题

场景描述:在使用web功能时发现刚添加的数据在列表中没有展示,或者有时候展示有时候不展示(多个从库时出现)

如何查找问题:

这时我们已经怀疑可能从库延迟了,我们需要确认下是延迟问题还是同步中断

我们需要链接到从库执行命令:show slave status\G 来查看从库同步情况

同步中断问题

如果Slave_IO_Running (负责与主机的io通信),Slave_SQL_Running (负责自己的slave mysql进程),这两个参数如果有一个是no的,说明同步已经中断了

这时我们需要去看Last_Errno(错误码) Last_Error(错误信息),来确定什么原因导致的错误

接下来我们可以通过以下命令跳过错误,让同步正常执行

mysql>stop slave 停止同步

mysql>set global sql_slave_skip_counter=1; 设置跳过错误

mysql>start slave 开始同步

同步延迟问题

当我们发现Master_Log_File参数和Relay_Master_Log_File参数不一致或者Read_Master_Log_Pos和Relay_Log_Pos参数相差很大时,这表明从库延迟了

1.这时我们先确认是主库导致的还是从库自身导致的,我们可以通过查看服务器负载来定位问题,使用命令top和iotop来分别查看cpu和io的使用情况

2.定位到具体服务器后,在数据库中执行show full processlist来查看当前查询语句中执行时间较长的语句,定位后再做优化就可以了,有时可能慢sql已经执行完了,

我们使用命令看不到慢sql,那我们就需要到mysql慢日志中去查看最近产生的慢日志,对慢sql进行优化 

 

 

posted @ 2019-03-01 16:12  生活如戏  阅读(538)  评论(0编辑  收藏  举报