MySQL日志类别
一般查询日志:log,general_log,log_output
慢查询日志:查询执行的时长超过指定的查询,即为慢查询;
错误日志:通常时指错误日志的相关信息,通常用服务器关闭和启动的日志信息,服务器运行过程中的错误信息,还可以记录警告信息。
二进制日志:只是跟修改相关的操作,可以理解为一个重做日志,用于复制的基本凭据;
中继日志:它其实跟复制相关的,与二进制日志几乎相同;

事物日志:随机I/O转换为顺序I/O,一般在两个文件存储,一个存满了就换另外一个存

查询日志

log={ON|OFF} # 是否记录所有语句的日志信息于一般查询日志文件(general_log)中;
log_output={TABLE | FILE | NONE} # 定义log保存形式,none表示不保存日志;table和file可以同时出现,用逗号分隔即可;
general_log={ON|OFF} # 是否启动查询日志;
general_log_file # 定义一般查询日志保存的文件;
mysql > SET GOLBAL general_log ={OFF|ON};启用或关闭一般查询日志
mysql > SET GLOGAL log_output=’TABLE’;选项可以控制log的存放方法,table表示以表格的方式存放。

注:

  • 若想开启查询日志,则log和general_log参数都必须处于ON状态;

  • 对于繁忙的MySQL,不建议开启此日志;

慢查询日志:查询执行时长超过指定时长的查询,即为慢查询

long_query_time # 定义慢查询的时长;
slow_query_log {ON|OFF} # 全局参数,设定是否启用慢查询日志;它的输出位置也取决于log_output的值;
slow_query_log_file # 定义日志文件路径及名称;
log_slow_filter # 慢查询日志过滤类型;
log_slow_queries # 是否启用慢查询日志,会话级别的;
log_rate_limit=1 # 定义其日志记录速率;
log_slow_verbosity # 是否记录详细格式的日志信息;

错误日志

主要记录内容

  • 服务器启动和关闭过程中的信息;

  • 服务器运行过程中的错误信息;

  • 事件调度器运行一个事件时产生的信息;

  • 在复制架构中从服务器上启动从服务器线程时产生的信息;

参数设定

log_error = /path/to/error_log_file # 定义错误日志文件
log_warnnings = {1|0} # 是否记录警告信息于错误日志中

二进制日志

记录了对MySQL数据库进行的修改操作,,影响数据潜在的内容的信息,select的是不会被记录到二进制日志的,二进制日志也叫复制日志,默认在数据目录下,专门查看日志的命令是:mysqlbinlog

功能:1、做时间点恢复,要想从哪个时间点恢复我们可以手动调的,所以这是一个备份恢复的重要工具

    2、 mysql主从复制架构中使用;

   因为我们的MySQL数据是单进程多线程的工作机制,所以他可以同时发起很多们修改的语句,但是我们服务器使用的日志只有一个,那如果同时进行的多个线程 的请求都同时往日志文件中写数据,日志文件就成了资源热点,也叫资源征用点,那就会混乱不堪,为了解决这种问题,这里,当我们的线程要往二进制日志文件中 写数据的时候,它不是直接写到日志文件中去,还是统一写到日志缓冲区中,由日志缓冲区逐一写入日志文件中去,然而我们的日志文件对于一个很繁忙的服务器来 讲,每天都会产生很大的数据量,如果所有的二进制日志数据都写在一个日志文件中,那管理起来就特点的不方便了,也很不合理,如是日志文件丢失,那所有的日 志数据信息都丢失了,不应该这么做,那我们就有日志滚动的机制了,二进制日志我们可以自己定义,有两种定义日志滚致力的方法,一种是按大小来定义的,比如 说我们定义一个日志文件的大小为1G,那他存储一了大概1G左右就会滚动,使用下一个日志来存放二进制日志数据;另一种可以按时间来定义的,比如说一周滚 动一次,或者说一个月,一天滚动一次都可以;或者每次重启服务时或者执行FLUSH LOGS命令时都会滚动一次日志。

