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

[经验分享] MySQL日志管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-24 11:09:10 | 显示全部楼层 |阅读模式
                      MySQL日志主要包含:错误日志、一般查询日志、慢查询日志、二进制日志 、中继日志、事务日志。

1.错误日志
    错误日志大概记录以下几个方面的信息:服务器启动和关闭过程中的信息(未必是错误信息,如mysql如何启动InnoDB的表空间文件的、如何初始化自己的存储引擎的等等)、服务器运行过程中的错误信息、事件调度器运行一个事件时产生的信息、在从服务器上启动服务器进程时产生的信息。
    在mysql数据库中,错误日志功能是默认开启的。并且,错误日志无法被禁止。默认情况下,错误日志存储在mysql数据库的数据文件中。错误日志文件通常的名称为hostname.err。其中,hostname表示服务器主机名。
错误日志相关服务器变量:
    log_error=/PATH/TO/ERROR_LOG_FILENAME:定义错误日志文件。作用范围为全局或会话级别,可用于配置文件,属非动态变量。
    log_warnings=#:设定是否将警告信息记录进错误日志。默认设定为1,表示启用;可以将其设置为0以禁用;而其值为大于1的数值时表示将新发起连接时产生的“失败的连接”和“拒绝访问”类的错误信息也记录进错误日志。
2.一般查询日志

    默认情况下查询日志是关闭的。由于查询日志会记录用户的所有操作,其中还包含增删查改等信息,在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响mysql的性能的。
一般查询日志相关服务器变量:

    general_log={ON|OFF}:设定是否启用查询日志,默认值为取决于在启动mysqld时是否使用了--general_log选项。如若启用此项,其输出位置则由--log_output选项进行定义,如果log_output的值设定为NONE,即使用启用查询日志,其也不会记录任何日志信息。作用范围为全局,可用于配置文件,属动态变量。
    general_log_file=FILE_NAME:查询日志的日志文件名称,默认为“hostname.log"。作用范围为全局,可用于配置文件,属动态变量。
    log={YES|NO}:是否启用记录所有语句的日志信息于一般查询日志(general query log)中,默认通常为OFF。MySQL 5.6已经弃用此选项。
   log_output={TABLE|FILE|NONE}:定义一般查询日志和慢查询日志的保存方式,可以是TABLE、FILE、NONE,也可以是TABLE及FILE的组合(用逗号隔开),默认为TABLE。如果组合中出现了NONE,那么其它设定都将失效,同时,无论是否启用日志功能,也不会记录任何相关的日志信息。作用范围为全局级别,可用于配置文件,属动态变量。
3.慢查询日志

    慢查询日志是用来记录执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执行了很长时间的查询语句。可以帮助我们定位性能问题的。
慢查询日志相关服务器变量:
    long_query_time=#:设定区别慢查询与一般查询的语句执行时间长度。这里的语句执行时长为实际的执行时间,而非在CPU上的执行时长,因此,负载较重的服务器上更容易产生慢查询。其最小值为0,默认值为10,单位是秒钟。它也支持毫秒级的解析度。作用范围为全局或会话级别,可用于配置文件,属动态变量。
    log_slow_queries={YES|NO}:是否记录慢查询日志。慢查询是指查询的执行时间超出long_query_time参数所设定时长的事件。MySQL 5.6将此参数修改为了slow_query_log。作用范围为全局级别,可用于配置文件,属动态变量。
    slow_query_log={ON|OFF}:设定是否启用慢查询日志。0或OFF表示禁用,1或ON表示启用。日志信息的输出位置取决于log_output变量的定义,如果其值为NONE,则即便slow_query_log为ON,也不会记录任何慢查询信息。作用范围为全局级别,可用于选项文件,属动态变量。

    slow_query_log_file=/PATH/TO/SOMEFILE:设定慢查询日志文件的名称。默认为hostname-slow.log,但可以通过--slow_query_log_file选项修改。作用范围为全局级别,可用于配置文件,属动态变量。
4.二进制日志
    二进制日志也叫作变更日志,主要用于记录修改数据或有可能引起数据改变的操作。
    二进制日志格式:基于语句(statement)、基于行(row)、混合方式(mixed)。
    二进制日志事件:产生的时间(starttime)、相对位置(position)。
    二进制日志相关命令:
1
2
3
4
5
mysql> SHOW MASTER STATUS;    #查看当前正在使用的二进制日志文件信息;
mysql> SHOW BINARY LOGS;     #查看当前所有二进制日志文件;
mysql> SHOW BINLOG EVENTS IN '二进制日志文件名' [FROM pos];    #查看二进制日志文件中事件信息;
mysql> PURGE BINARY LOGS TO '某二进制日志文件';    #删除指定二进制日志文件之前的二进制日志文件;
mysql> FLUSH LOGS;    #日志滚动



    命令行下查看二进制日志:
1
2
3
4
5
6
7
8
9
mysqlbinlog --start-datetime='starttime' --stop-datetime='stoptime' 二进制日志文件名
    #time格式为YYYY-MM-DD hh:mm:ss,显示时间starttime和stoptime之间的内容。
     
mysqlbilog --start-position=N --stop-position=M 二进制日志文件名
    #显示起始startposition和stopposition之间的内容
例:
mysqlbinlog --start-position=107 --stop-position=358 mysql-bin.000005
mysqlbinlog --start-datetime='2015-08-22 23:06:33' mysql-bin.000005
mysqlbinlog mysql-bin.000005    #不加参数表示显示全部内容





                   


运维网声明 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-103414-1-1.html 上篇帖子: linux下mysql的root密码忘记解决方 下篇帖子: mysql主从搭建-源码篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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