MySQL日志文件可以分为重做日志、还原日志、binlog、错误日志、慢速查询日志和常规日志,本文简要介绍了这些MySQL日志文件。 希望能帮上忙。
1、重做日志
重做日志是物理格式的日志,记录物理数据页的更改信息,并将重做日志按顺序写入重做日志文件的物理文件中。
重做日志确保事务的持久性。 有一个脏页在发生故障时还没有写入磁盘,它的特性是在重新启动mysql服务时,通过基于重做日志重做来实现事务的持久性。
2、回滚日志(还原日志) ) ) ) ) ) )。
回滚日志是逻辑格式的日志,与重做日志的不同之处在于,在执行还原时,它只是在逻辑上将数据恢复到事务之前的状态,而不是通过物理页进行操作实现。
回滚日志存储事务发生之前的数据版本,并可用于回滚。 此外,还可以提供多个版本的并发控制下的读取(MVCC ),即未锁定的读取
3、二进制日志(binlog )。
二进制日志是将数据库中的操作记录为二进制文件但不记录查询语句的逻辑格式的日志。 它简单地被认为是已执行事务的sql语句。 但是,它不完全像sql语句那样简单,还包含所执行的sql语句(添加或删除)的反向信息,这意味着delete与delete本身及其反向的insert相对应。 更新对应于更新执行前后的版本的信息; insert支持delete和insert本身的信息。
二进制日志可以用于复制,主从复制中,从库利用主库中的binlog进行重播,实现主从同步; 用于数据库的基于时间点的恢复。
4、错误日志(错误日志)。
错误日志记录有关mysqld的启动和停止以及服务器运行时发生的错误的信息。 默认情况下,系统记录错误日志的功能处于关闭状态,错误消息将输出到标准错误输出。
5、滚动查询日志(slow query log ) )。
抛出日志记录执行时间过长且未使用索引的查询语句、错误select、update、delete和insert语句,并且仅记录成功执行的语句。
6、一般查询日志(通用日志) )。
general log记录服务器接收到的所有查询或命令。 无论这些查询或命令是否正确或包含语法错误,都以{Time,Id,Command,Argument }的形式记录。 由于mysql服务器需要不断记录日志,因此打开常规日志会产生很大的开销。 因此,默认情况下,Mysql关闭常规日志。
7、继电器日志(relay log ) )。
中继日志类似于二进制; 可以在复制方案中使用。 从服务用于从主服务获取二进制文件的事件。
说明:
其中,重做日志和回退日志与事务操作有关,二进制日志也与事务操作有关。 这三个日志对理解MySQL中的事务操作具有重要意义。