当前位置:首页 > 数码 > 数据库日志分类 (数据库日志有哪几种)

数据库日志分类 (数据库日志有哪几种)

admin4个月前 (05-11)数码11
MySQL日志类型 MySQL数据库使用各种日志记录系统事件、查询和数据修改。这些日志对于故障排除、性能优化和数据恢复至关重要。 1. 错误日志(errorlog) 错误日志记录系统启动、关闭或运行过程中的错误信息。默认位置:`/var/log/mysqld.log`。 2. 慢查询日志(slowquerylog) 慢查询日志记录响应时间超过特定阈值(`long_query_time`)的查询。默认`long_query_time`为10秒。用于识别和分析性能瓶颈。 3. 一般查询日志(generallog) 一般查询日志记录客户端连接信息和执行的SQL语句。用于跟踪用户活动、调试问题和进行安全审计。默认未启用。 4. 回滚日志(undolog) 回滚日志记录数据修改前的数据。用于在事务回滚时恢复数据,并支持多版本并发控制(MVCC)。 5. 二进制日志(binlog) 二进制日志记录数据修改操作(INSERT、UPDATE、DELETE),不包括查询操作。用于主从复制和数据库恢复。 6. 重写日志(redolog) 重写日志是一种基于磁盘的数据结构,用于在MySQL宕机时纠正不完整的事务。记录事务执行后的状态,以确保数据一致性。 MySQL日志配置 MySQL日志配置位于配置文件`my.cnf`中。以下示例配置启用慢查询日志和错误日志: 启用慢查询日志 slow-query-log=ON long_query_time=5 将阈值设置为5秒 启用错误日志 log-error=/var/log/mysql/error.log 启用和禁用日志 可以使用以下命令启用或禁用日志: 启用慢查询日志: SET GLOBAL slow_query_log=ON; 禁用慢查询日志: SET GLOBAL slow_query_log=OFF; 启用错误日志: SET GLOBAL general_log=ON; 禁用错误日志: SET GLOBAL general_log=OFF; 日志处理 日志文件可以手动或通过日志轮转工具(如logrotate)管理。定期清理旧日志文件非常重要,以避免磁盘空间不足。 其他日志选项 除了上述日志类型外,MySQL还提供了其他日志选项,如: 性能模式日志(performance_schema):收集有关MySQL性能和资源使用的详细统计信息。 查询分析日志(query_analyzer_log):记录查询分析器的信息,用于性能调优。 审计日志(audit_log):记录安全相关的事件,例如用户登录尝试和权限更改。 充分利用MySQL日志功能可以帮助数据库管理员监控系统健康、诊断问题、提高性能并确保数据完整性。

记载数据库运行过程中所有更新操作的文件称为什么

记载数据库运行过程中所有更新操作的文件称为日志文件。

日志文件主要包括:

1、事务标识(标明是哪个事务)。

2、操作的类型(插入、删除或修改)。

3、操作对象(记录内部标识)。

4、更新前数据的旧值(对插入操作而言此项为空值)。

5、更新后数据的新值(对删除操作而言此项为空值)。

扩展资料:

数据库日志

日志文件的分类

1、内核及系统日志

这种日志数据由rsyslog统一管理,根据其主配文件/etc/rsyslog。conf中的设置决定将内核及各种系统程序信息记录到什么位置。

2、用户日志

3、程序日志

有些应用程序会选择由自己独立管理一份日志文件,而不是交给rsyslog服务管理,用于记录本程序运行过程中的各种事件信息。

mysql的几种日志记录

