203_mysql_innodb_4_表空间_undo_tmp表空间

网友投稿 527 2022-05-30

一 Undo tablespace

作用: 用来作撤销工作。

存储位置: 5.7版本,默认存储在共享表空间中(ibdataN)。8.0版本以后默认就是独立的(undo_001-undo_002)。

生产建议: 5.7版本后,将undo手工进行独立。

undo 表空间管理

1.1 如何查看undo的配置参数

SELECT @@innodb_undo_tablespaces; ---->3-5个 #打开独立undo模式,并设置undo的个数。 SELECT @@innodb_max_undo_log_size; #undo日志的大小,默认1G。 SELECT @@innodb_undo_log_truncate; #开启undo自动回收的机制(undo_purge)。 SELECT @@innodb_purge_rseg_truncate_frequency; #触发自动回收的条件,单位是检测次数。

2.2 配置undo表空间  数据库初次启动有效/要么就要清空数据目录(5.7)

# 添加参数 innodb_undo_tablespaces=3 innodb_max_undo_log_size=128M innodb_undo_log_truncate=ON innodb_purge_rseg_truncate_frequency=32 # 重新初始化数据库生效 mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3306/data # 启动数据库 /etc/init.d/mysqld start

2.3  8.0 undo表空间与5.7稍有区别,可参考:

203_mysql_innodb_4_表空间_undo_tmp表空间

https://dev.mysql.com/doc/refman/8.0/en/innodb-undo[1]tablespaces.html

1. 添加UNDO CREATE UNDO TABLESPACE alex ADD DATAFILE 'alex.ibu'; 2. 查看 SELECT TABLESPACE_NAME, FILE_NAME FROMINFORMATION_SCHEMA.FILES WHERE FILE_TYPE LIKE 'UNDO LOG'; 3. 删除undo ALTER UNDO TABLESPACE alex SET INACTIVE; DROP UNDO TABLESPACE alex; SELECT TABLESPACE_NAME, FILE_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE LIKE 'UNDO LOG';

SELECT @@innodb_purge_rseg_truncate_frequency;  # 说明: 关于UNDO回收策略

二 tmp tablespace

作用: 存储临时表。

管理:

innodb_temp_data_file_path=ibtmp1:128M;ibtmp2:128M:autoext

end:max:500M

重启生效。

建议数据初始化之前设定好,一般2-3个,大小512M-1G

MySQL

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:公有云基本概念系列——区域&可用区
下一篇:如何解决调用AI人脸识别出现跨域问题?
相关文章