MySQL数据库日志文件(redo与undo)
+++++++++++++++++++++++++++++++++++++++++++
标题:MySQL数据库日志文件
时间:2019年2月25日
内容:MySQL数据库日志文件(redo日志和undo日志文件)
重点:MySQL数据库日志文件(redo日志和undo日志文件)
+++++++++++++++++++++++++++++++++++++++++++
1. redo日志文件
1.1 redo日志写入过程
数据库产生redo日志信息后;将redo日志信息缓存到redo日志缓冲区中;持久化到redo日志文件中(每个redo日志组中可以包含多个日志文件,多个文件之间采取循环覆盖写入的方式)。
1.2 redo日志缓冲区
1.2.1 相关参数
mysql> show variables like 'innodb_log_buffer%';
1.2.2 触发条件
当事务提交时会对redo log buffer中的数据进行持久化。
master thread每秒会对redo log buffer中的数据进行持久化。
当缓存剩余空间小于全部空间的一半时redo log buffer中的数据进行持久化。
1.3 redo日志相关知识
镜像组:MySQL5.1以上版本已经不支持redo镜像组,也就是说只能存在一组重做日志。
日志作用:在数据库重启时可以利用redo日志进行实例恢复。
日志存储:redo日志是以块的形式存储的,每个块大小为512字节,由日志头(12)、日志内容(492)和日志尾(8)。
日志文件数:MySQLredo日志文件数量默认为2个,可以通过参数innodb_log_files_in_group进行调整。
日志文件名称:ib_logfile0、ib_logfile1,文件存放在innodb_log_group_home_dir。
日志存储内容:记录数据库中的数据也发生的变化。
日志写入方式:日志组中的多个日志文件之间采取循环覆盖式写入。
1.4 redo日志文件参数
innodb_log_buffer_size //设置缓存空间的大小
innodb_log_file_size //设置redo日志文件的大小
innodb_log_files_in_group //存在连个日志组
innodb_log_group_home_dir //日志文件存放位置
2. undo日志文件
2.1 undo日志的作用
保存事务发生前的数据版本,实现数据回滚。
实现多版本并发控制,即非锁定读。
2.2 undo产生与释放
事务发生前将当前的数据版本形成undo日志,同时会产生相关redo日志,保证undo日志的可靠性。
事务提交后由purge线程判断其他事务是否在使用undo在上一个事务之前的版本信息,从而确定是否可以清理undo日志空间。
2.3 undo日志文件
MySQL5.6版本及以前的数据库中undo段位于共享表空间(ibdata)中。
MySQL5.7版本及以后的数据库中可以为undo配置独立表空间。
undo独立表空间相关参数如下:
mysql> show variables like '%undo%';
MySQL数据库日志文件(redo与undo)的更多相关文章
- 利用mysql数据库日志文件获得webshell
查看配置 show variables like '%general%'; 开启日志功能 set GLOBAL general_log='ON'; 设置日志存储路径 SET GLOBAL genera ...
- mysql基础---日志文件
一 基本日志文件 MYSQL有不同类型的日志文件(各自存储了不同类型的日志),从它们当中可以查询到MYSQL里都做了些什么,对于MYSQL的管理工作,这些日志文件是不可缺少的. 1.错误日志(The ...
- mysql 的日志文件
mysql的日志文件 日志文件大致分为 error log, binary log, query log, slow query log, innodb redo log ;如图: 1.error ...
- MySQL各类日志文件相关变量介绍
文章转自:http://www.ywnds.com/?p=3721 MySQL各类日志文件相关变量介绍 查询所有日志的变量 1 mysql> show global variables li ...
- Mysql数据库日志类型查询与配置详解
在mysql中日志分为很多种,下面小编来给大家介绍Mysql数据库日志类型查询与使用,希望对各位同学会有所帮助 mysql常见的日志类型有五种:错误日志.二进制日志.查询日志.慢查日志和中继日志. 一 ...
- MySQL的日志文件
本文将重点介绍MySQL的日志文件类型,并讲解其作用,并结合一定实操演示,相信跟着做下来你会对MySQL有更深的理解. 文件的概念 在开始讲MySQL日志文件之前,首先我们要明确一下文件的概念.MyS ...
- SOME:收缩数据库日志文件,查看表数据量和空间占用,查看表结构索引修改时间
---收缩数据库日志文件 USE [master]ALTER DATABASE yourdatabasename SET RECOVERY SIMPLE WITH NO_WAITALTER DATAB ...
- 收缩SQL数据库日志文件
收缩SQL数据库日志文件 介绍具体的操作方法前,先说下我操作的实际环境和当时的状况.我的服务器是windows server 2008 R2 64位英文版,数据库是SQL server 2008英文版 ...
- [转载]mysql慢日志文件分析处理
原文地址:mysql慢日志文件分析处理作者:maxyicha mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysq ...
随机推荐
- Android开发:UI相关(一)自定义样式资源
一.自定义样式资源: 1.在drawble中新建xml资源文件: 如果新建的xml文件没有自动放置在drawable文件夹下,就手动移动到drawable下. 2.编写样式代码: < ...
- expect实现自动交互由浅入深
expect实现自动交互由浅入深 作为运维人员可以通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet ...
- dubbo不完全指南
Dubbo架构 节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的 ...
- Java——IO系统概览
前言 对程序语言的设计者来说,创建一个好的输入/输出(IO)系统是一项艰难的任务.这艰难主要来自于要涵盖I/O的所有可能性.不仅存在各种I/O源端和想要与之通信的接收端(源端/接收端:文件.控制台和网 ...
- Android SDK 开发——发布使用踩坑之路
前言 在 Android 开发过程中,有些功能是通用的,或者是多个业务方都需要使用的. 为了统一功能逻辑及避免重复开发,因此将该功能开发成一个 SDK 是相当有必要的. 背景 刚好最近自己遇到了类似需 ...
- Redis在Windows中安装方法
首先下载Redis 下载地址:https://github.com/MSOpenTech/redis/releases Redis支持32位和64位,这个需要根据你系统平台的实际情况选择,我的是64位 ...
- 前端性能核对表Checklist-2018
前端性能核对表Checklist-2018 1. 计划与度量 Get Ready: Planning and Metrics ☐ Establish a performance culture. ☐ ...
- JVM的总结
1.JVM的内存模型 JVM主要由程序计数器,虚拟机栈,堆,方法区,本地方法区 1.程序计数器的功能是记录当前线程执行到了字节码文件的哪一行, JVM执行的是.java编译后的.class文件 2.虚 ...
- ubuntu 安装vm-tool
1.“虚拟机”->“安装vmware tools”VMware tools 2. 新建一个文件夹 ,打开vmware tools安装介质.右键选择vmwaretools的gz压缩包,选择“提取到 ...
- MongoDB学习(管理数据库和集合)
管理数据库 显示数据库列表 show dbs 切换到其他数据库 use <database_name> 创建数据库 MongoDB没有提供显式的创建数据库的MongoDB shell命令. ...