mysql主从同步异常原因及恢复

前言

mysql数据库做主从复制,不仅可以为数据库的数据做实时备份,保证数据的完整性,还能做为读写分离,提升数据库的整体性能。但是,mysql主从复制经常会因为某些原因使主从数据同步出现异常。因此,下面介绍的是mysql主从同步异常的原因及恢复的方法。



auto.cnf 配置问题


这个问题是在部署主从复制的时候,可能会遇到的


【1】报错

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work


【2】分析:

当mysql做了主从时,每个mysql都会有个uuid 作为唯一标识的。上面是由于主从复制的mysql数据库了相同的UUID,所以,只需要修改auto.cnf配置文件即可。


【3】解决方法

<1>查找auto.cnf文件的位置(位置一般为:/var/lib/mysql/auto.cnf)

find / -iname auto.cnf


<2>将文件中的uuid修改为不同数值。



my.cnf配置问题


这个问题也是在部署主从复制的时候,可能会遇到的


【1】报错

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).


【2】分析

在mysql的主从配置中,每台mysql数据库的my.cnf中的server-id 必须是唯一,但是有的时候可能因为粗心而配成了相同的数值,也有可能mysql没有加载到my.cnf 文件中的server-id。


【3】解决方法

<1>找到mysql的配置文件my.cnf(默认位置为:/etc/my.cnf)

find / -name my.cnf


<2>修改从服务器的my.cnf配置文件中的server-id(注意要改为与主服务器不同的)


<3>在从服务器的数据库中直接添加server_id(此server_id数值与my.cnf中的一致)

mysql> set global server_id=2; 
mysql> start slave;



主库重启(数据库服务器宕机)


重点问题

这个问题常见于运维mysql数据库主从的过程中,一般都是由于数据库的误操作引起的,也有可能是数据库服务器因某些原因宕机或重启引起的。

数据库备份一定要定期进行,确保数据万无一失 .


【1】报错

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘binlog truncated in the middle of event; consider out of disk space on master; the first event ‘mysql-bin.001989’ at 9179, the last event read from ‘./mysql-bin.001989’ at 9179, the last byte read from ‘./mysql-bin.001989’ at 9179.’


【2】分析

由报错可看出是由于从库的二进制文件位置与主库的不一致导致的


【3】解决方法

<1>查看主库的二进制文件的位置

mysql -uroot -p’…..’ 进入数据库

show master status; 查看主库

重点关注: 
File 与 Position


<2>查看从库的状态

show slave status\G ;

重点关注下列两个的状态[yes/no]: 
Slave_IO_Running 
Slave_SQL_Running


<3>解决方法一:

忽略错误后,继续同步 
(适用于主库与从库数据相差不大;要求数据可以不完全统一,数据要求不严格的情况)

{1}进入从库操作: 
mysql -uroot -p‘…’


{2}停止从库同步 
stop slave;


{3}跳过1步错误(后面的数字可更改) 
set global sql_slave_skip_counter =1;


{4}开启从库 
start slave;


{5}查看从库状态 
show slave status\G;

Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
即为正常


<4>解决方法二

重新做主从,完全同步 
(适用于主库从库的数据相差较大;要求数据完全统一的情况 )

{1}先进入主库,进行锁表,此处锁定为只读状态,防止数据写入 (可选,因如有数据库备份,可直接利用备份) 
flush tables with read lock;


{2}进行数据备份,把数据备份为.sql的文件(可选,因如有数据库备份,可直接利用备份)

mysqldump -uroot -p‘密码’ –all-databases > mysql.back.sql


{3}进入主库,进行解锁(可选,因如有数据库备份,可直接利用备份)

unlock tables;


{4}把mysql的备份文件传输到从库服务器上(位置任意,但要能找到)

scp -r /root/mysql.bask.sql root@node2:/tmp/


{5}进入从库,停止从库的状态

stop slave;

清除slave上的同步位置,删除所有旧的同步日志,使用新的日志重新开始.(使用前先停止slave服务)

reset slave;(可选)


{6}在从库中导入数据备份

source /tmp/mysql.back.sql ;

mysql -uroot -p‘….’ database -f < /tmp/mysql.bask.sql 
(-f 为跳过错误的Sql,继续往下执行,可不加)


{7}设置从库同步

