设为首页 收藏本站
查看: 750|回复: 0

[经验分享] MySQL日志分析

[复制链接]

尚未签到

发表于 2016-9-11 10:14:38 | 显示全部楼层 |阅读模式
  原文出处:http://www.mysqlsystems.com/2009/05/mysql-log.html
  
  日志文件(log)就是一个跟踪记录的列表,它可以协助我们时刻掌握系统及应用服务的动作状态,在故障排查的时候提供最详细准确地信息,帮助我们快速查找原因,减少我们凭主观的经验去猜测,这样的答案更具有说服力,机器通常是不会撒谎的。任何的系统,无论是操作系统、数据库、应用服务器他们都会有自己的log文件,而且根据功能性质的不同,又有分为不同种类的log。后面我们将要讨论的MySQL数据库同样也有自己的一套日志纪录文件,可分为4种日志——错误日志二进制日志查询日志慢查询日志。它们都有哪些作用,我们在实际工作中又将如何有效的使用这些log文件呢?
            这4种日志文件默认情况下都存放在$MYSQL_HOME/data目录下面,我们也可以使用服务器启动选项来对日志存放的位置以及名称来进行自定义。下面图片中显示了各种log文件,错误日志node1.err、二进制日志以mysql-bin开头的16个文件、查询日志node1.log、以及慢查询日志node1-slow.log。
http://www.mysqlsystems.com/wp-content/uploads/2009/05/mysql_log1.jpg
  
  1. 错误日志 –log-error[=/path_to/file_name]
  它记录了MySQL数据库启动关闭信息,以及服务器运行过程中所发生的任何严重的错误信息。通常,当数据库出现问题不能正常启动,我们应当首先想到的就是查看错误日志。从下面可以看到此日志文件记录了MySQL数据库的启动和关闭信息。
http://www.mysqlsystems.com/wp-content/uploads/2009/05/mysql-log-error1.jpg
  2. 二进制日志 –log-bin=[/path_to/file_name]
  binary log文件是以二进制格式保存的,我们需要借助mysqlbinlog这个工具进行查看,该日志里面记录的所有的DDL和DML语句,其中select语句除外。
http://www.mysqlsystems.com/wp-content/uploads/2009/05/mysql-binlog1.jpg
  以上显示的是从位置232609开始到最后一次操作结束的binlog文件里记录的内容。
  在data目录下会发现有16个binary log文件,每次重启服务都会重新生成一个,或是文件达到最到限度也会安顺序自动生成下一个文件。在一个繁忙的OLTP系统中,每天会有大量的日志生成,自然我们会想到它将会占用可观的磁盘空间,所以我们有必要定期对其进行清理。下面介绍几种方法。
  Option 1. mysql> reset master; (删除所有binlog文件,然后从新生成一个从000001开始的文件)
  Option 2. mysql> purge master logs to ‘mysql-bin.000017′; (删除mysql-bin.000017之前的所有日志)
  Option 3. # mysqladmin flush-log (根据配置文件my.cnf中的expire_logs_day参数,触发日志文件更新,将从当前日期开始前多少天的日志全部删除)
  3. 查询日志 –log[=/path_to/file_name]
  查询日志记录客户端操作的所有sql语句,包括select查询语句在内。(note: 查询日志纪录的所有数据库的操作,对于访问频繁的应用,该日志对系统性能会一定影响,建议通常关闭此日志。)
http://www.mysqlsystems.com/wp-content/uploads/2009/05/mysql-querylog1.jpg
  4. 慢查询日志 –log-slow-queries[=/path_to/file_name]
  慢查询日志里记录了执行时间超过long_query_time参数值的sql语句。慢查询日志可以有效的帮助我们发现实际应用中sql的性能问题,找出执行效率低下的sql语句。
  我们经常会看到论坛上面,人家在回答你问题之前,有些时候会让你提供详细的日志信息,然后进一步分析帮你解决问题,这就是一个很好的解决问题的习惯和思路,做到有理有据,log就是我们查明真相的线索。了解了MySQL的日志之后,你也可以成为一个地道的troublshooting的专家。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-270675-1-1.html 上篇帖子: Mysql Configuration Learning 下篇帖子: mysql自学笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表