MySQL 8.0 InnoDB Tablespaces之Undo Tablespaces(UNDO表空间)

文章目录

  • MySQL 8.0 InnoDB Tablespaces之Undo Tablespaces(UNDO表空间)
    • Undo Tablespaces(UNDO表空间)
      • 默认UNDO表空间
      • 添加 Undo 表空间
      • 查看Undo 相关的信息
        • 查看Undo 相关参数变量
        • 查看Undo 状态信息
          • 通过information_schema.innodb_tablespaces 查看undo表空间信息
          • 通过information_schema.FILES查看undo表空间的数据文件信息
          • undo表空间的状态
    • 参考

【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
编辑|SQL和数据库技术(ID:SQLplusDB)

MySQL 8.0 OCP (1Z0-908) 考点概要

MySQL 8.0 OCP (1Z0-908) 考点精析-安装与配置考点1:设置系统变量
【MySQL】控制MySQL优化器行为方法之optimizer_switch系统变量
【MySQL】MySQL系统变量(system variables)列表(mysqld --verbose --help的结果例)
【MySQL】MySQL系统变量(system variables)列表(SHOW VARIABLES 的结果例)
MySQL 8.0 OCP (1Z0-908) 考点精析-备份与恢复考点1:MySQL Enterprise Backup概要
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点2:系统变量的确认
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点3:EXPLAIN ANALYZE
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点4:慢速查询日志(slow query log)
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点5:表连接算法(join algorithm)
MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6:MySQL Enterprise Monitor之Query Analyzer
MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点1:二进制日志文件(Binary log)
MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点5:数据字典(Data Dictionary)
MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点6:InnoDB Tablespaces之系统表空间(System Tablespace)
MySQL 8.0 InnoDB Tablespaces之File-per-table tablespaces(单独表空间)
MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)

MySQL 8.0 InnoDB Tablespaces之Undo Tablespaces(UNDO表空间)

InnoDB表空间是MySQL中用于存储InnoDB存储引擎表数据和索引的物理文件。
InnoDB Architecture
InnoDB表空间根据用途可以分成多种类型:

  • 数据表空间:
    • System tablespace(系统表空间)
    • File-per-table tablespaces(单独表空间)
    • General tablespaces(通用表空间/一般表空间)
  • Undo 表空间
  • 临时表空间(Temporary table tablespaces)

Undo Tablespaces(UNDO表空间)

UNDO日志(Undo Log)主要用于事务异常时的数据回滚,在磁盘上UNDO日志保存在UNDO表空间中。

默认UNDO表空间

MySQL实例初始化时会创建两个默认UNDO表空间,默认UNDO表空间会创建在innodb_undo_directory变量定义的位置。
默认UNDO表空间的数据文件命名为undo_001和undo_002,在数据字典中定义的对应UNDO表空间名称为innodb_undo_001和innodb_undo_002。

例:

mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)mysql> show variables like 'innodb_undo_directory';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_undo_directory | ./    |
+-----------------------+-------+
1 row in set (0.00 sec)mysql> SELECT  TABLESPACE_NAME, FILE_NAME, FILE_TYPE,AUTOEXTEND_SIZE/1024/1024 size_m->  FROM INFORMATION_SCHEMA.FILES->   WHERE FILE_TYPE LIKE 'UNDO LOG';
+-----------------+------------+-----------+-------------+
| TABLESPACE_NAME | FILE_NAME  | FILE_TYPE | size_m      |
+-----------------+------------+-----------+-------------+
| innodb_undo_001 | ./undo_001 | UNDO LOG  | 16.00000000 |
| innodb_undo_002 | ./undo_002 | UNDO LOG  | 16.00000000 |
+-----------------+------------+-----------+-------------+
2 rows in set (0.01 sec)mysql>

查看数据文件。

root@mysql-vm:/var/lib/mysql# ls -lh undo*
-rw-r----- 1 mysql mysql 16M Dec 28 17:09 undo_001
-rw-r----- 1 mysql mysql 16M Dec 28 17:09 undo_002
root@mysql-vm:/var/lib/mysql#

MySQL 8.0.23开始,初始UNDO表空间大小通常为16MB,UNDO表空间的扩展大小至少为16MB。

添加 Undo 表空间

由于 Undo 日志会在长时间运行的事务中变得很大,创建额外的 Undo 表空间可以避免单个表空间变得太大。MySQL 8.0.14 版本之后,可以在运行时使用CREATE UNDO TABLESPACE语法创建额外的UNDO 表空间。

