1、问题:

  1. MySQL从库中查看主从状态:
  2. show slave status\G,发现出现IO的报错:

  3. Last_IO_Errno: 1236
  4. Last_IO_Error: Got fatal error 1236 from master when reading data from binary log:
  5. 'A slave with the same server_uuid/server_id as this slave has connected to the master;
  6. the first event 'mysql-bin.001878' at 874478273, the last event read from './mysql-bin.001878' at 878264052,
  7. the last byte read from './mysql-bin.001878' at 878264052.'

2、背景:

  1. 这边有一台MySQL 服务器,有1,23 三个从库.第一天晚上 3 号从库用于其他数据库恢复操作,所以删掉了,只删掉了数据。
  2. 第二天晚上,我用 2 号从库对 3 号从库进行了恢复,步骤是停掉2号从库的slave 进程,然后关库,然后将2号从库data下的
  3. 所有数据全部cp 到了3号从库的data下,修改权限,然后重新启动了2台从库,可以正常启动。
  4.  
  5. 问题是,我启动2号从库的slave进程,3号从库的slave IO进程就会断掉,我启动3号从库的slave 进程,2号就会断掉。这个是哪里的原因?

3、处理思路

  1. 首先想到的是server_id 的问题,然后我对两台从库的server_id 进行了排查,发现server_id 是不同的,没有问题。
  2. 然后根据 Last_IO_Errno 的报错信息很清楚的发现:
    A slave with the same server_uuid/server_id as this slave has connected to the master
  3. 意思是:与此从机具有相同server_uuid / server_id的从机已连接到主机。也就是说,问题就出在了server_uuid上。
  4. 查看两边的 server_uuid,发现果然是一样的!

2号从库:

3号从库:

  1. 果断修改MySQL datadir 目录下的auto.cnf 文件中uuid,我的理解是只要与其他从库不一样就行。
  2. 修改完成之后重启MySQL 服务。
  3.  
  4. service mysqld stop;
  5.  
  6. service musqld start;
  7.  
  8. 进入数据库启动slave 进程 然后查看各个从库的状态,发现IO 进程恢复正常。

4、对server_uuid 的解释(网络资料):

  1. 由于恢复是直接把2号的slave停掉,然后直接cp到新的机子上,所以 auto.cnf 里面保存的uuid 仍然是2号从库的uuid
  2. 导致从库在向master 申请binlogmaster出错,导致从库IO进程断开。
  3. MySQL 5.6 128 位的 server_uuid 代替了原本的 32 server_id 的大部分功能。
  4. 原因很简单,server_id 依赖于 my.cnf 的手工配置,有可能产生冲突 —— 而自动产生 128 uuid 的算法可以保证所有的 MySQL uuid 都不会冲突。
  5.  
  6. 在首次启动时 MySQL 会调用 generate_server_uuid() 自动生成一个 server_uuid,并且保存到 auto.cnf 文件 ——
  7. 这个文件目前存在的唯一目的就是保存 server_uuid
  8. MySQL 再次启动时会读取 auto.cnf 文件,继续使用上次生成的 server_uuid
  9. 使用 SHOW 命令可以查看 MySQL 实例当前使用的 server_uuid
  10. SHOW GLOBAL VARIABLES LIKE 'server_uuid';
  11. 它是一个 MySQL 5.6 global variables
  12. 全局唯一的 server_uuid 的一个好处是:可以解决由 server_id 配置冲突带来的 MySQL 主备复制的异常终止
  13. MySQL 5.6Slave Master 申请 binlog 时,会首先发送自己的 server_uuidMaster Slave 发送的 server_uuid 代替
  14. server_id MySQL 5.6 之前的方式)作为 kill_zombie_dump_threads 的参数,终止冲突或者僵死的 BINLOG_DUMP 线程。
 
 
 
 
 
 
 
 
 
 
 

