zoukankan      html  css  js  c++  java
  • Mysql日志

    Mysql日志分类

    错误日志、二进制日志、查询日志、慢查询日志、中继日志、通用日志、事务日志/redo日志(innodb)。

    错误日志

    它记录了mysqld的启动和停止,以及服务器运行过程中发生的任何严重错误时的相关信息。当数据库出现任何故障导致无法正常启动时,可以首先查看此信息。

    记录的位置:--log-error[=filename]来指定日志记录的路径,或者直接写在配置文件my.cnf中默认写在DATADIR目录下,并且以主机名命名,.err结尾。如:/usr/local/mysql/data/server3.example.com.err。rpm包安装,日志在/var/log/mysqld.log

    二进制日志:

    binlog记录所有的DDL,DML语句,但不包括查询语句,语句以"事件"的形式保存,描述了数据更改的过程。此日志对于灾难时的数据恢复起着极其重要的作用

    配置文件中制定log-bin=mysql-bin、或者启动的时候指定--log-bin[=filename],没有指定路径写到DATADIR中

    读取日志:

    mysqlbinlog mysql-bin.000006

    删除日志:

    查看当前的所有二进制日志:system ls -ltr mysql-bin*     #-t按mtime之间排序,-r反排

    -rw-rw----. 1 mysql mysql 835 Dec 6 23:26 mysql-bin.000001

    -rw-rw----. 1 mysql mysql 126 Dec 10 17:37 mysql-bin.000002

    -rw-rw----. 1 mysql mysql 126 Dec 10 17:42 mysql-bin.000003

    -rw-rw----. 1 mysql mysql 126 Dec 10 17:50 mysql-bin.000004

    -rw-rw----. 1 mysql mysql 150 Dec 10 17:52 mysql-bin.000005

    -rw-rw----. 1 mysql mysql 114 Dec 10 17:52 mysql-bin.index

    -rw-rw----. 1 mysql mysql 511 Dec 10 17:57 mysql-bin.000006

    1. reset master

    2. purge master logs to 'mysql-bin.000006' 表示删除mysql-bin.000006之前的(不包括自身)日志,purge(清洗,净化)

    3. purge master logs before '2015-12-11 10:07:00' 删除指定日志之前的日志文件

    4. 由mysql自动删除文件,指定过期时间即可:--exprie_logs-day=3

    其他的选项:

    --binlog-do-db = dbname            只记录有指定此选项的数据库,其他不记录

    --binlog-ignore-db = dbname         只忽略有指定此选项的数据库

    如果要记录或者忽略多个数据库,可以将上面的选项添加多次,指定不同的数据库名字即可

    --innodb-safe-binlog此项经常和—sync-binlog=N(每写N次日志同步磁盘)一起配合使用,是的事务在日志中的更加安全

    set sq_log_bin=0 ,具有super权限的客户端可以使用此项跳过对语句写入二进制日志中去。

    查询日志:

    配置文件中指定log=filename,一切的操作都会记录在这个文件中。

    打开查询的日志一般用于调试程序,采样等操作。由于记录所有的log必定会影响mysql的性能, 所以一般只是临时的使用,当然不会写在配置文件中,写在配置文件中还得要重启mysql。

    set global general_log_file='/tmp/log.log1'

    set global general_log=1;

     

    慢查询日志:

    慢查询日志记录包含所有执行时间超过参数long_query_time (单位:s)所设定的值sql语句。获得表锁定的时间不算作执行的时间。

    查看当前的慢查询限定时间:show variables like 'long%';

    打开慢查询:slow_query_log=on|off

    配置文件指定: slow_query_log_file [=filename]

    查看慢查询:对于大量的慢查询日志,可以用mysqldumpslow工具查看汇总情况,mysqldumpshow mysql-slow.log

    还可以使用mysqlsla工具进行分析 download:https://github.com/daniel-nichter/hackmysql.com。个人比较喜欢

    还可以使用percona-toolkit分析,太复杂不太喜欢 ##yum install percona-toolkit,  ## pt-query-digest /tmp/log.slow 

    可用 benchmark(count,expr)来做测试使用,其中表示,expr执行count次的结果

    常用慢查询日志相关参数。

    long_queries_not_using_indexs ##记录所有没有使用到索引的查询语句

    min_examined_row_limit=1000 ##记录哪些由于查找了多余1000次而引发的慢查询

    log_slow_admin_statements ##记录慢的optimize、analyze、alter table的语句

    log_slow_slave_statement ##记录由于slave所产生的慢查询语句

    小节:

    • 系统故障时,首先查看错误日志
    • 记录数据库的变更,数据的备份,数据的复制等操作,二进制日志必须打开,有助于进行数据恢复。
    • 如果希望记录数据库发生一切操作,包括select,则需使用log=filename,一般不要打开,会影响服务器的性能。
    • 如果希望查看系统的性能问题,定位有问题的查询语句,则需要打开慢查询日志:--log-slow-queries.
  • 相关阅读:
    KLSudoku的数独题目生成方法和难度控制说明
    对XChain和ForcingChain的实现解说
    开源数独游戏软件KLSudoku发布第一个Release版本
    每个 Vim 用户都应该阅读的文章
    自己常用的几个gvim的vimrc设置
    KLSudoku数独游戏软件1.1预览版发布
    KLSudoku数独游戏软件1.1正式版发布
    字符串
    .NET面试大全
    IIS是如何处理ASP.NET请求的
  • 原文地址:https://www.cnblogs.com/wxl-dede/p/5038332.html
Copyright © 2011-2022 走看看