CREATE UNDO TABLESPACE tablespace_name ADD DATAFILE 'file_name.ibu';

例:

mysql> CREATE UNDO TABLESPACE undo_tbs_1 ADD DATAFILE 'undo_tbs_1.ibu';
Query OK, 0 rows affected (0.26 sec)mysql> SELECT  TABLESPACE_NAME, FILE_NAME, FILE_TYPE,AUTOEXTEND_SIZE/1024/1024 size_m->  FROM INFORMATION_SCHEMA.FILES->   WHERE FILE_TYPE LIKE 'UNDO LOG';
+-----------------+------------------+-----------+-------------+
| TABLESPACE_NAME | FILE_NAME        | FILE_TYPE | size_m      |
+-----------------+------------------+-----------+-------------+
| innodb_undo_001 | ./undo_001       | UNDO LOG  | 16.00000000 |
| innodb_undo_002 | ./undo_002       | UNDO LOG  | 16.00000000 |
| undo_tbs_1      | ./undo_tbs_1.ibu | UNDO LOG  | 16.00000000 |
+-----------------+------------------+-----------+-------------+
3 rows in set (0.00 sec)mysql>

注意:创建创建额外的Undo 表空间的数据文件的扩展名必须使用 .ibu 。

查看Undo 相关的信息

查看Undo 相关参数变量

Undo 相关的参数变量主要包括如下内容。

例:

mysql> show variables like '%undo%';
+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
| innodb_max_undo_log_size | 1073741824 |
| innodb_undo_directory    | ./         |
| innodb_undo_log_encrypt  | OFF        |
| innodb_undo_log_truncate | ON         |
| innodb_undo_tablespaces  | 2          |
+--------------------------+------------+

回滚段(rollback segment)相关参数。

mysql> show variables like '%rollback%'-> ;
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| innodb_rollback_on_timeout | OFF   |
| innodb_rollback_segments   | 128   |
+----------------------------+-------+
2 rows in set (0.00 sec)mysql>
mysql> show variables like 'innodb_purge_rseg_truncate_frequency';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| innodb_purge_rseg_truncate_frequency | 128   |
+--------------------------------------+-------+
1 row in set (0.01 sec)
查看Undo 状态信息
通过information_schema.innodb_tablespaces 查看undo表空间信息
mysql> select * from information_schema.innodb_tablespaces where name like '%undo%' \G
*************************** 1. row ***************************SPACE: 4294967279NAME: innodb_undo_001FLAG: 0ROW_FORMAT: UndoPAGE_SIZE: 16384ZIP_PAGE_SIZE: 0SPACE_TYPE: UndoFS_BLOCK_SIZE: 4096FILE_SIZE: 16777216ALLOCATED_SIZE: 16777216
AUTOEXTEND_SIZE: 0SERVER_VERSION: 8.0.32SPACE_VERSION: 1ENCRYPTION: NSTATE: active
*************************** 2. row ***************************SPACE: 4294967278NAME: innodb_undo_002FLAG: 0ROW_FORMAT: UndoPAGE_SIZE: 16384ZIP_PAGE_SIZE: 0SPACE_TYPE: UndoFS_BLOCK_SIZE: 4096FILE_SIZE: 16777216ALLOCATED_SIZE: 16777216
AUTOEXTEND_SIZE: 0SERVER_VERSION: 8.0.32SPACE_VERSION: 1ENCRYPTION: NSTATE: active
2 rows in set (0.00 sec)mysql>

UNDO表空间的使用状态:

mysql> SELECT NAME, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES->   WHERE NAME in ('innodb_undo_001','innodb_undo_002')\G
*************************** 1. row ***************************NAME: innodb_undo_001
STATE: active
*************************** 2. row ***************************NAME: innodb_undo_002
STATE: active
2 rows in set (0.00 sec)mysql>
通过information_schema.FILES查看undo表空间的数据文件信息
mysql> SELECT  TABLESPACE_NAME, FILE_NAME, FILE_TYPE FROM INFORMATION_SCHEMA.FILES->   WHERE FILE_TYPE LIKE 'UNDO LOG';
+-----------------+------------+-----------+
| TABLESPACE_NAME | FILE_NAME  | FILE_TYPE |
+-----------------+------------+-----------+
| innodb_undo_001 | ./undo_001 | UNDO LOG  |
| innodb_undo_002 | ./undo_002 | UNDO LOG  |
+-----------------+------------+-----------+
2 rows in set (0.00 sec)mysql>
undo表空间的状态

