mysql错误日志/var/log/mariadb/mariadb.log,二进制日志
mariadb-日志
mariadb日志
mariadb日志:
1、查询日志:query log;
2、慢查询日志:slow query log
3、错误日志:error log
4、二进制日志:binary log
5、中继日志:reley log
6、事务日志:transaction log
查询日志
记录查询操作:
文件:file
表: table
general_log=ON|OFF
general_log_file=HOSTNAME.log # 使用相对路径,存储在定义的mysql数据存放路径下
log_output=TABLE|FILE|NONE
不记录日志的方式有两种:
1、general_log=off不会记录
2、general_log=on但把log_output=NONE也不会记录日志
查询日志一般是不开启,额外会产生太多的压力,而且更重要的是查询语句并非每一个都有记录下来的价值
慢查询日志
指的是查询时长超出指定时长的查询操作:
不是所有的慢查询,都是因为查询语句自行真正执行太慢而导致,而是查询操作所依赖的表被其它语句锁定导致当前语句被阻塞,尽管如此依然判定这是个慢查询
slow_query_log=ON|OFF
slow_query_log_file=HOSTNAME-slow.log
log_slow_filter # 慢查询日志过滤器
admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
过滤器主要作用:
用来定义慢查询在进行记录时如何进行记录的,比如说这里的filter表示哪一种查询导致的不与记录,哪一种查询导致的才进行记录等等。
log_slow_queries= OFF # 从mariadb-10.0和mysql-5.6.1开始就被抛弃了,取而代之是slow_query_log
log_slow_rate_limit 1 # 指明记录速率
log_slow_verbosity 详细级别
默认的慢查询时长:
MariaDB [hellodb]> show global variables like '%long_query%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
也可以使用select来查询,如果是用户自定义变量使用一个@,服务器变量使用2个@
MariaDB [hellodb]> select @@global.long_query_time;
+--------------------------+
| @@global.long_query_time |
+--------------------------+
| 10.000000 |
+--------------------------+
自定义修改慢查询时长:
1、修改session会话级别
MariaDB [hellodb]> set long_query_time=5;
Query OK, 0 rows affected (0.01 sec)
MariaDB [hellodb]> show variables like '%long_query%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 5.000000 |
+-----------------+----------+
2、修改global全局设置,修改session和global设置,global只需要在set后面加上global即可,而session不需要加直接在set后面跟上变量即可;
MariaDB [hellodb]> set global long_query_time=5;
Query OK, 0 rows affected (0.00 sec)
MariaDB [hellodb]> show global variables like '%long_query%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 5.000000 |
+-----------------+----------+
错误日志
1、记录的不完全是错误日志,记录的是多种信息,包括MySQL服务器启动、关闭过程中所产生的事件也会记录到错误日志里面去,但它们未必是真正的错误日志信息。
2、错误日志默认也是没开启的,但在centos7发行版商是被开启的
3、记录哪几种日志信息:
3.1、mysqld启动和关闭过程中输出的事件信息;
3.2、mysqld运行中产生的错误信息;
3.3、event scheduler (事件调度器) 运行一个event时产生的日志信息;
3.4、在主从复制架构中的从服务器上启动从服务器线程时产生的信息;
log_error=/var/log/mariadb/mariadb.log
log_warnings=1|0:是否记录警告信息至错误日志文件中,1表示记录、0表示不记录
二进制日志:
记录导致数据改变或潜在导致数据改变的SQL语句;
功能:用于通过“重放”日志文件中的事件来生成数据副本;
而且更重要的是这个SQL语句在文件中保存是以二进制格式保存的而非是文本类型保存
SHOW {BINARY | MASTER} LOGS:查看mariadb自行管理使用中的二进制日志文件列表;
SHOW MASTER STATUS:查看使用中的二进制日志文件;
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
二进制日志记录格式:
基于“语句”记录:startement
基于“行”记录:row
混合模式:mixed,让系统自行判定该基于哪种方式进行;
要记录精确数据使用哪种方式:
基于“行”,记录数据的
基于“语句”,记录语句的
基于行会产生较大的数据量
混合模式,应用折中、语句不会产生混淆,不会导致两次记录、两次执行数据不一样,就基于语句并且节约空间,否则就基于行
二进制日志文件的构成:
两类文件
日志文件:mysql-bin.文件名后缀,二进制
索引文件:mysql-bin.index,文本
mysql-bin.index:是用来追踪mysql或mariadb正在使用中的或者是我们仍然在追踪中可用二进制日志文件序列有哪些
服务器变量:
sql_log_bin=ON|OFF:是否记录二进制日志;
log_bin=/PATH/TO/BIN_LOG_FILE:记录的文件位置;通常为ON;二进制日志默认通过滚动方式来进行记录的
binlog_format=STATEMENT|ROW|MIXED:二进制日志记录的格式;
max_binlog_size=1073741824:单个二进制日志文件的最大体积,默认为1G,
注意:
1、到达最大值之后自动会滚动
2、文件达到上限的大小未必为指定的精确值
sync_binlog=1|0:设定是否启动二进制日志同步功能:
mysqlbinlog:客户端命令工具
mysqlbinlog [options] log_file
--start-position
从指定起始号开始显示:
[root@node7 /data/mysql]#mysqlbinlog --start-position=499 mysql-bin.000002
--stop-position
从指定位置开始到指定结束位置
[root@node7 /data/mysql]#mysqlbinlog --start-position=328 --stop-position=457 mysql-n.000002
--start-datetime=
--stop-datetime=
时间格式:
YYYY-MM-DD hh:mm:ss
二进制日志事件的格式
# at 499
#181014 21:30:29 server id 1 end_log_pos 604 CRC32 0x5c77d4d7 Query thread_id=1 exec_time=0 error_code=0
use `mydb`/*!*/;
SET TIMESTAMP=1539523829/*!*/;
create table tb1(id int,name char(30))
/*!*/;
事件的起始位置: at 499
事件发生的日期和时间: 181014 21:30:29
事件发生的服务器标识: server id 1
事件的结束位置: end_log_pos 604
事件的类型: Query
事件发生时所在服务器执行此事件的线程的id:thread_id=1
语句的时间戳与将其写入二进制文件中的时间差;exec_time=0
错误代码: error_code=0
事件内容:
use `mydb`/*!*/;
SET TIMESTAMP=1539523829/*!*/;
create table tb1(id int,name char(30))
/*!*/;
GTID:全局事务ID号(global transaction id):
专属属性:GTID
说明在同一个复制集群中,每一个服务器上执行任何一个事务,都有一个唯一的标识符、无论是执行过多少个事务、在本次集群运行过程中一定不会有任何其它事务与当前事务重名的
--------------------------------------------------------------------------------------------------------------------------------------------------------
查看数据库日志的操作:
使用file命令来查看mysql-bin.000001 为哪个类型的文件,不能使用cat去查看mysql-bin.000001文件否则显示的结构为乱码
[root@node7 /data/mysql]#file mysql-bin.000001
mysql-bin.000001: MySQL replication log
查看当前mysql服务器中可管理的二进制日志文件有哪些
MariaDB [hellodb]> show binary logs;
+-------------------------+-------------+
| Log_name | File_size |
+------------------------+---------------+
| mysql-bin.000001 | 1675 |
| mysql-bin.000002 | 15764 |
| mysql-bin.000003 | 3429 |
| mysql-bin.000004 | 740 |
| mysql-bin.000005 | 10606 |
| mysql-bin.000006 | 26983604 |
| mysql-bin.000007 | 6098 |
+------------------------+---------------+
也可使用show master logs查看,跟show binary logs是一样的
MariaDB [hellodb]> show master logs;
+------------------------+----------------+
| Log_name | File_size |
+------------------------+----------------+
| mysql-bin.000001 | 1675 |
| mysql-bin.000002 | 15764 |
| mysql-bin.000003 | 3429 |
| mysql-bin.000004 | 740 |
| mysql-bin.000005 | 10606 |
| mysql-bin.000006 | 26983604 |
| mysql-bin.000007 | 6098 |
+------------------------+----------------+
查看当前系统上正在使用的二进制日志文件
查看二进制日志文件的事件
字段解释:
Log_name : 日志文件名
Pos: 起始点
Event_type: 事件的类型
Server_id: 服务器编号
End_log_pos: 结束位置
Info: 记录事件本身的内容
中继日志
复制架构中,从服务器用于保存从主服务器的二进制日志中读取到的事件;
事务日志
事务日志:transaction log
事务型存储引擎自行管理和使用;
redo log:重做日志
undo log:撤销日志
事务日志不宜太大,根据业务来定义;
mysql错误日志/var/log/mariadb/mariadb.log,二进制日志的更多相关文章
- MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结
MySQL中有六种日志文件,分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log).一 ...
- MySQL备份方案-->(利用mysqldump以及binlog二进制日志)
MySQL备份方案-->(利用mysqldump以及binlog二进制日志) 随着数据不 ...
- mysql 在row模式下truncate 与 delete 二进制日志记录的差异
二进行日志的格式为row mysql> show variables like 'binlog_format'; +---------------+-------+ | Variable_nam ...
- MySQL/MariaDB数据库的各种日志管理
MySQL/MariaDB数据库的各种日志管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务日志 (transaction log) 1>.Innodb事务日志相 ...
- MySQL 二进制日志(Binary Log)
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分. MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志能够帮助我们定位mysqld ...
- MySQL二进制日志(binary log)总结
本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- MySQL中redo log、undo log、binlog关系以及区别
MySQL中redo log.undo log.binlog关系以及区别 本文转载自:MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结 ...
- MySQL二进制日志总结
二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据 ...
- MySQL二进制日志备份和恢复详解
原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...
- mysql二进制日志详解
一.什么是二进制日志 二进制日志主要记录mysql数据库的变化,二进制日志包含所有更新了数据或者潜在更新了数据(如没有匹配到任何行的delete语句),语句以时间的形式保存,描述了数据的更改.二进制日 ...
随机推荐
- vuejs、eggjs、mqtt全栈式开发设备管理系统
vuejs.eggjs.mqtt全栈式开发简单设备管理系统 业余时间用eggjs.vuejs开发了一个设备管理系统,通过mqtt协议上传设备数据至web端实时展现,包含设备参数分析.发送设备报警等模块 ...
- 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) M - Unsatisfying 2-Sat
题目大意:给你 m 个式子, 问你最少再添加多少式子能使没有任何一种赋值方式使全部的式子为真. 并且在你给的式子中不能有非. 思路:根据题目给的m个式子可以建出2-Sat的图, 现在问你最少加多少个边 ...
- JS学习笔记(二)变量、作用域及内存问题
一.基本类型和引用类型的值 变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值:简单的数据段. 引用类型值:可能由多个值构成的对象. 当将一个值赋给变量时,解析器必须确定这个值是基 ...
- 8-10 Coping Books uva714
题意:把一个包含m个正整数的序列划分为k个 1<=k<=m<=500的非空连续子序列 使得每个正整数恰好属于一个序列 设第i个序列的各个数之和为 Si 你的任务是让所有的 ...
- SQL_异化
select a.pk_accasoa from bd_accasoa a; --下级科目原来主键: 0001Z0100000000001A2 --执行该语句后下级科目异化了(替换的意思) , '@@ ...
- TCP 建立连接为什么要握 3 次手?
上次已经说过,没有协议,不成方圆,计算机之间的通信更是依赖于协议.今天就重点分析一下 TCP 协议. 传输控制协议 TCP 是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 7 ...
- Java 中的异常
前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~ 突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一 ...
- CSS基础-DAY1
CSS 概述CSS 指层叠样式表 (Cascading Style Sheets),样式定义了如何显示 HTML文件中的标签元素,CSS是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标 ...
- 【BZOJ 2986】 莫比乌斯函数+容斥原理
2986: Non-Squarefree Numbers Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 337 Solved: 156 Descri ...
- [UOJ422]小Z的礼物
设要取的物品集合为$S$,$E=n(m-1)+(n-1)m$,$x_T$为覆盖了$T$中至少一个元素的$1\times2$数量 $$\begin{aligned}\sum\limits_{i=1}^\ ...