MySQL日志

MySQL日志类型:

  查询日志、慢查询日志、错误日志、二进制日志、事务日志、中继日志

1.查询日志

/*相关配置变量*/
general_log=ON|OFF
general_log_file=HOSTNAME.log
log_output=TABLE/FILE/NONE

2.慢查询日志

  是指执行时长超出指定时长的查询操作(生产环境中建议开启)

  查看当前查询时长的服务器变量:long_query_time

/*相关配置变量*/
slow_query_log=ON|OFF
slow_query_log_file=HOSTNAME-slow.log

log_slow_filter  //慢查询日志过滤器
log_slow_queries=ON|OFF  //(同第一项,不是重点)
log_slow_rate_limit=1
log_slow_verbosity

3.错误日志  

  会记录mysqld启动和关闭过程中输出的事件信息;

     mysqld运行中产生的错误信息;

     event scheduler运行一个event时产生的日志信息;

     在主从复制架构中从服务器上启动从服务器线程时产生的信息;

/*相关配置变量*/
log_error=/PATH/TO/SOME_LOG_FILE
log_warning=1|0   //是否记录警告信息至错误日志文件中

4.二进制日志

  记录导致数据改变或潜在导致数据改变的SQL语句。

  记录格式:  

    基于‘语句’记录:statement;

    基于‘行’记录:row;

    混合模式:mixed,让系统自行判断应该使用哪种方式;

  二进制日志文件:

    "重放"日志文件中的事件来生成数据副本;

    文件构成: 

      日志文件:mysql-bin.文件名后缀 (二进制格式)

      索引文件:mysql-bin.index (文本格式)

  查看二进制文件的工具:

    # mysqlbinlog [OPTIONS] LOG_FILE      

      --start-position=#/--stop-position=#

      --start-datetime=YYYY-MM-DD hh:mm:ss/--stop-datetime=YYYY-MM-DD hh:mm:ss

  查看mariadb自行管理使用中的二进制日志文件列表:

    # SHOW {BINARY|MASTER} LOGS;

    # SHOW MASTER STATUS;

  查看二进制文件中事件的详细信息:

    # SHOW BINLOG EVENTS IN 'BINLOG_NAME';

/*相关配置变量*/
log_bin=ON|OFF  //是否开启二进制日志记录,与下面一项要都ON
sql_log_bin=ON|OFF  //是否记录二进制日志
  注意:开启二进制日志记录必须在配置文件中才能开启,在my.cnf中[mysqld]中写入
    log-bin
    log_bin=mysql-bin
  才能使log_bin变量显示为ON,直接在mysql中修改其变量值是无法实现的。
binlog_format=STATEMENT|ROW|MIXED //日志记录格式 max_binlog_size=1073741824 //默认为1G,单位是字节,达到最大值时,会自动滚动;未必一定到达指定值才会滚动; sync_binlog=0|1 //是否开启同步(开启会影响性能,不开会影响数据)
/*二进制日志文件事件内容的格式*/
/*
    事件发生的日期和时间:151105 16:34:59
    事件发生的服务器标识:server id 1
    事件的结束位置:end_log_pos 431
    事件的类型:query
    事件发生时所在服务器执行此事件的线程ID:thread_id=1
    语句的时间戳与将其写入二进制文件中的时间差:exec_time=0
    错误代码:error_code=0
    事件内容:。。。。

    (GTID:Global Transaction ID)在mysql5.6+和mariadb1.10+才有的专属属性
*/

5.中继日志

  复制架构中,从服务器用于保存从主服务器二进制日志中读取到的事件

6.事务日志  

  事务型存储引擎自行管理和使用,不应该太大,根据实际情况计算出来的。例如:ib_logfile0

posted on 2017-01-09 18:05  林纳克斯  阅读(157)  评论(0编辑  收藏  举报

导航