203_mysql_innodb_4_表空间_undo_tmp表空间
【摘要】 undo tmp 表空间
一 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稍有区别,可参考:
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
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)