MySQL中的日志文件(一)

慢查询日志

参数配置

  • log_query_time:超过该阈值时间的查询为慢查询;
  • log_slow_queries:可以设置为ON/OFF,表示开启和关闭慢查询日志;
  • log_queries_not_using_indexes:可以设置为ON/OFF,表示是否记录未使用索引的查询到慢查询日志中;
  • log_throttle_queries_not_using_indexes:表示每分钟允许记录到慢查询日志的且未使用索引的查询,默认为0表示没有限制,若是没有使用索引的查询特别多,慢查询日志会迅速膨胀,可以用该参数来进行控制。

如何分析慢查询日志

mysqldumpslow ***_slow.log

若用户需要查询时间最长的十条SQL

mysqldumpslow -s al -n 10 ***_slow.log

从MySQL5.1版本开始慢查询日志可以放入一张表中,通过参数log_output来设置,该参数可以设置为File和Table,file表示以文件的方式,table表示以MySQL表格的形式。

二进制文件 binlog

对MySQL数据库执行更改的所有操作进行记录
作用:1)恢复 2)复制 3)审计

参数配置

  • log_bin:开启binlog并指定文件目录;
  • max_binlog_size:单个二进制文件的大小限制;
  • binlog_cache_size中:事务未提交,二进制日志被记录到缓冲中,该缓冲大小由该参数决定,如果设置的太小,日志文件大小超过该值,会把日志文件写入临时文件中,涉及到磁盘IO影响性能;
  • sync_binlog:sync_log[=N],表示每写N次日志就同步到磁盘,默认为1;
  • binlog_do_db:需要写入哪些库的二进制日志文件;
  • binlog_ignore_db:需要忽略哪些库的二进制日志文件;
  • log_slave_update:slave角色是否需要同步master的日志文件,若需要必须将参数设置为ON;
  • binlog_format:二进制文日志文件的格式,默认为Statement,可选项项还包括row和mixed;
  • innodb_support_xa:设置为1解决二进制文件和InnoDB存储引擎数据文件的同步。

如何查看二进制文件:

mysqlbinlog -vv --start-position=**** ***.0001

重做日志文件

默认情况下,数据目录下会有两个名为ib_logfile0和ib_logfile1的文件,就是重做日志文件,重做日志组默认包含两个日志文件,先写日志文件1,文件1写满之后,切换到日志文件2,文件2写满之后,又切换回日志1。

配置参数

  • innodb_log_file_size:指定每个重做日志文件的大小,最大为512GB;
  • innodb_log_files_in_group:日志文件组中重做日志文件的数量,默认为2;
  • innodb_mirrored_log_groups:日志镜像文件组的数量,默认为1;
  • innodb_log_group_home_dir:日志文件的路径;
  • innodb_flush_log_at_trx_commit:控制提交操作时处理重做日志的方式,有效值为0,1,2,0表示等待主线程刷新磁盘,1表示每次事务提交都将重做日志写入文件中,2表示将刷新磁盘的时机交给操作系统,三种方式对应不同的级别的持久性。

你可能感兴趣的:(MySQL中的日志文件(一))