博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
双slave的server_uuid同样问题
阅读量:5813 次
发布时间:2019-06-18

本文共 2190 字,大约阅读时间需要 7 分钟。

早上做数据迁移,部署完slave2,发现3台机子的日志狂刷:

旧slave:

2014-05-29 14:35:35 996 [Note] Slave: received end packet from server, apparent master shutdown: 2014-05-29 14:35:35 996 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000005' at position 4072014-05-29 14:35:35 996 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommende
新slave:

2014-05-29 14:35:35 16770 [Note] Slave: received end packet from server, apparent master shutdown: 2014-05-29 14:35:35 16770 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000005' at position 4072014-05-29 14:35:35 16770 [Warning] Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended.
master:

2014-05-29 14:35:35 8242 [Note] Start binlog_dump to master_thread_id(86182) slave_server(55), pos(mysql-bin.000005, 407)2014-05-29 14:35:35 8242 [Note] Start binlog_dump to master_thread_id(86183) slave_server(111), pos(mysql-bin.000005, 407)2014-05-29 14:35:35 8242 [Note] Start binlog_dump to master_thread_id(86184) slave_server(55), pos(mysql-bin.000005, 407)

这样的现象应该是server-id同样导致master不知道哪个是slave,在多次确认server-id确实不一样后陷入无比郁闷其中。

slave 1:

slave 2:

这时有个新的发现:server_uuid 是同样。

没错,我的迁移是直接把旧的slave停掉,然后复制到新的机子上,结果 auto.cnf  里面保存的uuid 仍然是slave1 的uuid,导致在向master 申请binlog时master神经错乱。

更加具体的解释例如以下(btw:这是网上的一段解释,偶瞧着不错直接搬过来,原作者如有侵权请联系我 :-)):

MySQL 5.6 用 128 位的 server_uuid 取代了原本的 32 位 server_id 的大部分功能。原因非常easy,server_id 依赖于 my.cnf 的手工配置,有可能产生冲突 —— 而自己主动产生 128 位 uuid 的算法能够保证全部的 MySQL uuid 都不会冲突。在首次启动时 MySQL 会调用 generate_server_uuid() 自己主动生成一个 server_uuid,而且保存到 auto.cnf 文件 —— 这个文件眼下存在的唯一目的就是保存 server_uuid。在 MySQL 再次启动时会读取 auto.cnf 文件,继续使用上次生成的 server_uuid。使用 SHOW 命令能够查看 MySQL 实例当前使用的 server_uuid​:SHOW GLOBAL VARIABLES LIKE 'server_uuid';它是一个 MySQL 5.6 global variables全局唯一的 server_uuid 的一个优点是:能够解决由 server_id 配置冲突带来的 MySQL 主备复制的异常终止在 MySQL 5.6,Slave 向 Master 申请 binlog 时,会首先发送自己的 server_uuid,Master 用 Slave 发送的 server_uuid 取代 server_id (MySQL 5.6 之前的方式)作为 kill_zombie_dump_threads 的參数,终止冲突或者僵死的 BINLOG_DUMP 线程。

By linwaterbin

2014-05-29

Good Luck!

你可能感兴趣的文章
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
30分钟Git命令“从入门到放弃”
查看>>
nginx : TCP代理和负载均衡的stream模块
查看>>
MYSQL数据库间同步数据
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
让前端小姐姐愉快地开发表单
查看>>
Dubbo笔记(四)
查看>>
Web前端JQuery入门实战案例
查看>>
java B2B2C Springboot电子商城系统- SSO单点登录之OAuth2.0 登出流程(3)
查看>>
USB 通信原理
查看>>
7zZip zip RAR iOS
查看>>
date命令的详细用法!
查看>>
UiAutomator源码分析之UiAutomatorBridge框架
查看>>
python 开发之selenium
查看>>
Xcode3.2.5中找不到Mac OS X - Command Line Utility -...
查看>>
css的div垂直居中的方法,百分比div垂直居中
查看>>
如何理解EM算法
查看>>
nginx 域名跳转一例~~~(rewrite、proxy)
查看>>
linux用户家目录无损迁移到独立硬盘
查看>>