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 ...
随机推荐
- 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上)
为了介绍使用ASP.NET Core构建GraphQL服务器,本文需要介绍一下GraphQL,其实看官网的文档就行. 什么是GraphQL? GraphQL 既是一种用于 API 的查询语言也是一个满 ...
- 【机器学习】--FP-groupth算法从初始到应用
一.前述 二.构建FP_groupth数流程 1.扫描事务数据库D 一次.收集频繁项的集合F 和它们的支持度.对F 按支持度降序排序,结果为频繁项表L. 2.创建FP 树的根节点,以“null”标记它 ...
- .NET Core微服务之基于Ocelot+IdentityServer实现统一验证与授权
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.案例结构总览 这里,假设我们有两个客户端(一个Web网站,一个移动App),他们要使用系统,需要通过API网关(这里API网关始终作为 ...
- Python实战171203统计
统计序列中元素出现的频次 如何统计出某一个随机数列的元素出现的次数是多少? import randomdata=[random.randint(0,7) for _ in range(15)]c=di ...
- [翻译]Mock 在 Python 中的使用介绍
目录 Mock 在 Python 中的使用介绍 原文链接与说明 恐惧系统调用 一个简单的删除函数 使用 Mock 重构 潜在陷阱 向 'rm' 中加入验证 将文件删除作为服务 方法 1:模拟实例的方法 ...
- 第一册:Lesson 123.
原文:A trip to Australia. question:Who is the man with the beard? Look ,Scott.This is a photograph I t ...
- Spring Boot 和 Docker 实现微服务部署
Spring boot 开发轻巧的微服务提供了便利,Docker 的发展又极大的方便了微服务的部署.这篇文章介绍一下如果借助 maven 来快速的生成微服务的镜像以及快速启动服务. 其实将 Sprin ...
- 《C#并发编程经典实例》学习笔记—2.2 返回完成的任务
问题: 如何实现一个具有异步签名的同步方法. 从异步接口或基类继承代码,但希望用同步方式实现方法. 解释一下所谓的异步接口和异步基类.例如如下代码 interface IMyAsyncInterfac ...
- dotnet检测类型是否为泛型
private static string GetTableName(Type type) { //检测类型是否为泛型 if (type.GetType().IsGenericType) {//取出泛 ...
- SpringBoot打包项目成war包,并部署到服务器的tomcat上
最近遇到项目需要上线部署到服务器,需要讲自己的SpringBoot项目打包成war包,部署到tomcat上. 下面记录下打包部署的过程. (1) 将SpringBoot项目打包成war包, 一.修改打 ...