undo表空间的状态相关的信息。

例:

mysql> SHOW STATUS LIKE '%undo%';
+----------------------------------+-------+
| Variable_name                    | Value |
+----------------------------------+-------+
| Innodb_undo_tablespaces_total    | 2     |
| Innodb_undo_tablespaces_implicit | 2     |
| Innodb_undo_tablespaces_explicit | 0     |
| Innodb_undo_tablespaces_active   | 2     |
+----------------------------------+-------+
4 rows in set (0.00 sec)mysql>

Innodb_undo_tablespaces_total :总的UNDO表空间数量
Innodb_undo_tablespaces_implicit :隐式(InnoDB创建的)UNDO表空间数量
Innodb_undo_tablespaces_explicit :显式(用户创建的)UNDO表空间数量
Innodb_undo_tablespaces_active :活动UNDO表空间数量

参考

15.6.3.4 Undo Tablespaces
https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html

https://www.alibabacloud.com/blog/an-in-depth-analysis-of-undo-logs-in-innodb_598966

https://blog.csdn.net/wudi53433927/article/details/127206842

15.6.6 Undo Logs
https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-logs.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python使用watchdog监听文件变化并打包成docker镜像

文章目录 简介1.监听文件的代码2.获取依赖列表文件3.创建Dockerfile文件4.上传文件到服务器上5.构建容器并启动6.更新main.py代码操作 简介 最近用python帮公司写了一个监控目录下文件发生变化的插件,在打包成docker镜像的过程中出现了一些小问题,特意记…

Unity中Shader裁剪空间推导(透视相机到裁剪空间的转化矩阵)

文章目录 前言一、简单看一下 观察空间—>裁剪空间—>屏幕空间 的转化1、观察空间(右手坐标系、透视相机)2、裁剪空间(左手坐标系、且转化为了齐次坐标)3、屏幕空间(把裁剪坐标归一化设置)4、从观察空…

基于YOLOv8的遥感SAR舰船小目标识别

💡💡💡本文摘要:基于YOLOv8的遥感SAR舰船小目标,阐述了整个数据制作和训练可视化过程 1.YOLOv8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的…

【LangChain】与文档聊天:将OpenAI与LangChain集成的终极指南

欢迎来到人工智能的迷人世界,在那里,人与机器之间的通信越来越模糊。在这篇博客文章中,我们将探索人工智能驱动交互的一个令人兴奋的新前沿:与您的文本文档聊天!借助OpenAI模型和创新的LangChain框架的强大组合&#x…

【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于FSRCNN的TPU平台超分辨率模型部署方案

2023 CCF 大数据与计算智能大赛 基于TPU平台实现超分辨率重建模型部署 基于FSRCNN的TPU平台超分辨率模型部署方案 WELL 刘渝 人工智能 研一 西安交通大学 中国-西安 1461003622qq.com 史政立 网络空间安全 研一 西安交通大学 中国-西安 1170774291qq.com 崔琳、张…

Vue - 实现文件导出文件保存下载

1 文件导出:使用XLSX插件 需求背景:纯前端导出,如 在前端页面勾选部分表格数据,点击"导出"按钮导出Excel文件。 实现思路: 1.通过XLSX插件的 XLSX.utils.book_new()方法,创建excel工作蒲对象wb…

Element UI之el-tabs的样式修改字体颜色、下划线、选中/未选中

目录 默认样式 修改默认字体颜色&#xff1a; 修改鼠标悬浮/选中字体颜色&#xff1a; 去掉长分割线并修改下划线颜色 完整代码 默认样式 注意事项&#xff1a;一定要在 <style scoped>不然修改的样式不会覆盖生效 修改默认字体颜色&#xff1a; ::v-deep .el-tabs__…

[鹏城杯 2022]简单包含

[鹏城杯 2022]简单包含 wp 题目代码如下&#xff1a; <?php highlight_file(__FILE__); include($_POST["flag"]); //flag in /var/www/html/flag.php; 直接 POST 传参&#xff1a; flag/var/www/html/flag.php 会触发 waf 。 尝试用伪协议读取&#xff1a; …

canvas绘制红绿灯路口

