mysql主从同步异常原因及恢复
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主从同步异常原因及恢复的更多相关文章
- MySQL主从同步异常问题解决Client requested master to start replication from position > file size
MySQL主从同步异常问题解决Client requested master to start replication from position > file size 一.问题描述 MySQ ...
- Mysql主从同步 异常Slave_SQL_Running: No
在刚搭建好的mysql主从节点上对从节点进行操作,导致同步异常:报错如下: 从节点执行: mysql> show slave status\G;************************* ...
- 监控mysql主从同步状态是否异常
监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员 标签:监控mysql主从同步状态是否异常 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1 ...
- 运维派 企业面试题1 监控MySQL主从同步是否异常
Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...
- mysql主从同步(2)-问题梳理
之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题:1)slave运行过慢不能与master同步,也就是M ...
- mysql主从同步问题梳理
前言: MySQL主从复制故障机延迟原因有很多,之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题: 1) ...
- Mysql主从同步(复制)
目录: mysql主从同步定义 主从同步机制 配置主从同步 配置主服务器 配置从服务器 使用主从同步来备份 使用mysqldump来备份 备份原始文件 ...
- mysql主从同步(4)-Slave延迟状态监控
mysql主从同步(4)-Slave延迟状态监控 转自:http://www.cnblogs.com/kevingrace/p/5685511.html 之前部署了mysql主从同步环境(Mysql ...
- mysql 主从同步 mysql代理服务器
搭建mysql主从同步(实现数据自动备份)实例:把主机192.168.4.100的数据库配置为主机192.168.4.99的从数据库 主数据库服务器配置修改配置文件: [root@mysql ~]# ...
随机推荐
- 【转载】《Unix网络编程》思维导图
参考这篇文章,很不错: http://www.cnblogs.com/qiaoconglovelife/p/5734768.html
- 限制input的输入类型
1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste= ...
- Android时时监測手机的旋转角度 依据旋转角度确定在什么角度载入竖屏布局 在什么时候载入横屏布局
一.场景描写叙述: 最近开发中遇到个问题,就是我们在做横竖屏切换的功能时.横竖屏布局是操作系统去感知的,作为开发员没法确定Activity在什么时候载入横屏布局,在什么时候载入竖屏布局.因此为了找到载 ...
- 战五渣系列之八(绝杀AOP)
开发不用aop.程序猿的人生该会浪费多少时间.我想是时候让程序猿打败alpha狗了.程序猿解救世界. 1.概念 面向切面编程.这意味着,一切不在流水线上的东西.包含权限.日志.缓存.校验.资源.事物. ...
- Python函数参数传递
Python中函数参数的传递是采用传值方式,但是和C/C++有所不同 C/C++方式 void fun(int a) { a = 10; } void main() { int c =3; fun(c ...
- Centos 6.4 搭建LANMP一键安装版
lanmp一键安装包是wdlinux官网2010年开始推出的lamp,lnmp,lnamp(apache,nginx,php,mysql,zend,eAccelerator,pureftpd)应用环境 ...
- LINQ体验(1)——Visual Studio 2008新特性
一.写本系列的目的 我平时利用课余零碎时间来学习ASP.NET3.5.LINQ.Silverlight.ASP.NET 3.5 Extensions等新东西,通过笔记形式来记录自己所学的历 程.也给大 ...
- 嵌入式驱动开发之--- 虚拟磁盘SBULL块设备驱动程序分析
#define SBULL_MINORS 16 /* 每个sbull设备所支持的次设备号的数量 */ #define KERNEL_SECTOR_SIZE 512 // 本地定 ...
- 授权QQ登录的qq端前端页面变迁
ac_type = 'qq' if ac_type == 'qq': myid, mypwd = qq_key xp = '/html/body/div/div/div[2]/div/div/div/ ...
- 通过fsharp 使用Enterprise Library Unity 3 - 三种拦截模式的探索
这篇就三种拦截模式进行一下探索. 特性总结 类型 特点 其它 InterfaceInterceptor Innstance 仅单接口 类内部函数互相引用无法引起拦截行为 TransparentPr ...