网络闪段致slave 出错分析

告警信息

check_ins_slave_io_running (err_cnt:1)critical-  slaveio not run on ins:3014,3051,3060,3079,3097,3104,3106,3107,3108,3116,3119,3123,3170,3150,3151

复制错误

    错误1:

Last_IO_Errno: 1159 (ER_NET_READ_INTERRUPTED)

Last_IO_Error: The slave I/O thread stops because a fatal error is encountered when it try to get the value of SERVER_ID variable from master. Error:

错误2:

Last_IO_Errno: 1593 (ER_SLAVE_FATAL_ERROR)

Last_IO_Error: The slave I/O thread stops because SET @master_heartbeat_period on master failed. Error:

分析

1 首先从告警信息,同一主机出现大量实例的复制错误。首先可以排出是mysql问题。应该是外部环境导致,例如网络,硬件故障等。

2 错误1159即ER_NET_READ_INTERRUPTED网络中断,由此可以推断是网络问题导致

3 从错误信息中,Last_IO_Error: The slave I/O thread stops because a fatal error is encountered when it try to get the value of SERVER_ID variable from master。定位源码可看到,IO thread每次启动io_thread从主库拉binlog是都有以下逻辑,(handle_slave_io-> get_master_version_and_clock)检查serverid是否重复,时间钟,时区,字符集,设置master heartbeat等. 此错误是在检查serverid时发生网路中断所致。

类似的错误还有:

Get master TIME_ZONE failed with error:xxx

处理方法

stop slave;start slave; 即可恢复

附:

http://dev.mysql.com/doc/refman/5.5/en/change-master-to.html change master 时可以指定MASTER_CONNECT_RETRY表示连接断开重试间隔时间,master-retry-count是mysqld启动命令行参数表示连接重试次数 。http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html#option_mysqld_master-retry-count.

为什么这个错误没有重连呢,原因是这个错误出现后,用户退出了io_thread线程。重连是io_thread发出的,因此自然就不会重连了。看如下日志:

140814  8:40:05 [Note] Event Scheduler: scheduler thread started with id 93413

140814  8:40:49 [ERROR] Slave I/O: The slave I/O thread stops because SET @master_heartbeat_period on master failed. Error: , Error_code: 1593

140814  8:40:49 [Note] Slave I/O thread exiting, read up to log ‘mysql-bin.000012‘, position 107

问题:

is_network_error函数判断没有把ER_NET_READ_INTERRUPTED加入到网络错误中。

bool is_network_error(uint errorno)

{

if (errorno == CR_CONNECTION_ERROR ||

errorno == CR_CONN_HOST_ERROR ||

errorno == CR_SERVER_GONE_ERROR ||

errorno == CR_SERVER_LOST ||

errorno == ER_CON_COUNT_ERROR ||

errorno == ER_SERVER_SHUTDOWN)

return TRUE;

return FALSE;

}

这里如果修改认为ER_NET_READ_INTERRUPTED为网络错误,就不会退出io_thread线程,并且会重连。

不过如果这样重连会导致用会忽略get_master_version_and_clock里面的后续检查,这个应该选择退出io_thread线程,而不重连的原因吧。

to think:这个问题是启动io_thread时出现的,暂时没有想到是什么触发了启动io_thread.

网络闪段致slave 出错分析,布布扣,bubuko.com

时间: 2024-08-23 08:11:31

网络闪段致slave 出错分析的相关文章

中级网络工程师面试题60例分析

中级网络工程师面试题60例分析 一.网络通信原理 TCP和UDP都可以实现客户端/服务端通信,这两个协议有何区别?答案:TCP协议面向连接.可靠性高.适合传输大量数据:但是需要三次握手.数据补发等过程,耗时长.通信延迟大.UDP协议面向非连接.可靠性低.适合传输少量数据:但是连接速度快.耗时短.延迟小. 网络通信中的MAC地址指的是什么,其作用和地址构成是怎样的?答案:MAC即Media Access Control(介质访问控制),主要用来标记网络接口卡的物理地址.MAC地址由6个字节组成,长

20145239杜文超《网络对抗技术》- 恶意代码分析

20145239杜文超<网络对抗技术>- 恶意代码分析 实验后回答问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (1)使用计划任务schtasks指令动态监控系统运行 (2)使用sysmon工具动态监控系统运行 2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. (1)使用systracer工具进行快照分析注册表信息.文件行为等信息的变化 (2)把程序放在vir

20145225唐振远《网络对抗》Exp4 恶意代码分析

20145225唐振远<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放.注册表信息等等: 通过sysmon工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件便可以查看: 使用Process Explorer工具,监视进程执行情况,查

Oracle数据库中闪回恢复的详细分析

Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback log实现的. flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log则将Oracle数据库往后滚.为了保存管理和备份恢复相

2015306 白皎 《网络攻防》Exp4 恶意代码分析

2015306 白皎 <网络攻防>Exp4 恶意代码分析 netstat [Mac.Linux.Win] sysinteral [MS]:1 2 3 一.系统监控--Windows计划任务schtasks 1.创建计划任务,使系统每5分钟自动检测到哪些有哪些程序在连接我们的网络. 注:任务将创建于当前登录的用户名文件夹下. C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\

20155317《网络对抗》Exp4 恶意代码分析

20155317<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 我首先会选择看任务管理器,查看系统下有什么进程,都在干些什么,不懂得就去网上搜索相关关键词. 我会开启360安全卫士,利用360监控是否有恶意程序. 2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. 利用Process Explorer去分析进程在连接什么地址

20155334 《网络攻防》Exp4 恶意代码分析

<网络攻防>Exp4 恶意代码分析 一.实验问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 可以使用工具监测系统,之后进行下一步分析. 在windows下建立一个监测本机连接ip地址的任务计划程序. 通过sysmon监控重要操作,并找到日志查看. 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. PEiD工具,可以查看程序有没有被常用的加壳软件加壳. PE expl

memset初始化类 在调用虚函数时的出错分析

偶尔 在群里看见 一段代码的问题,自己敲了下 试了试 总结一下:代码: #include <cstring> #include <iostream> using namespace std; class Parent { public: Parent(){} virtual void output(); }; void Parent::output() { cout << " Parent " << endl; } class son:p

软件工程网络15个人作业3——案例分析

第一部分:调研, 评测 1.下载并使用,描述最简单直观的个人第一次上手体验. 我选的产品是集大通APP "集大通"是我校统一通信平台,集消息推送.应用入口.组织机构.单点登录等为一体,目标是方便学校办公.服务与通信,方便师生学习.工作.生活与娱乐,成为学校信息化的入口平台,成为"智慧集大"的窗口--"微门户",同时实现移动信息化. 一开始登陆进的界面--课余生活 新闻界面 朋友圈界面 消息界面 我的->应用中心界面 我的体验:集大通APP里