重做日志(redo log)作用: 确保事务的持久性。 防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。 内容:物理格式的日志,记录的是物理数据页面的修改的信息,其redo log是顺序写入redo log file的物理文件中去的。 什么时候产生:事务开始之后就产生redo log,redo log的落盘并不是随着事务的提交才写入的,而是在事务的执行过程中,便开始写入redo log文件中。 什么时候释放:当对应事务的脏页写入到磁盘之后,redo log的使命也就完成了,重做日志占用的空间就可以重用(被覆盖)。 对应的物理文件:默认情况下,对应的物理文件位于数据库的data目录下的ib_logfile1&ib_logfile2innodb_log_group_home_dir 指定日志文件组所在的路径,默认./ ,表示在数据库的数据目录下。 innodb_log_files_in_group 指定重做日志文件组中文件的数量,默认2关于文件的大小和数量,由一下两个参数配置:innodb_log_file_size 重做日志文件的大小。 innodb_mirrored_log_groups 指定了日志镜像文件组的数量,默认1其他:很重要一点,redo log是什么时候写盘的?前面说了是在事物开始之后逐步写盘的。 之所以说重做日志是在事务开始之后逐步写入重做日志文件,而不一定是事务提交才写入重做日志缓存,原因就是,重做日志有一个缓存区Innodb_log_buffer,Innodb_log_buffer的默认大小为8M(这里设置的16M),Innodb存储引擎先将重做日志写入innodb_log_buffer中。 回滚日志(undo log)作用:保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读内容:逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复至事务之前的状态,而不是从物理页面上操作实现的,这一点是不同于redo log的。 什么时候产生:事务开始之前,将当前是的版本生成undo log,undo 也会产生 redo 来保证undo log的可靠性什么时候释放:当事务提交之后,undo log并不能立马被删除,而是放入待清理的链表,由purge线程判断是否由其他事务在使用undo段中表的上一个事务之前的版本信息,决定是否可以清理undo log的日志空间。 对应的物理文件:MySQL5.6之前,undo表空间位于共享表空间的回滚段中,共享表空间的默认的名称是ibdata,位于数据文件目录中。 MySQL5.6之后,undo表空间可以配置成独立的文件,但是提前需要在配置文件中配置,完成数据库初始化后生效且不可改变undo log文件的个数如果初始化数据库之前没有进行相关配置,那么就无法配置成独立的表空间了。 关于MySQL5.7之后的独立undo 表空间配置参数如下innodb_undo_directory = /data/undospace/ --undo独立表空间的存放目录innodb_undo_logs = 128 --回滚段为128KBinnodb_undo_tablespaces = 4 --指定有4个undo log文件二进制日志(binlog):作用:用于复制,在主从复制中,从库利用主库上的binlog进行重播,实现主从同步。 用于数据库的基于时间点的还原。 内容:逻辑格式的日志,可以简单认为就是执行过的事务中的sql语句。 但又不完全是sql语句这么简单,而是包括了执行的sql语句(增删改)反向的信息,也就意味着delete对应着delete本身和其反向的insert;update对应着update执行前后的版本的信息;insert对应着delete和insert本身的信息。 在使用mysqlbinlog解析binlog之后一些都会真相大白。 因此可以基于binlog做到类似于oracle的闪回功能,其实都是依赖于binlog中的日志记录。 什么时候产生:事务提交的时候,一次性将事务中的sql语句(一个事物可能对应多个sql语句)按照一定的格式记录到binlog中。 这里与redo log很明显的差异就是redo log并不一定是在事务提交的时候刷新到磁盘,redo log是在事务开始之后就开始逐步写入磁盘。 因此对于事务的提交,即便是较大的事务,提交(commit)都是很快的,但是在开启了bin_log的情况下,对于较大事务的提交,可能会变得比较慢一些。 这是因为binlog是在事务提交的时候一次性写入的造成的,这些可以通过测试验证。 什么时候释放:binlog的默认是保持时间由参数expire_logs_days配置,也就是说对于非活动的日志文件,在生成时间超过expire_logs_days配置的天数之后,会被自动删除。 对应的物理文件:配置文件的路径为log_bin_basename,binlog日志文件按照指定大小,当日志文件达到指定的最大的大小之后,进行滚动更新,生成新的日志文件。 对于每个binlog日志文件,通过一个统一的index文件来组织。 慢查询日志:慢日志记录执行时间过长和没有使用索引的查询语句,报错select、update、delete以及insert语句,慢日志只会记录执行成功的语句。 查看慢查询时间: show variables like “long_query_time”;默认10s查看慢查询日志路径:show variables like “%slow%”;开启慢日志set global slow_query_log=1;mysql的几种日志记录标签:basename逻辑最大的指定bin判断purgeselectredo

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: 数据库日志