一步一步学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 ...
随机推荐
- CNN中的卷积核及TensorFlow中卷积的各种实现
声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN ...
- jQery的链式操作和商城简易导航栏
今天要记录的是jq的一些简单操作.项目的需求是做一个导航栏,单机不同的商品名称链接,显示相应的内容.用js来写的话相对代码量要多一些,选择jqrey一行则可以搞定,下面呢是我的代码和效果图 这个是初始 ...
- 第三章(jQuery中的DOM操作)
3.1 DOM 操作分类 ①DOM Core 包括(getElementById() , getElementsByTagName() , getAttribute() , setAttribute( ...
- C# 文字转换最简单的方法
引用Microsoft.VisualBasic string text=Strings.StrConv("需要转换的文字", VbStrConv.TraditionalChines ...
- 数据库常用语句sql
--查看表结构DESC tablename;DESC tablenam; --删除表即全部数据DROP TABLE tablename;DROP TABLE tablenaem; --使用SQL语句创 ...
- 使用Webpack加速Vue.js应用的4种方式
Webpack是开发Vue.js单页应用程序的重要工具. 通过管理复杂的构建步骤,你可以更轻松地开发工作流程,并优化应用程序的大小和性能. 其中介绍下面四种方式: 单个文件组件 优化Vue构建 浏览器 ...
- Win8.1下VM与Hyper-v冲突解决方法
不需要使用hyperv.去程序那里关闭hyperv.要同时使用两中虚拟机.使用折中的办法: 创建两个启动菜单,在启动的时候选择是否要运行 Hyper-V. 管理员身份运行命令提示符 cmd 输入 b ...
- 学习java窗口基本操作时无聊写的
学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;impor ...
- UglyNumber - 找“丑数”
uglynumber的定义是只能被1,2,3,5整除的数 规定1是第一个uglynumber:以此类推,1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 ...
- Hadoop hdfs上传文件 权限问题
问题描述: hadoop在虚拟机中的linux系统下 在本地通过eclipse编写代码把本地文件上传至hadoop平台的指定目录 代码如下: @Test public void upload() th ...