1、通过CP数据文件的方式恢复MySQL 从库 启动后报错:Last_IO_Errno: 1236:A slave with the same server_uuid/server_id as this slave has connected to the master;的更多相关文章

  1. 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

    测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...

  2. Mysql 利用拷贝data目录文件的方式迁移mysql数据库

    Mysql 利用拷贝data目录文件的方式迁移mysql数据库 步骤如下: 1.首先要确定data目录 这个问题困扰了我很久,因为网上的帖子大部分只是说拷贝mysql数据库目录下的data文件夹中的数 ...

  3. linux删除数据文件无备份恢复

    参考 : http://www.lunar2013.com/2013/06/linux-%E8%AF%AF%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E6%81%A2%E ...

  4. 非归档数据文件offline的恢复

    本文主要介绍非归档模式下offline数据文件的恢复,测试过程如下: SQL> select * from v$version where rownum<3; BANNER ------- ...

  5. ORA-03206,当表空间不够时,如何以添加数据文件的方式扩展表空间

    准备导入一个数据库,大约为33G,开始创建的空库表空间为自增到20G,结果自然不够,然后就开始自动扩展表空间大小 使用的如下语句 --自动扩展表空间大小 ALTER DATABASE DATAFILE ...

  6. 利用拷贝data目录文件的方式迁移mysql数据库

    其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库, 但是这次数据文件过大,大约有40个G,使用命令行导入,效果不是很好,经常在执行过程中报错.卡死 ...

  7. windows中LNK文件打开方式恢复(每日一修(1))

    相信有些用户曾试过错误地把LNK文件的打开方式更改其他文件,导致系统所有的快捷方式都失效.在vista与Windows7系统还不普遍使用的时候,相信大家会有点惊慌失措,不要紧,下面只要大家进行如下操作 ...

  8. 【Oracle】非RMAN恢复数据文件、控制文件

    实验环境:OEL 5.6 oracle 11g(11.2.0.4.0) 注意: system表空间数据文件不能在线recover,需要启动到mount状态再recover: undo表空间数据文件可以 ...

  9. 05 使用bbed跳过归档恢复数据文件

    5 使用BBED跳过归档 在归档模式下,缺失了一部分的归档日志文件,对数据文件进行恢复 1 开启归档 --shutdown immediate --startup mount --alter data ...

随机推荐

  1. mysql主从之基于gtid的主从复制

    一 GITD介绍 1.1 gtid的含义 Global Transaction Identifier,全局事务标识 阿里云的rds目前已经使用gtid 基于gtid的主从复制原理 每个mysql数据库 ...

  2. 选题Scrum立会报告+燃尽图 02

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8680 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶,徐丽君 组名:组长 第 ...

  3. “Deep models under the GAN: information leakage from collaborative deep learning”阅读笔记

    一.摘要 指出深度学习在机器学习场景下的优势,以及深度学习快速崛起的原因.随后点出研究者对于深度学习隐私问题的考虑.作者提出了一种强力的攻击方法,在其攻击下任何分布式.联邦式.或者中心化的深度学习方法 ...

  4. centos7搭建Fabric基础环境

    一.首先升级centos最新内核 参考https://www.cnblogs.com/sky-cheng/p/12146054.html 二.卸载旧版本docker [root@localhost ~ ...

  5. java之斗地主

    hashmap集合+ArrayList集合+Collections集合工具类shuffle()和sort()hashmap中get(key).put(key/value)Arraylist中的add( ...

  6. 某个应用的CPU使用率居然达到100%,我该怎么办?

    > 本文是通过学习极客时间专栏<Linux性能优化实战>05 | 基础篇:某个应用的CPU使用率居然达到100%,我该怎么办? ## CPU 使用率 *** 为了维护 CPU 时间, ...

  7. schedule of 2016-09-12~2016-09-18(Monday~Sunday)——1st semester of 2nd Grade

    2016/9/12 Monday 1.send present to Teacher Wei&hu 2.make ppt for 1st database 2.0 meeting for al ...

  8. ACM北大暑期课培训第七天

    昨天没时间写,今天补下. 昨天学的强连通分支,桥和割点,基本的网络流算法以及Dinic算法: 强连通分支 定义:在有向图G中,如果任意两个不同的顶点 相互可达,则称该有向图是强连通的. 有向图G的极大 ...

  9. Vi的三种模式及其指令

    第一部分:一般指令模式可用按键说明,光标移动,复制粘贴.搜索替代 移动光标的方法: 移动光标的方法 h或(左箭头) 光标向左移动一个字符 j或(下箭头) 光标向下移动一个字符 k或(上箭头) 光标向上 ...

  10. JavaScript系列之回调函数callback

    JavaScript系列之回调函数callback JavaScript回调函数的使用是很常见的,引用官方回调函数的定义: A callback is a function that is passe ...