基于tungsten API 同步mysql binlog出现EOF packet received的问题解决
来源:互联网 发布:联通 知乎 编辑:程序博客网 时间:2024/05/16 09:44
tungsten是一个开源的数据库同步工具,详细可参考官网(http://en.wikipedia.org/wiki/Tungsten)
项目需要,需要实时知道mysql更新的数据,因此需要同步对应mysql结点的binlog日志数据并解析,对于同步与解析tungsten 相关API都能实现。其中日志同步主要是RelayClient类,还解析是MysqlExtractor类,对于mysql日志解析,首先需要了解binlog日志格式,主要有(Mixed,row,statement三种),详细有时间会整理一篇文章说明其三种日志格式的区别,以及在解析过程中跟据应用以及服务器的需求选择不同日志,以及不同日志不同的解析等。
此篇需要记录的是在同步RelayClient日志过程中,在项目结尾阶段,部署后,测试阶段,突然发现开发环境在读完一个Binlog日志后会收到mysql服务器返回EOF的问题,由于开发过程中修改了tungsten API相关代码,开始一直在排查源代码相关问题,以及线上mysql部署的问题,都未发现原因。对于mysql主动关闭感觉到不知所措。
最后通过tungsten相关issuse论坛,有人提及多slave引起,以及查看mysql主从同步时,不同slave相关配制时 会配制不同的serverId,立即查看tungsten相关源码,其中有此项配制,由于测试环境与开发环境使用的是同一mysql结点,并且使用了同一serverId,从而引起了此问题的产生,经测试,使用不同serverId,此问题不再重现。
通过以上问题的排查感受很多:1.DB遇到问题时,一定要在可重现的机器上查到问题的原因,中间有想重新配制数据库结点的时候,重新配制开发结点,问题是能得以解决,但是部署线上时此问题一定会重现,从而会引起线上问题,因为如果DB问题能重现,一定要引起重视,排查出原因。2.对于开源项目使用时,遇到相关问题,查询issus相关论坛很重要,使用过程中也许有人遇到同类问题(在一个连接池源码研究过程中也深有感悟)。3.对于mysql多slave同步知识的不够了解也有一定原因,因为相关问题一定要对相关知识足够熟悉。
小记一下!以表这几天排查过程中的辛酸!
- 基于tungsten API 同步mysql binlog出现EOF packet received的问题解决
- tungsten API 同步日志清除Binlog失败的BUG解决
- xen中出现received packet with own address问题解决
- 基于MYSQL的Binlog增量数据同步服务
- Mysql主备同步,不写binlog问题解决
- tungsten-replicator 实现mysql 与mysql同步
- mysql 基于binlog恢复
- mysql binlog 混合模式 出现的基于sql的数据不一致,主要是now()这类函数导致
- mysql重连,连接丢失:The last packet successfully received
- MySQL工具推荐 | 基于MySQL binlog的flashback工具
- mysql 基于binlog进行恢复
- MySQL主从同步的问题解决
- 使用 tungsten-replicator4 实现 mysql -- > monogo 数据同步
- MySQL基于binlog文件的异地备份策略脚本--shell
- MySQL数据库备份还原(基于binlog的增量备份)
- mysql备份还原-基于binlog的增量备份还原
- 基于mysql binlog解析的缓存更新设计
- mysql dump备份恢复,binlog基于时间点的恢复
- Java类、成员变量、局部变量、成员方法的权限修饰
- JQuery选择器总结
- DOMJavascript总结
- apache,php,mysql,phpMyAdmin的配置.
- linux 禁止某个IP访问本机
- 基于tungsten API 同步mysql binlog出现EOF packet received的问题解决
- 什么时候该用NoSQL?
- JS函数定义方式的区别
- Poj 3468 A Simple Problem with Integers (线段树 区间更新 区间求和)
- 验证码的简单实现
- 第一章、mysql体系结构和存储引擎 [Mysql] (百度文库)
- JS函数的几种定义方式
- java环境变量配置
- NoSQL架构的几幅图