change master to master_host = ‘主库的IP’, master_user = ‘设置主从时设定的主库的用户’, master_port=主库的端口, master_password=’主库设定的密码’, master_log_file = ‘mysqld-bin.001989’, master_log_pos=24110520;

注意: 
master_log_file与master_log_pos 是主库show master status信息里的| File与Position


{8}重新开启从库同步 
start slave;


{9}查看同步状态 
mysql> show slave status\G 查看: 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes

mysql主从同步异常原因及恢复的更多相关文章

  1. MySQL主从同步异常问题解决Client requested master to start replication from position > file size

    MySQL主从同步异常问题解决Client requested master to start replication from position > file size 一.问题描述 MySQ ...

  2. Mysql主从同步 异常Slave_SQL_Running: No

    在刚搭建好的mysql主从节点上对从节点进行操作,导致同步异常:报错如下: 从节点执行: mysql> show slave status\G;************************* ...

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

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

  4. 运维派 企业面试题1 监控MySQL主从同步是否异常

    Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...

  5. mysql主从同步(2)-问题梳理

    之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题:1)slave运行过慢不能与master同步,也就是M ...

  6. mysql主从同步问题梳理

    前言: MySQL主从复制故障机延迟原因有很多,之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题: 1) ...

  7. Mysql主从同步(复制)

    目录: mysql主从同步定义      主从同步机制 配置主从同步      配置主服务器      配置从服务器 使用主从同步来备份      使用mysqldump来备份      备份原始文件 ...

  8. mysql主从同步(4)-Slave延迟状态监控

    mysql主从同步(4)-Slave延迟状态监控  转自:http://www.cnblogs.com/kevingrace/p/5685511.html 之前部署了mysql主从同步环境(Mysql ...

  9. mysql 主从同步 mysql代理服务器

    搭建mysql主从同步(实现数据自动备份)实例:把主机192.168.4.100的数据库配置为主机192.168.4.99的从数据库 主数据库服务器配置修改配置文件: [root@mysql ~]# ...

随机推荐

  1. 【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?

    这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如 [面试现场]如何判断一个数是否在40亿个整数中? [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. ...

  2. 【c++】多重继承与虚继承

    派生类的构造函数初始化列表将实参分别传递给每个直接基类,其中基类的构造顺序与派生列表中基类的出现顺序保持一致,而与派生类构造函数初始化列表中基类的顺序无关. 类型转换与多个基类 编译器不会在派生类向基 ...

  3. Manage, Administrate and Monitor GlassFish v3 from Java code usingAMX &amp; JMX

    http://kalali.me/manage-administrate-and-monitor-glassfish-v3-from-java-code-using-amx-jmx/ Manage, ...

  4. nginx access.log 忽略favicon.ico訪问记录的方法

    favicon.ico 文件是浏览器收藏网址时显示的图标,当第一次訪问页面时.浏览器会自己主动发起请求获取页面的favicon.ico文件.当/favicon.ico文件不存在时,服务器会记录404日 ...

  5. OpenCV图像处理篇之图像平滑

    图像平滑算法 图像平滑与图像模糊是同一概念,主要用于图像的去噪.平滑要使用滤波器.为不改变图像的相位信息,一般使用线性滤波器,其统一形式例如以下: %20\Large%20g(i,j)=\sum_{k ...

  6. 求出全部的正整数对 使他们最大公约数为n,最小公倍数为m

    题目大概是这种:cid=1021&pid=5http://" target="_blank">点击打开链接 大意就是 求出全部的正整数对 使他们最大公约数为 ...

  7. [转] logback logback.xml常用配置详解(一)<configuration> and <logger>

    转载文章:原文出处:http://aub.iteye.com/blog/1101260 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 根节点< ...

  8. JQuery实现表格行的上移、下移、删除、增加

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%&g ...

  9. Python爬虫开发【第1篇】【多线程爬虫及案例】

    糗事百科爬虫实例: 地址:http://www.qiushibaike.com/8hr/page/1 需求: 使用requests获取页面信息,用XPath / re 做数据提取 获取每个帖子里的用户 ...

  10. Java SE之break和continue标签

    文是学习网络上的文章时的总结,感谢大家无私的分享. Java没有提供goto功能,可是保留了gotokeyword. 在java中能够使用break标签和continue标签功能实现简版的goto功能 ...