【MySQL】错误信息写入slave_relay_log.index 案例一则

第一次遇到MySQL 将错误信息写入 slave-relay-log.index 中,slave io thread 启动成功,而sql thread 失败的案例,记录下来。
【现象】

生产环境突然报警,slave sql进程停止,登陆服务器检查,master-error.log 包含如下信息:

#tail -f /home/mysql/data3008/mysql/master-error.log

140507 20:59:29 [ERROR] log 10:44:23 UTC - mysqld got signal 11 ; listed in the index, but failed to stat

140507 20:59:29 [ERROR] Error counting relay log space

140507 21:04:29 [ERROR] log 10:44:23 UTC - mysqld got signal 11 ; listed in the index, but failed to stat

140507 21:04:29 [ERROR] Error counting relay log space

140507 21:09:29 [ERROR] log 10:44:23 UTC - mysqld got signal 11 ; listed in the index, but failed to stat

140507 21:09:29 [ERROR] Error counting relay log space

140507 21:14:29 [ERROR] log 10:44:23 UTC - mysqld got signal 11 ; listed in the index, but failed to stat

140507 21:14:29 [ERROR] Error counting relay log space

140507 21:15:29 [ERROR] log 10:44:23 UTC - mysqld got signal 11 ; listed in the index, but failed to stat

140507 21:15:29 [ERROR] Error counting relay log space

关于 mysqld got signal 11 的错误案例 请见 《mysqld got signal 11 案例一则 》 ,这里遇到Error counting relay log space 报错,于是检查 slave-relay-log.index 文件

#more slave-relay-log.index

/home/mysql/data3008/mysql/slave-relay.023481

/home/mysql/data3008/mysql/slave-relay.023482

10:44:23 UTC - mysqld got signal 11 ;

This could be because you hit a bug. It is also possible that this binary

or one of the libraries it was linked against is corrupt, improperly built,

or misconfigured. This error can also beay fail.

key_buffer_size=16777216

read_buffer_size=262144

max_used_connections=10

max_threads=230

thread_count=8

connection_count=7

It is possible that mysqld could use up to

key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 136546 K bytes of memory

Hope that's ok; if not, decrease some variables in the equation.
Thread pointer: 0x5580000

Attempting backtrace. You can use the following information to find out

where mysqld died. If you see no messages after this, something went

terribly wrong...

stack_bottom = 2b74017d3e58 thread_stack 0x40000

/u01/mysql/bin/mysqld(my_print_stacktrace+0x29) [0x903c24]

/u01/mysql/bin/mysqld(handle_fatal_signal+0x3f6) [0x703916]

/lib64/libpthread.so.0() [0x313f80f4a0]

/u01/mysql/bin/mysqld(Query_cache::free_memory_block(Query_cache_block*)+0x58) [0x73c5e0]

/u01/mysql/bin/mysqld(Query_cache::free_query_internal(Query_cache_block*)+0x164) [0x73ca8a]

/u01/mysql/bin/mysqld() [0x73db00]

/u01/mysql/bin/mysqld(query_cache_insert(st_net*, char const*, unsigned long)+0x1e7) [0x740b2b]

/u01/mysql/bin/mysqld(net_real_write+0x39) [0x5e2531]

/u01/mysql/bin/mysqld() [0x5e29a3]

/u01/mysql/bin/mysqld(my_net_write+0xda) [0x5e2f91]

/u01/mysql/bin/mysqld(Protocol::write()+0x1e) [0x5e4192]

/u01/mysql/bin/mysqld(select_send::send_data(List&)+0x17c) [0x5dd204]

/u01/mysql/bin/mysqld() [0x652f13]

/u01/mysql/bin/mysqld() [0x654a73]

/u01/mysql/bin/mysqld(sub_select(JOIN*, st_join_table*, bool)+0x81) [0x65a2c3]

/u01/mysql/bin/mysqld() [0x65f5ed]

/u01/mysql/bin/mysqld(JOIN::exec()+0x466) [0x675e58]

/u01/mysql/bin/mysqld(mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long lon

g, select_result*, st_select_lex_unit*, st_select_lex*)+0x700) [0x671ff7]

/u01/mysql/bin/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x18b) [0x677f22]

/u01/mysql/bin/mysqld() [0x601685]

/u01/mysql/bin/mysqld(mysql_execute_command(THD*)+0x18ee) [0x6066a4]

/u01/mysql/bin/mysqld(mysql_parse(THD*, char*, unsigned int, char const**)+0x419) [0x60a81c]

/u01/mysql/bin/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0xe94) [0x60b6c5]

/u01/mysql/bin/mysqld(do_command(THD*)+0x107) [0x60c16c]

/u01/mysql/bin/mysqld(handle_one_connection+0x237) [0x5fe1de]

/lib64/libpthread.so.0() [0x313f8077f1]

/lib64/libc.so.6(clone+0x6d) [0x313f4e570d]

