Mysql中错误日志、binlog日志、查询日志、慢查询日志简单介绍
前言
数据库的日志是帮助数据库管理员,追踪分析数据库以前发生的各种事件的有力根据。mysql中提供了错误日志、binlog日志(二进制日志)、查处日志、慢查询日志。在此,我力求解决下面问题:各个日志的作用是什么?如何去控制这些日志呢?如何去使用这些日志提供的信息呢?
错误日志
1.错误日志作用
2.错误日志控制与使用
1.配置
2.查看错误日志
二进制日志
1.作用
二进制日志(又叫binlog日志)记录了全部的DDL(数据定义语言)语句和DML(数据操作语言)语句。可是不包含数据查询语句。语句是以“事件”的形式保存的,它描写叙述数据更改的过程。该日志的两个主要功能是:数据的恢复与数据的复制。
比方,我们每天午夜12:00进行数据的备份。
假设某天,下午13:00,数据库出现问题。导致数据库内容丢失。
我们能够通过二进制日志解决问题。解决思路是。能够先将前一天午夜12:00的数据备份文件恢复到数据库,然后再使用二进制日志回复从前一天午夜12:00到当天13:00对数据库的操作。
主server上的二进制日志内容会被发送到各个从server上。并在每一个从server上运行,从而保证了主从server之间数据的一致性。
2.二进制日志控制与使用
1.开启
mySQL会将改动的数据库内容的语句记录到以 base_name-bin.0000x为名的日志文件里。当中bin代表binary。后缀00000x代表二进制日志文件的顺序,每次启动Mysql,日志文件顺序会自己主动加1.假设base_name未定义。MySQL将使用pid-file參数设置的值作为二进制日志文件的基础名字。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
2.查看
比方:mysqlbinlog D:\wamp\bin\mysql\mysql5.6.17\data\mybinlog.000003
运行结果例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
如今我们来做一个測试。看看bin日志是否记录了我更新数据库的操作
比方我将数据表t2中id2=2的那行记录的id1改为5。然后在查询二进制日志文件,看是否记录了我的操作。
结果和明显,二进制文件记录了我改动数据库的操作,而且还记录了我是改动那个数据库里面的数据,至于我查询语句。它并没有记录。
3.二进制日志的删除
1.通过reset master 命令
2.通过purege master logs to命令
3.通过purge master logs beffor '时间' 命令
4.通过在配置文件里设置參数expire_logs_days
4.二进制日志重要參数说明
MySQL中系统默认的设置是sync_binlog=0。也就是不做不论什么强制性的磁盘刷新指令。这时候的性能是最好的,可是风险也是最大的。由于一旦系统Crash。在binlog_cache中的全部binlog信息都会被丢失。而当设置为“1”的时候,是最安全可是性能损耗最大的设置。由于当设置为1的时候。即使系统Crash。也最多丢失binlog_cache中未完毕的一个事务,对实际数据没有不论什么实质性影响。
5.利用二进制日志进行数据恢复
\mybinlog.000004
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
关于二进制日志的补充:
1.我们还能够通过使用show binary logs命令查看当前还有哪些二进制日志。
2.我们能够通过show binlog
events日志记录的事件
show binlog events查看的是全部日志记录的事件。假设想查询某个二进制日志记录事件,能够在后面加in+'日志名'。例如以下图:
查询日志
慢查询日志
1.功能描写叙述
我们能够通过log-slow-queries=[file_name]选项来启动慢查询日志功能。和前面的日志一样,假设没有指定file_name,那么日志文件夹在datedir文件夹下,且默认的名字为host_name-slow.log。
2.慢查询日志读取
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
slow_query_log=ON
slow_query_log_file=D:/wamp/logs/myslowquery.log
long_query_time=1.5
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
在上面我共运行了3条SQL语句,如今我们再来看一下,慢查询日志例如以下
其仅仅是记录了查询当中查询时间比較长的那条sql语句。
Mysql中错误日志、binlog日志、查询日志、慢查询日志简单介绍的更多相关文章
- mysql中删除binlog的方法?mysql中如何删除binlog?
需求描述: 在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除 binlog的方法. 操作过程: 1.通过系统参数控 ...
- mysql中redo和binlog的区别
影响MySQL中redo的配置参数: innodb_log_file_size:指定每个redo日志大小,默认值48MB innodb_log_files_in_group:指定日志文件组中redo日 ...
- 在MySQL中如何使用覆盖索引优化limit分页查询
背景 今年3月份时候,线上发生一次大事故.公司主要后端服务器发生宕机,所有接口超时.宕机半小时后,又自动恢复正常.但是过了2小时,又再次发生宕机. 通过接口日志,发现MySQL数据库无法响应服务器.在 ...
- MySQL 中Redo与Binlog顺序一致性问题
首先,我们知道在MySQL中,二进制日志是server层的,主要用来做主从复制和即时点恢复时使用的.而事务日志(redo log)是InnoDB存储引擎层的,用来保证事务安全的.现在我们来讨论一下My ...
- MySQL中进行树状所有子节点的查询
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...
- MySQL中进行树状所有子节点的查询 . mysql根据父id 查询所有的子id
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...
- mysql中如何开启binlog?开启二进制日志文件?binary log?
需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...
- mysql中利用show profile很直观的看到查询缓存的作用。
1.首先,开启mysql的查询缓存. 查看查询缓存情况: MariaDB [test]> show variables like '%query_cache%';+--------------- ...
- Navicat for Mysql中错误提示索引过长1071-max key length is 767 byte
1.建用户信息表 tb_person_info create table tb_person_info( user_id int(10) auto_increment, `name` varchar( ...
随机推荐
- VirtualBox Networking Model
- 飞思卡尔开发板-迅为IMX6开兼容单核 双核 四核Plus开发板
飞思卡尔开发硬件接口介绍: 核心板参数 尺寸:51mm*61mm CPU:Freescale Cortex-A9 四核 i.MX6Q,主频 1.2 GHz 内存:2GB DDR3 存储:16GB EM ...
- mysql-scott用户的表的创建
/* 功能:创建 scott 数据库中的 dept 表 */ create table dept( deptno int unsigned auto_increment primary key COM ...
- vue全选和取消全选
代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- adb 设备命令
一.adb 设备命令1.查看机型时,可以使用以下命令$ adb shell getprop ro.product.model 2.如果我们忘记具体系统属性的名字$ adb shell getprop ...
- 硕毕论文_基于 3D 卷积神经网络的行为识别算法研究
论文标题:基于 3D 卷积神经网络的行为识别算法研究 来源/作者机构情况: 中 国 地 质 大 学(北京),计算机学院,图像处理方向 解决问题/主要思想贡献: 1. 使用张量CP分解的原理, ...
- selenium+python自动化unittest之跳过用例skip
前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例 ...
- 诊断:ORA-00376 & ORA-01110
现象: Errors in file /path/of/diag/rdbms/prod/PROD/trace/PROD_ora_13447.trc: ORA-00376: 此时无法读取文件 61 OR ...
- 零基础入门学习Python(9)--了不起的分支和循环3
前言 本节继续介绍分支和循环 知识点 while循环 Python while循环与if条件分支有点类似,在条件为真的情况下,执行某一段指定的代码.不同的是只要条件为True,while循环就会一直重 ...
- 用PHP写一个最简单的解释器Part4(写一个最简单的脚本语言)
好吧!我承认我想标题党了.大家对解释器的吸引,绝对没有自己动手写一个脚本语言更有吸引力.不过如果看到标题过来的,可能也是 我承认,之前收藏的减肥视频,我都是这样对待他们的. 不过我还是相信很多程序猿o ...