mysql undo_mysql的undo段回收

一.mysql 5.6的undo段回收

undo段的数据是放到共享表空间中,如果数据库有大量插入或者更新会不断写入大量的undo log.此时的undo log不能自动回收剩余的空间.mysql 5.6是在安装数据库之前修改undo的参数,将undo log从共享表空间分离出来,安装后就不能修改,mysql 5.7可以用静态参数进行调整.

(1).修改my.cnf启动参数文件

vim /etc/my.cnf

innodb_undo_directory = /data2/   --指定存放的目录,默认是数据目录

innodb_undo_logs = 128       --指定回滚段128K

innodb_undo_tablespaces = 4   --指定有多少个undo log文件

(2).初使化mysql

(3).重启mysql服务

c83230480f4dd467143e53e5482db201.png

二.mysql 5.7静态修改

vim /etc/my.cnfinnodb_undo_log_truncate           --参数设置为1,即开启在线回收(收缩)undo log日志文件,支持动态设置。

innodb_undo_tablespaces           --参数必须大于或等于2,即回收(收缩)一个undo log日志文件时,要保证另一个undo log是可用的。

innodb_undo_logs: undo              --回滚段的数量,至少大于等于3,默认128。

innodb_max_undo_log_size         --当超过这个阀值(默认是1G),会触发truncate回收(收缩)动作,truncate后空间缩小到10M。

innodb_purge_rseg_truncate_frequency    --控制回收(收缩)undo log的频率.undo log空间在它的回滚段没有得到释放之前不会收缩,

想要增加释放回滚区间的频率,就得降低innodb_purge_rseg_truncate_frequency设定值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值