Slave_IO_Running和slave_sql_running异常处理

配置MySQL主从服务时:

故障现象:

mysql> show slave status\G

.......
             Relay_Log_File: localhost-relay-bin.000535
              Relay_Log_Pos: 21795072
      Relay_Master_Log_File: localhost-bin.000094
           Slave_IO_Running: Yes
          Slave_SQL_Running: No
            Replicate_Do_DB: 
        Replicate_Ignore_DB: 
      ......

mysql replication 中slave机器上有两个关键的进程,死一个都不行,一个是Slave_IO_Running,一个是slave_sql_running,一个负责与主机的io通信,一个负责自己的slave mysql进程

下面写一下,这两个的状态要是有no或者connecting了,怎么恢复

如果是Slave_IO_Running 为connecting,只要是三个原因:

1、网络不通  解决方法:在slave服务器上Telnet  master_ip 3306 或者mysql -uusername -ppassword -hmasterip 试试能否链接上

2、密码不对  查看密码是否正确

3、pos值不对  查看主从上的pos值是否一致

如果是Slave_IO_Running为NO,个人认为有三种情况,一个是网络有问题,连接不上(同上),第二个是有可能my.cnf有问题,配置文件怎么写就不说了,网上太多了,最后一个是授权的问题,replication slave和file权限是必须的。

一旦Slave_IO_Running为no了先看err日志,看看报什么错,很可能是网络,也有可能是包太大收不了,这个时候主备上改max_allowed_packet这个参数。

如果是slave_sql_running no了,那么也有两种可能,

1.程序可能在slave上进行了写操作

2.也可能是slave机器重启后,事务回滚造成的,这也是mysql的一种自我保护的措施,像关键时候只读一样。

一般是事务回滚造成的:
解决办法一:
mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;

解决办法二、

首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值

进入master

mysql> show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000001 |     3362 |              |                  |
   +------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

然后到slave服务器上执行手动同步:

mysql> stop slave;

mysql>change master to master_host=‘192.168.1.201‘,master_user=‘mysync‘,master_password=‘q123456‘,
         master_log_file=‘mysql-bin.000001‘,master_log_pos=3362;

mysql> start slave;

即可!

时间: 2024-10-12 22:13:39

Slave_IO_Running和slave_sql_running异常处理的相关文章

MySQL主从配置实例

系统环境:centos 6.3_64位  2台 MySQL版本:mysql-5.6.22-linux-glibc2.5-x86_64.tar.gz master :192.168.1.201 slave :192.168.1.202 要求: MySQL版本一致 两台机器能互通,iptables开放3306端口或关闭iptables 关闭selinux 配置步骤: 1.安装数据库 下载,安装MySQL这里不多讲(见MySQL安装这篇笔记) 2.修改主服务器master:   #vi /etc/my

GTID模式复制异常处理

GTID区间有中断导致复制异常处理案例 昨天处理了一个MySQL 5.6版本下开启GTID模式复制异常案例,MASTER上的任何操作都无法在SLAVE上应用,SLAVE的RELAY LOG里有记录,但SLAVE的BINLOG却找不到蛛丝马迹. 由于开启了GTID,所以排查起来也简单,只需要在SLAVE上把RELAY LOG和BINLOG分别解析成文本文件,再直接搜索MASTER的UUID,就能找到SLAVE上是否应用了MASTER复制过来的事务. 排查过程中,曾经一度怀疑是因为设置了BINLOG

主从同步出现一下错误:Slave_IO_Running: Connecting

主从同步出现一下错误: Slave_IO_Running: Connecting Slave_SQL_Running: Yes 解决方法: 导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面: 1.网络不通 2.密码不对 3.pos不对 我敢肯定的并且排除的两个原因 1. 网络原因:在从库上拷贝主库上的备份文件的时候并没有出现任何的错误,因此可以排除. 2. POS 不对:这个我也可以排除,因为在主库上 show maste status 时我记录过了 PO

Slave_SQL_Running: No mysql同步故障解决方法

Slave_SQL_Running: No mysql同步故障解决 今天检查数据库发现一台MySQL Slave未和主机同步,查看Slave状态:mysql> show slave status\GSlave_IO_Running: YesSlave_SQL_Running: NoLast_Errno: 1062....Seconds_Behind_Master:NULL原因:1.程序可能在slave上进行了写操作 2.也可能是slave机器重起后,事务回滚造成的. 解决办法I:1.首先停掉Sl

【故障】MySQL主从同步故障-Slave_SQL_Running: No

转自:http://www.linuxidc.com/Linux/2014-02/96945.htm 故障现象:进入slave服务器,运行:mysql> show slave status\G        .......            Relay_Log_File: localhost-relay-bin.000535            Relay_Log_Pos: 21795072    Relay_Master_Log_File: localhost-bin.000094Sla

MySQL主从同步报错排错结果及修复过程之:Slave_SQL_Running: No

起因调查: 收到大量邮件报警想必事出有因,就问同事到底发生了什么?同事登录从库查看,发现出现如下报错提示,表示与主库同步失败,一直卡在哪里,看他弄了两个多小时,问题越来越多,解决一个恢复平静了一两分钟又不行了....于是报警的邮件又是一封又一份...于是向我求助.登录从库后发现: 其中一台从库报错内容为: 1 mysql> show slave status\G; 2 3 Slave_IO_Running: Yes 4 Slave_SQL_Running: No 5 6 Last_Errno:

2015.12.9 mysql 主从异常处理过程

参考文档 http://www.111cn.net/database/mysql/58979.htm mysql  版本 mysql  -V mysql  Ver 14.14 Distrib 5.6.25, for Linux (x86_64) using  EditLine wrapper 公司mysql主从服务器断了 故障发生时间:2015-12-08 19:51:35 故障恢复时间:2015-12-09 12:22:38 1.收到同事反馈  mysql  主从断开了 2.登录slave  

MySQL主从同步故障-Slave_SQL_Running: No

故障现象: 进入slave服务器,运行: mysql> show slave status\G .......             Relay_Log_File: localhost-relay-bin.000535              Relay_Log_Pos: 21795072      Relay_Master_Log_File: localhost-bin.000094          Slave_IO_Running: Yes          Slave_SQL_Run

mysql 主从数据不一致 Slave_SQL_Running: No 解决方法

在slave服务器上通过如下命令 mysql> show slave status\G; 显示如下情况: Slave_IO_Running: Yes Slave_SQL_Running: No 表示slave不同步 解决方法一(忽略错误,继续同步): 1.先停掉slave mysql> stop slave; 2.跳过错误步数,后面步数可变 mysql> set global sql_slave_skip_counter=1; 3.再启动slave mysql> start sla