MariaDB [(none)]> SHOW MASTER STATUS;可以查看当前服务器正在使用的二进制日志文件以及下一下个事件开始时基于的位置Position,如果当前使用的是00004,那么00001、2、3将不会再被使用,因为已经被滚动过去了。
MariaDB [hellodb]> SHOW BINARY LOGS;查看当前系统上所有的的二进制日志文件,其实就是数据目录下mysql-bin.index文件中的信息,这个文件就是保存已经滚动过的日志文件的条目。
MariaDB [hellodb]> flush logs;
清除日志文件的命令:PURGE
MariaDB [hellodb]> show binlog events in ‘log_file’;
# mysqlbinlog
--start-time
--stop-time
--start-
# mysqlbinlog --start-protion=1139 mysql-bin.000001:在命令行中查看某个日志文件的某个位置点往后所记录的数据信息。可以用输出重定向保存到某个文件中去将来用于执行的。
server-id:服务器的身份标识,
MariaDB [hellodb]> SELECT  VERSION();查看当前数据库的版本
MariaDB [(none)]> SHOW BINLOG EVENTS IN 'mysql-bin.000001' FROM 1139;查看某个二进制日志文件中从哪个位置往后发生的事件信息。
MariaDB [(none)]> SHOW BINLOG EVENTS IN 'mysql-bin.000006'\G查看某个二进制文件中在所有时间点和结束点等相关的信息。   

MySQL记录二进制日志的格式

statement:基于语句

  • 缺陷:执行带时间函数的语句时,会导致主从服务器执行结果不一致;

  • 如 insert into tb1 value (current_date());

row:基于行

  • 缺陷:批量更新操作将导致从服务器进行更多的操作 update tb2 set salary=salary+1000;

  • mixed:混合模式,由MySQL自行判断选择适合的方式基于语句或基于行记录日志;

二进制日志文件的内容格式

  • 事件发生的日期和时间

  • 服务器id:server_id

  • 事件的结束位置:end_log_pos

  • 事件的类型:如Query,GTID等

  • 原服务器生成此事件时的线程id:thread_id

  • 语句的时间戳和写入二进制日志文件的时间差,exec_time

  • 错误代码:error_code

  • 事件位置:at #,相当于下一事件的开始位置

设定参数

og_bin = {ON|OFF|FileName} # 全局变量,控制二进制文件位置
log_bin_trust_function_creators # 全局变量,仅在启用二进制日志时有效,用于控制创建存储函数时如果会导致不安全的事件是否禁止创建存储函数
sql_log_bin = {ON|OFF} # 会话级别,用于控制二进制日志信息是否记录进日志文件
sync_binlog # 设定多久同步一次二进制日志至磁盘文件中,0表示不同步,任何正数值都表示对二进制每多少次写操作之后同步一次;
binlog_format={statement|row|mixed} # 指定二进制日志的类型
max_binlog_cache_size= # 二进制日志缓冲空间大小,仅用于缓冲事务类的语句, 其上限由max_binlog_stmt_cache_size决定
max_binlog_size= # 二进制日志文件大小上限,单位字节,默认大小1G
# 注:切勿将二进制日志与数据文件放在同一磁盘上,减少磁盘I/O

中继日志:它其实跟复制相关的,与二进制日志几乎相同,只不过它不是用于记录事件的,而是作为读取数据的源并且在本地执行的,当然中继日志是在从服务器上。

设定参数

   
  MariaDB [hellodb]> SHOW GLOBAL VARIABLES LIKE  '%relay%' ;查看中继日志的相关参数信息
relay_log=file_name # 设定中继日志的文件名称
relay_log_index=file_name # 设定中继日志的索引文件名,默认为为数据目录中的host_name-relay-bin.index
relay_log_purge={ON|OFF} # 是否自动清理不再需要的中继日志
relay_log_space_limit= # 设定用于存储所有中继日志文件的可用空间大小,0表示不限制relay_log_recovery:跟中继日志自动恢复相关的relay_log={空}:是否启用中继日志的

事务日志

  • 暂存事务提交的数据,实现将随机I/O转换成顺序I/O;

  • 事务数据提交流程:innodb_buffer-->事务日志-->数据文件;

  • 事务日志文件组,至少应该有2个日志文件,一般保存在数据目录下,为ib_logfile0和ib_logfile1;

注意事项

  • 尽可能使用小事务以提升事务引擎的性能;因为事务越大,回滚开销越大;

  • 崩溃恢复:将提交的事务从事务日志中同步至数据文件,将未提交的事务执行回滚操作,以保证数据一致性;

  • 避免磁盘故障导致事务文件丢失:对事务日志所在的磁盘做数据镜像;

  • 事务日志文件和数据文件应分离存放:防止对同一磁盘过于频繁的I/O操作;

设定参数

转载于:https://my.oschina.net/abcijkxyz/blog/721929

