MySQL日志各类总结

发布时间 2023-10-08 10:01:17作者: 小糊涂90
Mysql的日志分类:
	事务日志:transaction log
	错误日志:error log
	通用日志:general log
	慢查询日志:show query log
	二进制日志:binary log
	中继日志 reley log

1)事务日志的写入类型为"追加",因此其操作为“顺序IO”;通常也被称为:预写式日志 write ahead logging
   事务日志文件:ib_logfile0,ib_logfile1

事务的基本要素:
	1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。
  2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 
  3、隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。
  4、持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。

2)错误日志
mysql启动和关闭过程中输出的事件信息
mysqld运行运行中产生的错误信息
event.schedule运行一个event时产生的日志信息
在主从复制架构中的从服务器上启动从服务器线程是产生的信息

3)通用日志
记录对数据库的通用操作,包括:错误的sql语句
通用日志可以保存在:file(默认值)或table(mysql.general_log表)

4)慢查询日志
记录执行查询时长超出知道时常的操作

5)二进制日志(备份)
记录导致数据改变或潜在导致数据改变的sql语句
记录已提交的日志
不依赖存储引擎

功能:通过"重放"日志文件中的时间来生成数据副本
注意:建议二进制日志和数据文件分开存放(二进制文件可用来恢复数据库)

二进制日志记录的三种格式
基于“语句”:statement,记录语句,默认模式(mariaDB 10.2.3。版本以下),日志量较少
基于“行”:row,记录数据,日志较大,更加安全,建议使用的格式
混合模式:mixed,让系统自行判断该基于哪一种方式进行,默认模式(MariaDB 10.2.4及以上版本)

6)中继日志
在主从复制架构中,从服务器用于保存主服务器的二进制日志中读取的事件