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 ...
随机推荐
- mac-os安装autojump
一 概念 autojump是一个命令行工具,它可以使用快捷命令,直接跳转到配置好的目录,而不用管现在身在何处,依赖zsh. 一 安装 安装zsh:sh -c "$(curl -fsSL ht ...
- 浅谈RabbitMQ Management
在上一篇博文(centos安装MQ)中,介绍了如何在linux安装rabbitmq,以及安装维护插件,这篇主要介绍介绍rabbitmq_management的UI. vrabbitmq_managem ...
- DotNetCore跨平台~EFCore2.0连接Mysql的烦恼-已解决
回到目录 对于传统的nuget包,我们习惯上用官方或者大型组织的,因为它们比较考靠谱,但就在前两天.net core2.0发布后,我把efcore也升级到2.0了,mysql.EfCore也升级到支持 ...
- 数据库~dotnetcore连接Mysql插入中文失败
到目录 在dotnetcore里,连接mysql数据,插入中文时出现无法识别,并提示插入失败的情况,分析后得知它是编码问题,即数据库编码问题,你的中文在数据表里无法被识别! 解决方法(一) 进行mys ...
- MIPI DSI之DBI DPI含义和区别(3-1)
一.MIPI MIPI(Mobile Industry Processor Interface/移动工业处理器接口)是2003年由ARM.Nokia.ST 等公司成立联盟并为移动应用处理器制定的一个开 ...
- NodeJs之邮件(email)发送
NodeJs之邮件(email)发送 一,介绍与需求 1.1,介绍 1,Nodemailer简介 Nodemailer是一个简单易用的Node.js邮件发送插件 github地址 Nodemailer ...
- ES6躬行记(21)——类的继承
ES6的继承依然是基于原型的继承,但语法更为简洁清晰.通过一个extends关键字,就能描述两个类之间的继承关系(如下代码所示),在此关键字之前的Man是子类(即派生类),而在其之后的People是父 ...
- 四种途径提高RabbitMQ传输消息数据的可靠性(一)
前言 RabbitMQ虽然有对队列及消息等的一些持久化设置,但其实光光只是这一个是不能够保障数据的可靠性的,下面我们提出这样的质疑: (1)RabbitMQ生产者是不知道自己发布的消息是否已经正确达到 ...
- PC打开多个微信
打开记事本 在哪个盘就打开哪个盘 例如我的D盘 输入这一串 D:CD 微信路径start WeChat.exe&WeChat.exe 保存然后改后缀名为.bat 然后运行 运行前要关掉之前开的 ...
- sql 修改、更新、替换 某个字段的部分内容(转载)
来源:https://blog.csdn.net/jiangnanqbey/article/details/81304834 1*.需求 将表(Ws_FormMain)的字段(order_Number ...