一步一步学MySQL-日志文件
错误日志
错误日志不用多说,记录了mysql运行过程中的错误信息,当出现问题时,我们可以通过错误日志查找线索。
慢查询日志
可以通过参数long_query_time来设置时间,当sql语句执行超过指定的时间,就会被记录下来,用来进行sql调优。
还有一个参数log_queries_not_using_indexs,如果运行的sql语句没有使用索引,就会记录下来。但是不能一直这样记录,会导致文件过大,索引可以通过log_throttle_queries_not_using_indexes来表示每分钟允许记录到slow log的未使用索引的SQL语句的次数。默认为0,表示没有限制。如果日志记录到文件中,可以使用mysqldumpslow命令来进行筛选。
慢查询日志可以输出到文件中,也可以输出到表中。可以通过log_output参数指定慢查询日志输出到哪里。
在慢查询日志中都记录了什么信息,可以通过slow_query_type进行控制。
0表示不将SQL语句记录到slow log。
1 表示根据运行时间将SQL语句记录到slow log。
2 表示根据逻辑IO次数将SQL语句记录到slow log。
3 表示根据运行时间和逻辑IO次数将SQL语句记录到slow log。
binlog日志
记录了对数据库除了查询的所有操作。可以用来数据恢复、主从复制和判断数据库是否被攻击审计。
sync_binlog参数
binlog日志并不是每次写的时候都同步到磁盘。因此当数据库发生宕机的时候,可能会有一部分数据没有日志中。会跟复制和恢复带来问题。sync_binlog表示每写缓冲多少次就同步到磁盘。如果设置位1 即表示每写一次缓冲就把数据同步到磁盘。但是仍然存在问题,如果事务刚刚把数据写入日志,但是还没有执行的情况下宕机。数据库重启后会进行回滚,但是写入binlog的日志不能回滚。可以通过innodb_support_xa=1来解决这个问题。
binlog_format参数
该参数可以设置的值有STATEMENT、ROW、MIXED。
1、 STATEMENT格式的日志,只记录sql语句
2、 ROW格式的日志,不是记录SQL语句,而是记录记录表的行更改情况。
3、 MIXED格式的日志,根据情况决定使用STATEMENT还是ROW格式记录日志。
MySQL数据库的事务格式离别为REPEATABLE READ,跟binlog_format是有关系的,如果设置为READ COMMITED的事务隔离级别,会出现类似丢失更新的现象,从而出现主动数据不一致。如果binlog_format采用的是ROW格式的记录,就可以将事务隔离级别调整为READ COMMITED来提高性能。
查询日志
记录所有的对数据库的请求,一般不开启。
重做日志
该日志文件属于Innodb存储引擎,记录了Innodb存储引擎的食物日志,直观重要。当执行事务失败时,该日志就能派上用场。
每个Innodb存储引擎至少有两个日志文件组,每个文件组下面至少有两个重做日志。
参数
Innodb_log-file_size
表示每个重做日志的大小。
Innodb_log_files_in_group
表示每个日志文件组有几个日志,最少有两个,默认为2个。
Innodb_mirrored_log_groups
镜像,为了高可用设计。如果进行了磁盘阵列,可以不设置。
Innodb_log_group_home_dir
日志文件存放的位置,默认为”./”。
Innodb_flush_log_at_trx_commit
当值为0时,代表当提交事务时,并不将事务的重做日志写入磁盘上的日志文件,而是等待主线程每秒的刷新。
当值为1时,表示执行commit时将重做日志缓冲同步写到磁盘,即伴有fsync的调用。当事务提交时,必须保证事务已经写入重做日志文件。当数据库宕机时,可以通过重做日志文件恢复,并保证可以恢复已经提交的事务。
当值为2时,表示将重做日志异步写到磁盘。即写到文件系统的缓存中。因此不能完全保证执行commit时肯定会写入重做日志文件,知识有这个动作。当数据库宕机而服务器并没有宕机的情况下,因为此时未写入磁盘的事务保存在文件系统缓存中,当恢复时同样保证数据不丢失。
一步一步学MySQL-日志文件的更多相关文章
- lnmp vps服务器删除mysql日志文件三种方法
我在上一篇文章介绍了著名的LNMP主机一键安装工具,对比了军哥lnmp和AMH主机的差别,由于AMH拥有用户后台界面,易于新手操作,值得推荐. 但是,上周末我网站宕机,收到DNSPOD发来了宕机提醒, ...
- (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)
(3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...
- Linux下自动清除MySQL日志文件
MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days= ...
- 浅谈MySQL日志文件|手撕MySQL|对线面试官
关注微信公众号[程序员白泽],进入白泽的知识分享星球 前言 上周五面试了字节的第三面,深感数据库知识的重要,我也意识到在平时的学习中,自己对于数据库的学习较为薄弱.甚至在有过一定实习经验之后,依旧因为 ...
- mysql日志文件
mysql的数据文件夹里出现mysql-bin日志文件,通过my.cnf注释掉log后,是否可以删除了? 参考 http://database.51cto.com/art/201107/278988. ...
- MYSQL 日志文件路径错误 1067错误
场景再现: ---------------------------------------------------------------------------------------------- ...
- MySQL日志文件之错误日志和慢查询日志详解
今天天气又开始变得很热了,虽然很热很浮躁,但是不能不学习,我在北京向各位问好.今天给大家分享一点关于数据库日志方面的东西,因为日志不仅讨厌而且还很重要,在开发中时常免不了与它的亲密接触,就在前几天公司 ...
- mysql 日志文件mysql-bin文件清除方法,和mysql-bin相关文件的配置
默认情况下mysql会一直保留mysql-bin文件,这样到一定时候,磁盘可能会被撑满,这时候是否可以删除这些文件呢,是否可以安全删除,是个问题. 首先要说明一下,这些文件都是mysql的日志文件,如 ...
- mysql日志文件相关的配置【2】
1.二进制日志是什么? mysql 的二进制日志用于记录数据库上做的变更. 2.二进制日志什么时间写到磁盘 1.总的来说二进制日志会在释放锁之前就写入磁盘.也就是说在commit完成之前:client ...
- mysql日志文件相关的配置【1】
1.log_output=[file | table | none ] 这个参数指定general_log &slow_query_log 的输出目标.可以是table | file | no ...
随机推荐
- 我的学习之路_第二十三章_HTML
Html : 超级文本语言 ( Hyper text Markup Language ) HTML 文件扩展名是 * .html HTML 结构都是有标签组成 通常情况下标签有开始标签和结束标签组成 ...
- Spring 加载静态资源
<mvc:default-servlet-handler/> JSP 中通过标签加载js文件或者link标签加载css文件等静态资源时要在springmvc的xml文件中配置以上设置请求就 ...
- 今天get到的两个angular知识点
angular 控制器$scope依赖注入的正确写法 <div ng-controller="ctrl"> {{name}} {{age}} <div ng-co ...
- python学习笔记之运算符
目录 前言 软件环境 身份运算符 算术运算符 比较运算符 位移运算符 自变运算符 位运算符 逻辑运算符 成员关系运算符 Python真值表 最后 前言 在前面的博文介绍了Python的数据结构之后,接 ...
- lvs讲解
作者写的就是好呀,简单明了,安逸的我也不知道早点看看,非得等到找工作了,在这里临时抱佛脚,以后再过来添加我自己的总结 http://www.linuxvirtualserver.org/zh/
- UGUI射线检测
1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂上Canvas这个组件(当挂上Graphic Raycaster时Canvas也会自动挂上). Ignor ...
- 【Storm】Storm实战之频繁二项集挖掘
一.前言 针对大叔据实时处理的入门,除了使用WordCount示例之外,还需要相对更深入点的示例来理解Storm,因此,本篇博文利用Storm实现了频繁项集挖掘的案例,以方便更好的入门Storm. 二 ...
- Java负载均衡-輪詢法
import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; /* ...
- 华为OJ之放砝码
题目描述: 现有一组砝码,重量互不相等,分别为m1.m2--mn:他们可取的最大数量分别为x1.x2--xn.现在要用这些砝码去称物体的重量,问能称出多少中不同的重量. 注: 称重重量包括0: 要对输 ...
- C#中的Infinity和NaN
C#中double和float类型有两个特殊值: Infinity(无穷大):5.0 / 0.0 = Infinity NaN(not a number):0.0 / 0.0 = NaN 计算表达式 ...