MySQL日志管理

2022/6/20 6:20:19

本文主要是介绍MySQL日志管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、MySQL日志分类

配置文件:/etc/my.cnf

配置内容范围在于配置文件的[mysqld]一项中。

  • 错误日志

说明:在对应的数据目录中,以主机名+.err命名的文件,错误日志记录的信息类型:

log-error=/usr/local/mysql/data/mysql_error.log #指定日志的保存位置和文件名

  1. 记录了服务器运行中产生的错误信息

  2. 记录了服务在启动和停止是所产生的信息

  3. 在从服务器上如果启动了复制进程的时候,复制进程的信息也会被记录

  4. 记录event错误日志

  • 查询日志

说明:对除了慢查日志中记录的查询信息都将记录下来,这将对服务器主机产生大量的压力,所以对于繁忙的服务器应该关闭这个日志

与查询日志相关的变量

general_log=ON

general_log_file=/usr/local/mysql/data/mysql_general.log

  • 慢查询日志

说明:默认为关闭状态,记录下来查询时间超过设定时长的查询,这些查询日志将被慢查日志记录下来

slow_query_log=ON

slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log

long_query_time=5 #设置超过5秒执行的语句被记录,缺省时为10秒

  • 二进制日志

说明:默认开启,精确的记录了用户对数据库中的数据进行操作的命令和操作的数据对象。   

log-bin=mysql-bin
二进制日志文件的作用:

  1. 提供了增量备份的功能

  2. 提供了数据基于时间点的恢复,这个恢复的时间点可以由用户控制

  3. 为mysql的复制架构提供基础,将这主服务器的二进制日志复制到从服务器上并执行同样的操作,就可将数据进行同步

二进制日志格式:

  1. 基于语句 statement

  2. 基于行 row

  3. 混合方式 mixed

二进制日志事件:

    • position 基于位置

    • datetime 基于时间

二进制日志的查看与删除方式:

mysql>show master status; 查看当前正在使用的二进制日志

mysql>show binlog events in'mysql-bin.000001'; 查看二进制日志记录的事件

mysql>flush logs; 二进制日志滚动

mysql>show binary logs; 查看所有二进制日志

mysql>purge binary logs to 'mysql-bin.000003'; 删除二进制日志

  • 中继日志

说明:主要是在mysql服务器的中从架构中的从服务器上用到的,当从服务器想要和主服务器进行数据的同步时,从服务器将主服务器的二进制日志文件拷贝到己的主机上放在中继日志中,然后调用SQL线程按照拷中继日志文件中的二进制日志文件执行以便就可达到数据的同步(只在从服务器上开启)

  • 事务日志

说明:详细的记录了在什么时间发生了什么时候,在哪个时间对哪些数据进行了改变,能后实现事件的重放,一般只记录对数据进行改变的操作,对于读操作一般不进行记录。

事物日志为数据库服务器实现以下功能:   
(1).将随机IO转换为顺序IO,大大的提高了数据库的性能,存储的数据可能存在在磁盘的不同位置,降低了数据的读取和操作性能。

转换为顺序IO的原理为,先将数据存放在日志文件中,然后由RDBSM的后台将日志中的数据存放到磁盘上,这样就保证了存储的数据是连续的。

(2).为事件重放提供基础,事务日志详细的记录了时间发生的时间以及操作的数据对象,事务进程可以根据这些信息进行时间重放。    

默认的事务日志文件有两个,位于数据目录下以ibdata+number结尾的数字

  • 滚动日志

说明:只要是针对二进制日志进行滚动的,对某个类型的日志文件滚动一次就生成一个新的相对应的日志文件,通过这种方法保证日志文件的特定大小,从而保证服务器在对日志文件查询时有较高的响应能力。

滚动二进制日志的命令:

mysql> FLUSH LOGS;

 



这篇关于MySQL日志管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程