主/从相同server_id引起的同步失败

  

昨天在做MySQL切换遇到一个诡异的想象,切换前后的结构图如下:


主/从相同server_id引起的同步失败

当我把一切都切换好之后,应其他需求,重启了04上的MySQL,然后显示奴隶状态\ G发现报错:

Last_IO_Error:, Fatal 错误:,,slave  I/O  thread  stops  because  master 以及slave  have  equal  MySQL  server  id;, these  ids  must  be  different  for  replication 用work (一、从而——replicate-same-server-id  option  must  be  used 提醒slave  but 却;能够does  not  always  make 意义;,please  check 从而manual  before  using 它)。

查看了一下03/04的server_id才发现,原来它们的server_id相同,我们知道,主/从的server_id是不能相同的,但是为什么在我重启之前我显示奴隶状态\ G的时候没有发现报错? ? ?并且我特别检查了一奴隶几下个参数:

Master_Log_File: mysql-bin.000001   Read_Master_Log_Pos: 38593   Relay_Master_Log_File: mysql-bin.000001   Exec_Master_Log_Pos: 38593年,

表示奴隶已经完全追上的主人,并且通过SQL_thread线程执行。


问题:在server_id相同的情况下,奴隶为什么之前没有报错呢,并且还可以继续应用大师的binlog呢? ? ?


废话不多说了,测试如下:


在一个主/从环境下,刚开始server_id不同,一切都很正常,数据也可以同步过去,我奴隶的server_id修改成与主的相同:

主:   mysql>, select  @@server_id;   + - - - - - - - - - - - - - +   | |,@@server_id    + - - - - - - - - - - - - - +   |,,,,,,583306 |   + - - - - - - - - - - - - - +   1,row  set 拷贝;(0.00,sec)      奴隶:   mysql>, select  @@server_id;   + - - - - - - - - - - - - - +   | |,@@server_id    + - - - - - - - - - - - - - +   |,,,,,,593306 |   + - - - - - - - - - - - - - +   1,row  set 拷贝;(0.00,sec)      mysql>, set  global  server_id=583306;      mysql>, select  @@server_id;   + - - - - - - - - - - - - - +   | |,@@server_id    + - - - - - - - - - - - - - +   |,,,,,,583306 |   + - - - - - - - - - - - - - +   1,row  set 拷贝;(0.00,sec)


然后显示奴隶状态\ G,还没有报错;

于是我在主人上插入了一条数据,观察一下奴隶有没有同步过去,显示奴隶状态\ G发现,位置的值变化了,但是当我选择这个表的时候,确没有找到刚才插入的那条数据,说明数据没有同步过去。

Master_Log_File: mysql-bin.000001   Read_Master_Log_Pos: 38857   Relay_Master_Log_File: mysql-bin.000001   Exec_Master_Log_Pos: 38857年,


通过显示relaylog事件命令也可以看的到,插入语句并没有写到中继日志中,所以数据没有同步过来,这就说明当我们修改server_id之后,显示奴隶状态\ G显示的结果并不是这么可靠,

mysql>, SHOW  RELAYLOG  EVENTS 拷贝& # 39;sht-sgmhadoopdn-02-relay-bin.000005& # 39;;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |,Log_name ,,,,,,,,,,,,,,,,,,,,,,,,,,, |, Pos , |, Event_type ,,,, |, Server_id  |, End_log_pos  |, Info ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | |,sht-sgmhadoopdn-02-relay-bin.000005 ,,, 4, |, Format_desc ,,, |,,,, 593306, |,,,,,,,,, 123, |, Server 版本:,5.7.21-log,, Binlog 版本:,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|   | |,sht-sgmhadoopdn-02-relay-bin.000005 拖延,123,|,Previous_gtids  |,,,, 593306, |,,,,,,,,, 194, |, 8 b94d944 - 34 - c8 - 11 - e8 - 9 - e15 - 0050568211 - bd: 1 - 144 -,,,,,,,,,,,,,,,,,,,,,,,,, |   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

主/从相同server_id引起的同步失败