mysql 5.7 undo redo 空间回收

本文介绍了MySQL 5.7中Undo和Redo空间的管理,包括Undo空间的回收机制。从MySQL 5.6开始,Undo日志可以存储在独立的表空间中,通过参数如innodb_undo_directory、innodb_undo_logs和innodb_undo_tablespaces进行控制。在MySQL 5.7中,新增参数innodb_undo_log_truncate允许在线收缩Undo表空间。同时,Redo日志用于事务故障恢复,采用追加写入方式提高性能,其大小由innodb_log_file_size参数控制。
摘要由CSDN通过智能技术生成

undo redo 空间回收

InnoDB存储引擎中,Undo log一直都是事务多版本控制中的核心组件,它具有以下的核心功能:

    事务的回退:事务在处理过程中遇到异常的时候可以rollback(撤销)所做的全部修改。

    事务的恢复:数据库实例崩溃时,将磁盘的不正确数据恢复到交易前。

    读一致性:被查询的记录有事务占用,转向回滚段找事务开始前的数据镜像。

Undo在完成事务回滚和MVCC之后,就可以purge掉了,在MySQL5.5以及之前,随着数据库上线时间越来越长,ibdata1文件(即InnoDB的共享表空间,或者系统表空间)会越来越大,这会造成2个比较明显的问题:

    1)磁盘剩余空间越来越小,到后期往往要加磁盘;

    2)物理备份时间越来越长,备份文件也越来越大。

如果要回收空间,就只能导出来,导入到新的实例中。非常不合理,要不就是增加磁盘空间解决ibdata1文件的变大。

----------------------------------------------------------------------------------------------------------------------------

MySQL 5.6中开始支持把undo log分离到独立的表空间,并放到单独的文件目录下;这给我们部署不同IO类型的文件位置带来便利,对于并发写入型负载,我们可以把undo文件部署到单独的高速存储设备上。增加了如下几个参数来控制该行为。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值