数据库主从异常问题mysql
场景描述:在使用web功能时发现刚添加的数据在列表中没有展现,或者有时候展现有时候不展现(多个从库时出现)web
如何查找问题:sql
这时咱们已经怀疑可能从库延迟了,咱们须要确认下是延迟问题仍是同步中断数据库
咱们须要连接到从库执行命令:show slave status\G 来查看从库同步状况服务器
同步中断问题优化
若是Slave_IO_Running (负责与主机的io通讯),Slave_SQL_Running (负责本身的slave mysql进程),这两个参数若是有一个是no的,说明同步已经中断了spa
这时咱们须要去看Last_Errno(错误码) Last_Error(错误信息),来肯定什么缘由致使的错误日志
接下来咱们能够经过如下命令跳过错误,让同步正常执行进程
mysql>stop slave 中止同步ip
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进行优化