203_mysql_innodb_4_表空间_undo_tmp表空间

举报
alexsully 发表于 2021/10/26 15:42:41 2021/10/26
【摘要】 undo tmp 表空间

一 Undo tablespace

  1. 作用: 用来作撤销工作。
  2. 存储位置: 5.7版本,默认存储在共享表空间中(ibdataN)。8.0版本以后默认就是独立的(undo_001-undo_002)。
  3. 生产建议: 5.7版本后,将undo手工进行独立。
  4. 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稍有区别,可参考:

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

  1. 作用: 存储临时表。
  2. 管理:

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

end:max:500M

重启生效。

  1. 建议数据初始化之前设定好,一般2-3个,大小512M-1G
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。