最近在考MySQL 8.0的OCP ,开个专题专门查漏补缺下
只是做备忘,有的概念只是一笔带过,具体可自行搜索
基于8.0.26
这期来介绍表空间,以下都为Innodb表空间,这节内容是undo表空间
Undo表空间包含了undo日志,即回滚日志用来回滚操作
他和其他一些undo概念关系如下
默认情况下MySQL在实例初始化的时候建立2个undo表空间,达到 innodb_max_undo_log_size参数的大小后,如果配置了自动清理参数,则undo表空间会自动清理(automated truncation),该功能需要至少2个undo表空间
数据文件的位置由innodb_undo_directory 参数控制,默认在数据目录下,名称为undo_001和undo_002
可以在线添加undo表空间
Undo表空间的初始大小由innodb_page_size决定,一般来说是16K,这时初始大小为10M,8.0.23之后初始大小为16M
可以使用如下命令增加undo表空间,必须是ibu后缀
CREATE UNDO TABLESPACE tablespace_name ADD DATAFILE 'file_name.ibu';
先将undo表空间置于inactive后再删除
ALTER UNDO TABLESPACE tablespace_name SET INACTIVE;
SELECT NAME, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME LIKE 'tablespace_name';
DROP UNDO TABLESPACE tablespace_name;
同样我们也可以将undo表空间移动到其他目录,这里就不多做介绍了
https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html