mysql主从出现问题 如何诊断故障点 如何恢复数据-阿里云开发者社区

开发者社区> 科技探索者> 正文

mysql主从出现问题 如何诊断故障点 如何恢复数据

简介:
+关注继续查看

主从问题原因

一般导致主从问题的因素一般有以下几种:一个主库的从库太多,从库硬件比主库差,慢SQL语句过多主从复制单线程,主库写并发太大来不及传送到从库。主从库之间的网络延迟。因为机器配置的问题,包括磁盘IOCPU,内存等各方面因素造成复制的延迟

主从问题

主从问题很多,错误代码也不一样,可以在从库上执行show slave status\G查看是否主从同步了,如果sqllo线程状态不是yes,说明主从同步出现问题了。

实例1-1      从库写入数据冲突

例如:show slave status\G查看主从同步,下面会出现错误码:

Last_SQL_Error: Error 'Can't createdatabase 'mao'; database exists' on query. Default database: 'mao'. Query:'create database mao'

一般出现错误会有代码提示,如上可以看出来是因为从库创建了跟主库同名的数据库,造成冲突了。


实例1-2      server-id相同

另外,经常也有主和从的server-id配置相同,导致从库的IO线程一直是正在连接的状态(connecting),一直转变不了yes.

如果server-id冲突,主服务器会kill掉先连接进来的从服务器的IO线程,后面连接进来的具有相同server-idIO线程会覆盖前面具有相同server-idIO线程.

一般可以修改从库的配置文件中server-id,与主库不同即可。


实例1-3      uuid相同冲突

配置MySQL主从时,由于是拷贝的mysql目录,导致主从mysql uuid相同, Slave_IO无法启动,报错信息如下:

The slave I/O thread stops becausemaster and slave have equal MySQL server UUIDs; these UUIDs must be differentfor replication to work.

解决办法:修改mysqldata 目录下auto.cnf 文件中uuid的值,使两台mysql不同即可,修改后重启mysql服务。

 

其他补充解决方法

方法一:如果数据要求不严格,可以忽略错误后,继续同步;该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况。

stop slave;

#表示跳过一步错误,后面的数字可变

set global sql_slave_skip_counter =1;

start slave;

方法二:

根据可以忽略的错误号事先在配置文件中配置,跳过指定的不影响业务数据的错误。

[root@DB01 logs]# grep slave-skip/etc/my.cnf

slave-skip-errors = 1032,1062,1007

方法三:主从库数据相差较大,或者要求数据完全统一的情况可以重新做主从,完全同步。

本文转自写个博客骗钱博客51CTO博客,原文链接http://blog.51cto.com/dadonggg/1956194如需转载请自行联系原作者


菜鸟东哥

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JSP中拼装数据为XML出现的问题
一、应用背景 JSP取得Servlet中放入request的List,将List中的数据拼装成XML。以下代码在Eclipse的内置浏览器中显示为xml,没有问题。 /** * 新闻Servlet * @author 徐越 * */ public class ListServlet extends HttpServlet { private static fin
799 0
sql server 备份与恢复系列三 简单恢复模式下的备份与还原
原文:sql server 备份与恢复系列三 简单恢复模式下的备份与还原 一.概述   前面讲了备份的一些理论知识,这篇开始讲在简单恢复模式下的备份与还原。在简单模式下是不能做日志备份的,发生灾难后,数据库最后一次备份之后做的数据修改将是全部丢失的,所以在生产环境下,数据又很重要,一般不建议使用这种模式。
819 0
undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复
  undo表空间的数据文件丢失,如果没有备份的情况下,而且丢失的undo文件可以置为offline状态后(注意是offline不是recover状态),则可以如下恢复,下边给出一个例子。
674 0
利用MySQL系统数据库做性能负载诊断
利用MySQL系统数据库做性能负载诊断某大师曾说过,像了解自己的老婆 一样了解自己管理的数据库,个人认为包含了两个方面的了解:1,在稳定性层面来说,更多的是关注高可用、读写分离、负载均衡,灾备管理等等high level层面的措施(就好比要保证生活的稳定性)2,在实例级别的来说,需要关注内存、IO、网络,热点表,热点索引,top sql,死锁,阻塞,历史上执行异常的SQL(好比生活品质细节)MySQL的performance_data库和sys库提供了非常丰富的系统日志数据,可以帮助我们更好地了解非常细节的,这里简单地列举出来了一些常用的数据。
2896 0
穿越数据的变迁 - 如何使用阿里云Redis数据闪回进行按时间点的数据恢复
如何使用阿里云Redis数据闪回进行按时间点的数据恢复
2058 0
删除文件的恢复
最近帮别人恢复U盘的一些文件信息,看了一下sleuthkit工具的使用,当然最简单还是在windows下使用easy recover,当时fat的文件系统还是存在许多缺点,它文件占用的cluster记录在fat表中,以链式的结果,如果删除的文件不连续,可以讲恢复的文件可能是坏的.
563 0
5489
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载