解读show slave status 命令判断MySQL复制同步状态

1. show slave status命令可以显示主从同步的状态

MySQL> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000012
Read_Master_Log_Pos: 126067593
Relay_Log_File: relaylog.000004
Relay_Log_Pos: 29359388
Relay_Master_Log_File: binlog.000012
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: replTestDB
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: 126067593
Relay_Log_Space: 29359554
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: 0
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: 101
Master_UUID: 868b55b4-6133-11e7-9206-000c29ea080d
Master_Info_File: /u01/mysql/my3308/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)

2. 判断Slave_IO_Running 和Slave_SQL_Running两个线程的状态

Slave_IO线程负责把主库的bin日志(Master_Log)内容,投递到从库的中继日志上(Relay_Log)。

Slave_SQL线程负责把中继日志上的语句在从库上执行一遍。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Yes表示正常,No表示异常

Slave_IO线程相对比较简单,一般不容易出错,如果Slave_IO_Running显示为No,可能是以下几个原因导致的:

  1. 网络问题
  2. 权限问题,例如在配置slave同步时因为slave访问master没有权限导致的问题。
  3. mater上的binlog文件误删或者其他问题导致的master库突然停止而更新了binlog日志,这时候slave

    可能出现早不到binlog文件的情况,解决方案是找到同步的点和binlog文件,重新 change master。

相对的Slave_SQL线程就比较容易出错,例如人为手动的在从库插入一条数据,造成主从不一致。但此时两个线程的状态任然是正常的,等到主库也插入一条同样的数据时,通知从库做相同操作,从库会出现主键重复的错误。此时Slave_SQL_Running的状态会变为No,

而Last_SQL_Error,Last_SQL_Error_Timestamp会记录错误的原因和发生时间。

Slave_SQL线程会停止后续的SQL语句执行,因为它意识到往后执行会导致错误修复的难度增加。

这时如果想继续同步后面的SQL,忽略报错则要执行下面的命令:

set global sql_slave_skip_counter=1;
start slave; 在主从库维护中,有时候需要跳过某个无法执行的命令,需要在slave处于stop状态下,
执行 set global sql_slave_skip_counter=N以跳过命令。
当N=1时,会连续跳过若干个event,直到当前所在的事务结束。当然如果N>1,
则每跳过一个event都要N--,位置若刚好落在一个事务内部,则会跳过这整个事务;
一个insert/update/delete不一定只对应一个event,由引擎和日志格式决定.

3. 如何判断主从完全同步

Master_Log_File和Relay_Master_Log_File所指向的文件必须一致
Relay_Log_Pos和Exec_Master_Log_Pos的为止也要一致才行
Slave_SQL_Running_State:显示为wait 意思是中继日志的sql语句已经全部执行完毕

解读show slave status 命令判断MySQL复制同步状态的更多相关文章

  1. show slave status 命令判断MySQL复制同步状态

    1. show slave status命令可以显示主从同步的状态 MySQL> show slave status \G; *************************** 1. row ...

  2. 从show slave status 中判断mysql同步状态

    slave status 中检查同步状态: 1.sql线程和io线程显示yes Slave_IO_Running: Yes Slave_SQL_Running: Yes 2. Master_Log_F ...

  3. 监控mysql主从同步状态是否异常

    监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员 标签:监控mysql主从同步状态是否异常 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1 ...

  4. 监控mysql主从同步状态脚本

    监控mysql主从同步状态脚本 示例一: cat check_mysql_health #!/bin/sh slave_is=($(mysql -S /tmp/mysql3307.sock -uroo ...

  5. nagios 实现Mysql 主从同步状态的监控

    一.系统环境 主机名 IP nagios 192.168.15.111 mysql_s 192.168.15.21 二.操作步骤 2.1 mysql_s端的配置 2.1.1 编写check_mysql ...

  6. MySQL show slave status命令参数

    ? Slave_IO_State SHOW PROCESSLIST输出的State字段的拷贝.SHOW PROCESSLIST用于从属I/O线程.如果线程正在试图连接到主服务器,正在等待来自主服务器的 ...

  7. MySQL show master / slave status 命令参数

    一.show master status 二.show slave status Slave_IO_State SHOW PROCESSLIST输出的State字段的拷贝.SHOW PROCESSLI ...

  8. zabbix利用percona-toolkit工具监控Mysql主从同步状态

    一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...

  9. 监控mysql主从同步状态

    在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要环节. ...

随机推荐

  1. webpack2配置

    详细的配置可以参考官网:https://doc.webpack-china.org/guides/ 一开始做项目时都是直接从组里前辈搭建好的脚手架开始写代码,到后来自己写新项目时又是拷贝之前的工程作为 ...

  2. Selenium2+Python自动化学习笔记(第1天)

    参考[http://blog.csdn.net/henni_719/article/details/51096531]大神写的笔记,多谢大神共享. 哈哈,今天又找到一位大神写的Selenium2+Py ...

  3. Puzzle Game HihoCoder - 1634

    题目链接:https://cn.vjudge.net/problem/HihoCoder-1634 题目意思:可以让矩阵里的某一个数变成p,或者不修改.求最大子矩阵最小,输出最小值. 思路:请看下图 ...

  4. L126

    Like so many things, it is not what's outside, but what is inside that counts. 许多事物都是如此,外表看起來虽不起眼,但是 ...

  5. 闸流管(或双向可控硅) IGBT 应用

    十条规则规则1. 为了导通闸流管(或双向可控硅),必须有门极电流≧IGT ,直至负载电流达到≧IL .这条件必须满足,并按可能遇到的最低温度考虑.规则2. 要断开(切换)闸流管(或双向可控硅),负载电 ...

  6. js 复制粘贴功能记录

    最近工作中需要在前端页面中使用代码完成剪贴板的读写,网上搜索了下相应的资料,记录下... 这个功能有两个办法一个是js方式,一个是使用flash 一.JS方法 1.复制 首先复制的过程分为两步曲,无论 ...

  7. CIL

    CIL 学习 http://www.cnblogs.com/chengxingliang/category/306943.html

  8. C 时间函数总结

    头文件 time.h 处理器时间函数 clock_t clock(void) 处理器的处理时间,如可以在 main开始的地方 使用这个函数,然后再 完毕后 调用这个函数 并 减去 之前的返回值,为了 ...

  9. python web开发配置

    安装python(最好是2.*版本) 安装easyinstall 参考Windows 下 Python easy_install 的安装 完成之后注意环境变量的配置 在系统环境变量的PATH中添加ea ...

  10. 关于15桥梁课程1&2的笔记以及待做事项的梳理

    1.指针所占用的空间是固定的 2.void *malloc(sizeof(int)); (这玩意耗时间,老师说通过内存池解决) free(p);free(p);   两次free()报错,正确的做法: ...