MySQL服务启动脚本故障排查

上周cenalulu给大家十分详细地剖析了一下MySQL服务启动脚本的工作原理,我相信就在这个3个单词service mysql start后面,我们都会不止一次的面对红色的[FAILED],由于各种因素,具体的操作环境间的差别,各自也都会面对着不同的启动问题,下面我就来说说上周五,我遇到的关于MySQL服务启动的问题。

SHELL>service mysql start

Starting MySQL.Manager of pid-file quit without updating fi [FAILED]

遇到[FAILED]之前,我都做了什么呢?

大家一定还记得之前,我给大家介绍的一篇关于Percona XtraDB的文章。下面要讲的这个启动问题,就是接着那个实验之后。源码编译安装完成,启动正常,关于XtraDB的实验结果也都符合feature中的介绍。在这之后,我又进行了xtrabackup工具的备份操作,再往后,出事的当天上午,我通过mysqladmin shutdown正常关闭mysqld(我查看过err日志,normal shutdown),你可能在想,怎么没用service mysql stop呢,呵呵,其实,我是忘了mysqld已经做成了系统自启服务,就习惯的用了mysqldadmin去关闭,难道是这个微小的差别导致的吗?
      » 继续阅读 MySQL服务启动脚本故障排查

Hiro让我意识到,作为一个技术人员应该如何正确的Troubleshooting

slow-log中出现极大的执行时间的问题解决

情况描述:

最近在分析服务器的slow-log和bin-log的时候,发现这两个log中有某些语句的execute time 极大例如:4294967295。
log信息:#091008 21:40:04 server id 1  end_log_pos 3440531       Query   thread_id=63169 exec_time=4294967295    error_code=0
而出现这种极长执行时间的语句却不固定,最终通过以下的分析过程,找到了这个问题出现的原因

第一步:确认相关语句没有问题

使用以下语句,过滤出执行时间极大SQL语句(maatkit的digest工具,按照执行时间排序)
mysqlbinlog binlog.xxxxxxx |mk-query-digest –type binlog –nofor-explain
在测试机上执行筛选的语句,并没有发现有任何的性能异常


      » 继续阅读 slow-log中出现极大的执行时间的问题解决

MySQL日志分析

           日志文件(log)就是一个跟踪记录的列表,它可以协助我们时刻掌握系统及应用服务的动作状态,在故障排查的时候提供最详细准确地信息,帮助我们快速查找原因,减少我们凭主观的经验去猜测,这样的答案更具有说服力,机器通常是不会撒谎的。任何的系统,无论是操作系统、数据库、应用服务器他们都会有自己的log文件,而且根据功能性质的不同,又有分为不同种类的log。后面我们将要讨论的MySQL数据库同样也有自己的一套日志纪录文件,可分为4种日志——错误日志二进制日志查询日志慢查询日志。它们都有哪些作用,我们在实际工作中又将如何有效的使用这些log文件呢?

          这4种日志文件默认情况下都存放在$MYSQL_HOME/data目录下面,我们也可以使用服务器启动选项来对日志存放的位置以及名称来进行自定义。下面图片中显示了各种log文件,错误日志node1.err、二进制日志以mysql-bin开头的16个文件、查询日志node1.log、以及慢查询日志node1-slow.log。

mysql_log1


      » 继续阅读 MySQL日志分析