无图不欢&#xff0c;先上图 使用方法&#xff08;以vue3为例&#xff09; <template><canvas class"lane" ref"laneCanvas"></canvas> </template><script setup> import { ref, onMounted } from vue import Lane from …

C实现数组奇数在前偶数在后排序

一、运行结果&#xff1b; 二、源码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//实现调整函数move_odd_even函数&#xff1b; void move_odd_even(int arr[], int sz) {//初始化变量值&#xff1b;int left 0;int right sz - 1;//循环判断和…

CSP CCF 201312-2 ISBN号码 C++满分题解

解题思路&#xff1a; 1.用一个int数组单独存储每个数字&#xff1b;用char数组存储原始标识符串&#xff0c;方便输出 2.计算后得到标识码&#xff0c;判断是否正确 #include<iostream> using namespace std;int main() {int num[15]; //存储每个位置的数char arr[15…

【高性能篇】QPS概念、RT概念

什么是QPS&#xff0c;什么是RT&#xff1f; ✔️典型解析✔️扩展知识仓✔️RT ✔️QPS✔️ QPS和TPS✔️并发用户数✔️最佳线程数 ✔️典型解析 QPS&#xff0c;指的是系统每秒能处理的请求数(Query Per Second)&#xff0c;在Web应用中我们更关注的是Web应用每秒能处理的re…

Radar System Pro - Plug Play Solution

Radar System Pro是一款功能多样且可定制的资源,旨在通过功能齐全且易于使用的雷达系统增强您的Unity项目。无论您是在开发第一人称射击游戏、策略游戏还是太空探索模拟器,我们的雷达系统都将为您提供所需的工具,以创建引人入胜且身临其境的体验。 雷达系统是一个模块化资产…

2023年华为OD机试(python)B卷-符合要求的结对方式

一、题目 题目描述&#xff1a; 用一个数组A代表程序员的工作能力&#xff0c;公司想通过结对编程的方式提高员工的能力&#xff0c;假设结对后的能力为两个员工的能力之和&#xff0c;求一共有多少种结对方式使结对后能力为N。 二、输入输出 输入描述: 5 1 2 2 2 3 4 第一行为…

Unity 贝塞尔曲线工具获取运动轨迹

Unity 贝塞尔曲线工具获取运动轨迹 一、介绍贝塞尔曲线二、Unity中贝塞尔曲线工具介绍1.创建一个空物体挂在上BezierSpline.cs脚本组件2.由上图可知刚创建出来的有两个点和两个手柄组成3.我们可修改其坐标看下效果4.这样我们就可以获得这两个点之间的指定数量的点来作为某个物体…

openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述

文章目录 openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述177.1 功能描述177.2 注意事项177.3 性能 openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述 177.1 功能描述 openGauss对数据复制能力的支持情况为&#xff…

资助26项!基金委公布一批原创探索项目资助结果!

根据《国家自然科学基金原创探索计划项目实施方案&#xff08;试行&#xff09;》要求&#xff0c;现将2023年度数理科学部资助的专项项目&#xff08;指南引导类原创探索计划项目&#xff09;相关信息予以公示&#xff1a; 国家自然科学基金委员会 数理科学部 2023年12月26日…

Linux 内核学习笔记: hlist 的理解

前言 最近阅读 Linux 内核时&#xff0c;遇到了 hlist&#xff0c;这个 hlist 用起来像是普通的链表&#xff0c;但是为何使用 hlist&#xff0c;hlist 是怎么工作的&#xff1f; 相关代码 hlist_add_head(&clk->clks_node, &core->clks); /*** clk_core_link_…

vue3项目使用pako库解压后端返回zip数据

文章目录 前言一、pako 介绍一些特点和功能&#xff1a;简单示例 二、vue3 实战示例1.安装后引入库安装:引用用自定义hooks 抽取共用逻辑部署小插曲 前言 外部接口返回一个图片数据是经过zip压缩的&#xff0c;前端需要把这个数据处理成可以显示的图片。大概思路&#xff1a;z…

68内网安全-域横向PTHPTKPTT哈希票据传递

今天讲PTH&PTK&PTT&#xff0c; PTH(pass the hash) #利用 lm 或 ntlm 的值进行的渗透测试 PTT(pass the ticket) #利用的票据凭证 TGT 进行的渗透测试 用的Kerberos 协议 PTK(pass the key) #利用的 ekeys aes256 进行的渗透测试 lm加密算法是2003以前的老版&…