zoukankan      html  css  js  c++  java
  • mysql的日志文件及其作用

    MySQL中有七种日志文件,分别是:

    • 重做日志(redo log)
    • 回滚日志(undo log)
    • 二进制日志(binlog)
    • 中继日志(relay log)
    • 错误日志(errorlog)
    • 慢查询日志(slow query log)
    • 一般查询日志(general log)

    下面介绍前4种。。。。

    1. redo log 

     a.作用

      保持了事务的持久性, 采用循环写的方式将写数据,写入方式请参考https://www.cnblogs.com/zhixinSHOU/p/13214933.html

     b.内容

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

     b.开始节点

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

     c.结束节点

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

    2.undo log

     a.作用

      保证了事务的原子性,当事务开始回滚的时候会用到

     b.内容:

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

     c.开始节点:

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

     d.结束节点:

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

    3. binlog

     a.作用

      主从复制,

      前提:主库将操作记录存到binlog中,

      在发生主从复制时,

      1. 主库会发起一个log dump线程,用来给从库I/O线程传binlog;

      2.从库发起一个I/O线程接收binlog文件,并将得到的binlog文件写到本地relay-log(中继日志)中,

      3.从库发起一个SQL 读取中继日志文件,逐一执行sql语句

    在主从复制的时候需要注意的事

      1) Master将操作语句记录到binlog日志中,然后授予slave远程连接的权限(master一定要开启binlog二进制日志功能,通常为了数据安全考虑,salve也开启binlog功能)

      2) Slave开始俩个线程:IO线程和sql线程,其中:IO线程负责读取master的binlog内容到中继日志relay log里,sql线程负责从中继日志里读取binlog内容,并更新到slave的数据库,这样就能保持slave数据和master数据保持一致了

      3) 至少有俩个Mysql的服务

      4) 最好确保master和slave服务器上的Mysql版本相同,或者主服务器小于子服务器

      5) Master和slave 俩节点时间需同步

    4.relay-log

      作用已经在上面介绍过了,不再重复介绍了

      

    已经

  • 相关阅读:
    GPS时钟参考源(GPS同步时钟)电力系统探讨
    GPS对时系统(时间同步系统)建设才是电力基础
    NTP授时服务器(NTP时钟服务器)基本原理介绍
    NTP授时服务器(北斗授时产品)在广播电视系统里的应用
    GPS北斗授时设备共视对比及传输链路接口
    基于NTP时钟服务器的时间同步数据采集系统
    利用GPS或北斗卫星开发的一款NTP授时服务器
    GPS时钟系统(卫星时钟同步)才是智能变电站的基础建设
    PTP精密时钟服务器IEEE1588(V2.0)协议浅析
    电子时钟显示屏,时间同步显示,GPS时钟系统
  • 原文地址:https://www.cnblogs.com/zhixinSHOU/p/13215142.html
Copyright © 2011-2022 走看看