由于MySQL slave 在启动时需要检查relay log index 文件中的relay log信息,并进行applay到本地,由于该文件包含无误信息导致MySQL无法识别读取不到relay log ,sql thread 启动报错。
【解决】
检查发现错误信息写入relay-log.index文件中,清理slave-relay-log.index 中的异常信息,MySQL 会自动将slave sql thread起来 ,除非刚刚开始问题定位不准导致误判。   
(none)@3008 21:24:19>
(none)@3008 21:24:51>show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
               .........
              Master_Log_File: mysql-bin.001221
          Read_Master_Log_Pos: 319331681
               Relay_Log_File: slave-relay.023504
                Relay_Log_Pos: 319331826
        Relay_Master_Log_File: mysql-bin.001221
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
             .....
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

【疑问】
什么导致MySQL 将错误日志写入relay_log.index 中的?

时间: 2024-08-04 02:06:17

【MySQL】错误信息写入slave_relay_log.index 案例一则的相关文章

asp.net中当服务器出错时显示指定的错误页面,同时把错误信息写入系统日志文件的探讨

asp.net|错误|服务器|显示|页面 asp.net中当服务器出错时显示指定的错误页面同时把错误信息写入系统日志文件的探讨 一,在Web.config中填写出错时显示的页面,可以根据不同的statusCode显示不同的出错页面.   <customErrors mode="On"  //如果设置为Off则出错只返回错误信息,不会跳到自己的指定页面defaultRedirect="/error/customerrorpage.aspx">    <

用ASP.NET将网页错误信息写入系统日志

asp.net|错误|网页 设计网站的时候,不可能我们的网站不出现一点错误,常见的"页面不存在""页面运行出错"等错误信息一般网站多少总是存在的,关键是,这些错误出现以后,管理员怎样方便及时的发现它们.尽量减少用户对网站的不好印象.不管是IIS 4还是IIS 5,我们都可以设置网站的"自定义错误信息",通过这样的设置,一些系统默认的比较不友好的错误信息就可以更换为网站管理员自定义的页面,这对于网站的实用和友好性都大有帮助.但是,我们在使用过程中却

PHP error_log()将错误信息写入一个文件(定义和用法)_php技巧

在php程序编写中,养成写入log文件的编程习惯,是一个很好的编程习惯,程序员都应该学会这种编程思想,不要太浮躁.前期编程的不严谨,往往会带来后期维护和调式的困难,付出的时间和精力将会更多.error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段.本文将用实例讲解一下error_log()这个函数的用法,以及一些需要注意的问题. 复制代码 代码如下: <?php$str='这是条错误信息.';error_log($str,3,'errors.log'

php error_log()将错误信息写入日志文件

error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段. 本文将用实例讲解一下error_log()这个函数的用法,以及一些需要注意的问题.  代码如下 复制代码 <?php   $str='这是条错误信息.';   error_log($str,3,'errors.log');   ?> 上述是最常用的error_log()例子,它的作用是把一条信息写入errors.log这个文件里,这个文件如果不存在则自动创建.在这个例子中,我们看到有一个参

php error_log 错误信息写入文件的例子

开发的时候,基本上都会把display_errors,error_reporting开启,有助于提高开发效率,上线后,基本上都会关掉页面报错信息,在把报错信息,放到文件中. 一,php-fpm的error_log配置 1,修改php.ini display_errors = Off    //改为off,页面访问时就不会出现报错信息了  2,修改php-fpm配置文件 ;php_flag[display_errors] = off  php_admin_value[error_log] = /v

springmvc整合mybatis连接mysql是访问页面的错误信息

问题描述 自己在搭一个mvc框架,在加入mybatis之后访问页面时错误信息如下:type Exception reportmessage Request processing failed; nested exception is java.lang.NullPointerExceptiondescription The server encountered an internal error that prevented it from fulfilling this request.exc

mysql错误解决总结

1. MySQL错误日志里出现: 140331 10:08:18 [ERROR] Error reading master configuration 140331 10:08:18 [ERROR] Failed to initialize the master info structure 140331 10:08:18 [Note] Event Scheduler: Loaded 0 events   从错误提示就可以看出和mster info相关,找到数据目录下的master.info文件

mysqld-nt.exe: Sort aborted Mysql临时文件无法写入解决办法

今日一台Win2003的统计服务器,出现了统计失败,Mysql错误日志显示: mysqld-nt.exe: Sort aborted 大概是说 mysql排序中断.(Sort aborted - 排序取消) 此出错信息是指排序过程中(从数据库从读取数据默认的是order by id asc),系统难以承受了.(比如数据量特别大等情况),也有可能是数据库损坏等情况引起的. 解决方法:优化sql语句.检查内存使用情况.MYSQL 配置文件中的 :sort_buffer_size .read_rnd_

MYSQL错误#145的解决办法总结

Mysql有的时候因为掉电或者其他原因导致数据库损坏,错信息如下: MySql: Can't open file: 'sdb_sessions.MYI'. (errno: 145) For more information, see Help and Support Center at 我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据 如果你的数据库主机就你一个人用,并且你还能控制的话,建议你用Mysql自带的修复工具myisamchk.exe进行修复,操