zoukankan      html  css  js  c++  java
  • [MySQL]错误日志

    错误日志(errorlog)

    默认是开启的,而且从5.5.7以后无法关闭错误日志,错误日志记录了运行过程中遇到的所有严重的错误信息,以及 MySQL每次启动和关闭的详细信息。

    二进制日志(bin log)

    记录数据变化

    binlog记录了数据库所有的ddl语句和dml语句,但不包括select语句内容,语句以事件的形式保存,描述了数据的变更顺序,binlog还包括了每个更新语句的执行时间信息。如果是DDL语句,则直接记录到binlog日志,而DML语句,必须通过事务提交才能记录到binlog日志中。 生产中开启数据备份、恢复、主从

    DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。
    DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和select 等。(增添改查)
    DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

    通用查询日志(general query log)

    啥都记录 耗性能 生产中不开启

    慢查询日志(slow query log)

    SQL调优 定位慢的 select

    默认是关闭的。

    需要通过以下设置进行开启:

    #开启慢查询日志
    slow_query_log=ON
    #慢查询的阈值
    long_query_time=3
    #日志记录文件如果没有给出file_name值, 默认为主机名,后缀为-slow.log。如果给出了文件名,但不
    是绝对路径名,文件则写入数据目录。
    slow_query_log_file=file_name
    

    记录执行时间超过long_query_time秒的所有查询,便于收集查询时间比较长的SQL语句

    重做日志(redo log)

    1. 什么时候产生:(事务开始执行后,立刻保存的日志,保存内容是本次事务的操作内容)

    事务开始之后就产生redo log,redo log的落盘并不是随着事务的提交才写入的,而是在事务的执行过程中,便开始写入redo log文件中。

    1. 什么时候释放

    当对应事务的脏页写入到磁盘之后,redo log的使命也就完成了,重做日志占用的空间就可以重用(被覆盖)。

    1. 作用

    确保事务的持久性。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。

    1. 内容

    物理格式的日志,记录的是物理数据页面的修改的信息,其redo log是顺序写入redo log file的物理文件中去的。

    重做日志的目的:万一实例或者介质失败,重做日志文件就能派上用场。

    每个InnoDB存储引擎至少有一个重做日志文件组,每个文件组下至少有2个重做日志文件,如默认的ib_logfile0、ib_logfile1。InnoDB存储引擎先写重做日志文件1,当达到文件的最后时,会切换至重做日志文件2,当重做日志文件2也被写满时,会再被切换到重做日志文件1中。

    图片

    回滚日志(undo log)

    1. 什么时候产生:(事务开始前,对当前数据库数据的备份。)

    事务开始之前,将当前是的版本生成undo log,undo 也会产生 redo 来保证undo log的可靠性

    1. 什么时候释放:

    当事务提交之后,undo log并不能立马被删除,而是放入待清理的链表。由purge线程判断是否由其他事务在使用undo段中表的上一个事务之前的版本信息,决定是否可以清理undo

    1. 作用:

    保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读

    1. 内容:

    逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复至事务之前的状态,而不是从物理页面上操作实现的,这一点是不同于redo log的。

    中继日志(relay log)

    从主服务器复制过来的日志:从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后从服务器SQL线程会读取relay-log日志的内容并应用到从服务器,从而使从服务器和主服务器的数据保持一致

    show variables like '%relay%';

    结果

    +---------------------------+----------------------------------+

    | Variable_name             | Value                            |

    +---------------------------+----------------------------------+

    | max_relay_log_size        | 0                                |

    | relay_log                 | relay-mysql                      |

    | relay_log_basename        | /var/lib/mysql/relay-mysql       |

    | relay_log_index           | /var/lib/mysql/relay-mysql.index |

    | relay_log_info_file       | relay-log.info                   |

    | relay_log_info_repository | FILE                             |

    | relay_log_purge           | ON                               |

    | relay_log_recovery        | ON                               |

    | relay_log_space_limit     | 0                                |

    | sync_relay_log            | 10000                            |

    | sync_relay_log_info       | 10000                            |

    max_relay_log_size
    relay log 允许的最大值,如果该值为0,则默认值为 max_binlog_size (1G);
    如果不为0,则 max_relay_log_size 则为最大的relay_log文件大小;
    relay_log
    定义 relay_log 的位置和名称,如果值为空,则默认位置在数据文件的目录;
    relay_log_index
    定义 relay_log 索引的位置和名称,记录有几个 relay_log 文件,默认为2个
    relay_log_info_file
    定义 relay-log.info 的位置和名称
    relay-log.info 记录 master 主库的 binary_log 的恢复位置和 从库 relay_log 的位置;

  • 相关阅读:
    centos下安装wireshark 抓包
    centos安装系统全过程
    生活大爆炸第十二季在线观看下载(2018)
    古战场传奇第四季在线观看下载(2018)
    奥维尔号第二季在线观看迅雷下载(2018)
    路德第五季在线观看迅雷下载
    权力的游戏第七季在线观看(2017)
    维京传奇第五季下载
    给你的 CentOS 7 安装中文支持
    行尸走肉第九季在线观看
  • 原文地址:https://www.cnblogs.com/anycc/p/14715357.html
Copyright © 2011-2022 走看看