首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【赵渝强老师】MySQL的撤销日志文件和错误日志文件

【赵渝强老师】MySQL的撤销日志文件和错误日志文件

原创
作者头像
赵渝强老师
发布2024-11-18 11:21:52
发布2024-11-18 11:21:52
5050
举报
文章被收录于专栏:MySQLMySQL

MySQL与Oracle一样都是通过逻辑存储结构来管理物理存储结构,即管理硬盘上存储的各种文件。下面将详细介绍InnoDB存储引擎中的撤销日志文件和错误日志文件。

一、MySQL的撤销日志文件(undo log)

undo log中记录的是旧版本的数据,当我们对记录做了变更操作时就会产生undo记录。当一个旧的事务需要读取数据时,为了能读取到老版本的数据,需要顺着undo链找到满足其可见性的记录。

视频讲解如下:

从MySQL8.0版本开始,MySQL默认对undo进行了分离操作。也就是说,不需要在初始化中手动配置参数,默认会在MySQL数据目录下生成两个10兆大小的undo表空间文件“undo_001” 和 “undo002” 并且可以在线的增加和删除undo表空间文件进行动态扩容和收缩。

代码语言:Shell
复制
[root@mysql11 data]# pwd
/usr/local/mysql/data

[root@mysql11 data]# ll undo_00*
-rw-r-----. 1 mysql mysql 10485760 Feb 20 20:11 undo_001
-rw-r-----. 1 mysql mysql 10485760 Feb 20 20:11 undo_002

二、MySQL错误日志文件

类似Oracle的告警日志,MySQL的错误日志文件对MySQL的启动、运行、关闭过程中出现的问题进行了记录。执行下面的语句查看MySQL的错误日志:

代码语言:SQL
复制
mysql> show variables like 'log_error';

# 输出的信息如下:
+---------------+---------------------------------+
| Variable_name | Value                           |
+---------------+---------------------------------+
| log_error     | /usr/local/mysql/data/error.log |
+---------------+---------------------------------+

视频讲解如下:

下面我们通过一个简单的例子来说明如何使用错误日志。

(1)创建一个新的数据库,并在数据库中创建一张表

代码语言:SQL
复制
mysql> create database testdb;
mysql> use testdb;
mysql> create table t1(c1 int);

(2)删除数据库testdb对应的目录

代码语言:Shell
复制
cd /usr/local/mysql/data/
rm -rf testdb/

(3)重启MySQL

代码语言:Shell
复制
systemctl restart mysqld

(4)查看错误日志文件

代码语言:Shell
复制
vi /usr/local/mysql/data/error.log 

# 错误日志中将包含下面的信息:
Tablespace 2, name 'testdb/t1', file './testdb/t1.ibd' is missing!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、MySQL的撤销日志文件(undo log)
  • 二、MySQL错误日志文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档