美文网首页
MySQL中的日志文件(一)

MySQL中的日志文件(一)

作者: 花醉霜寒 | 来源:发表于2020-11-29 14:44 被阅读0次

    慢查询日志

    参数配置

    • 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中的日志文件(一)

          本文链接:https://www.haomeiwen.com/subject/ihkkwktx.html