MySQL 日志的类型相关推荐

  1. MySQL日志的类型和实现方法_mysql的日志类型及作用

    mysql的日志类型及作用 当服务起不来或者报错的时候,我们第一时间想到的就是日志,日志这个东西记载了许多重要的信息,有利于我们排除故障.当然,mysql也有日志. 先来说说,mysql日志的作用,当 ...

  2. mysql日志存储类型_msyql 日志分类、存储、慢查询日志

    Mysql日志的分类: 出错日志(error log):(log_error)这个日志记载着服务器启动和关闭的情况,还记载着关于故障或异常状况的消息. 我们安装完数据库之后,启动数据库如果发生异常,我 ...

  3. mysql日志文件的类型和作用_Mysql日志文件和日志类型介绍_MySQL

    日志文件类型 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 记入文件中的信息类型 错误日志 记录启动.运行或停止mysqld时出现的问题. 查询日志 记录建立的 ...

  4. MySQL日志类型详解(全)

    日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息. mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日志. 我们最关注的是二进制日志( binlog ) ...

  5. wind mysql日志_Windows下的Mysql日志操作

    日志文件类型概述: 1. 错误日志 记录启动.运行或停止mysqld时出现的问题. My.ini配置信息: #Enter a name for the error log file. Otherwis ...

  6. 分析mysql日志文件_MySQL日志文件与分析

    1.查询日志.慢查询日志.二进制日志对比 查询日志 general_log 会记录用户的所有操作,其中包含增删查改等 可以指定输出为表 慢查询日志 slow_log 只要超过定义时间的所有操作语句都记 ...

  7. mysql 日志的存放形式_mysql日志详细解析

    转自:http://pangge.blog.51cto.com/6013757/1319304 MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据 ...

  8. 一、MySQL日志与备份

    一.MySQL日志管理 1.MySQL日志文件 常用的日志文件(在/etc/my.cnf中[mysqld]客户端配置中修改) MySQL的默认日志保存位置为/usr/local/mysql/data ...

  9. Linux命令:MySQL系列之十一--MySQL日志管理

    MySQL日志管理 SHOW GLOBAL VARIABLES LIKE '%log%':查看关于log的全局变量 一.日志分类 1.错误日志   2.一般查询日志   3.慢查询日志 4.二进制日志 ...

最新文章

  1. 保存数组_面试官:讲一讲你对据结构——数组、链表、栈、队列的理解
  2. ffmpeg-20160526-git-bin
  3. ElementUI中的el-table怎样实现每一列显示的是控件并能动态实现双向数据绑定
  4. 微博环境下利用综合策略构建推荐引擎
  5. @select注解_mybatis开发,你用 xml 还是注解?我 pick xml
  6. FPGA浮点数定点化
  7. 解决centos KDE命令提示符和文字不紧贴的问题
  8. (转载)Android两种Tab分页的方式:TabActivity和ActivityGroup以及Android项目几种常见的应用架构...
  9. excel导入mysql命令行_使用命令行将Excel数据表导入Mysql中的方法小结
  10. 入门选手都能了解的聚类算法之二(DBSCAN)
  11. 使用web.xml控制Web应用的行为
  12. npm下载报错npm ERR code ERESOLVE
  13. openwrt安装aliddns使用阿里云ddns
  14. 网友上海求职指南2007
  15. 直播搭建软件开发直播搭建技术流程解决方案
  16. leetcode-838:推多米诺
  17. 蕴含连接词的真值表为什么这样定义?
  18. 青少年机器人等级考试四级考什么
  19. 【笔记】AASTeX模板使用
  20. 计算机资格证面试题库,江苏教师资格证面试题库:2019上半年高中信息技术教师资格证面试试题(精选)第二批...

热门文章

  1. English语法 - 序章(重新认识英语)
  2. 计算机二级基础知识【重】
  3. Java编程答题游戏
  4. 万向区块链技术研究报告 | 雪崩协议 (Avalanche)技术调研
  5. 将电脑输入法关闭只留我们经常用的输入法
  6. 开发EduSoho v8.7.10 本地播放视频超时或者快进后网络错误导致视频下载中途失败。鉴权播放次数问题
  7. java我的世界溺尸为啥这么少,我的世界:溺尸刷新几率存在问题?溺尸刷怪塔为何得不到三叉戟?...
  8. c语言中的正弦函数与余弦函数
  9. UG NX二次开发(C#)-曲线-NXOpen.Curve初探
  10. SIM7600模块固件升级(模块自身升级)