[发明专利]用于MySQL的快速回收回滚空间的方法和装置有效
申请号: | 201410073832.6 | 申请日: | 2014-02-28 |
公开(公告)号: | CN104881418B | 公开(公告)日: | 2018-12-04 |
发明(设计)人: | 林晓斌 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/14 |
代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 mysql 快速 回收 空间 方法 装置 | ||
本申请公开了一种用于MySQL的快速回收回滚空间的方法,包括:采用在关闭过程中清除无效回滚数据的方式关闭MySQL数据库;以待回收回滚空间的原始系统表空间文件为基础,生成一个不包含回滚空间的新的系统表空间文件;用所述新的系统表空间文件替换所述原始系统表空间文件。本申请同时提供一种用于MySQL的快速回收回滚空间的装置。采用本申请提供的方法,可以快速回收MySQL的回滚空间,提高整个数据库系统的可用性。
技术领域
本申请涉及数据库回滚空间的回收技术,具体涉及一种用于MySQL的快速回收回滚空间的方法。本申请同时涉及一种用于MySQL的快速回收回滚空间的装置。
背景技术
MySQL是一个关系型数据库管理系统,支持多种数据库引擎,其主流是支持事务机制的InnoDB存储引擎,而回滚日志(undo log)则是InnoDB引擎中用于实现事务回滚的日志,通常存储在InnoDB的系统表空间文件(例如:ibdata1文件)中。Undo log的工作原理是这样的:在执行事务中的任何数据库操作之前,首先将与该操作相关的数据备份到undolog中,然后执行该数据库操作,如果后续需要撤销该操作或者获取执行该操作之前的数据信息,系统可以利用undo log中的备份实现上述功能。
MySQL InnoDB使用undo log主要实现以下两个方面的用途:一方面,用于保证事务的原子性,当数据库事务未能正确完成,或者在执行期间由于异常原因需要恢复到事务开始的状态,这种情况下需要使用undo log进行回滚操作;另一方面,用于进行多版本并发控制(MVCC),从而实现InnoDB事务间的缺省隔离级别:可重复读(repeatable-read),该隔离级别要求用户在事务持续期间看到的数据视图与事务开始前一致,当某个事务中的一个数据库操作发现其要访问的数据的最新版本已经被修改(从本事务启动到当前的这段时间内,该数据已被其他事务修改),这时就需要结合最新版本的undo log获取该数据未更新前的值,即本事务本应看到的版本。当数据库事务结束后,InnoDB会判定并标记与该事务相关的undo log可以被回收且重新利用,之后其他事务再次需要申请新的undo log时,就可以从这些被标记为已回收且可重新利用的回滚空间(即:系统表空间文件中用于记录undolog的部分)中申请。
虽然已经申请并且分配的回滚空间可以重复利用,但是InnoDB对上述可重复读隔离级别的支持,可能会导致回滚空间的过度膨胀。如果系统启动了一个执行时间较长的事务,例如select*from tb_name where id=x,为了能够维持这个事务始终能够看到开始执行时的相同视图,那么在这个事务启动后的undo log都不能被InnoDB回收并重新利用,这就导致当空闲undo log使用完成以后,必须向操作系统申请新的空间,从用户角度看,就是系统表空间文件变大了。膨胀后的回滚空间虽然可以重复利用,但是却没有机会返回给操作系统,因此回滚空间只可能越来越大,甚至可能出现接近100G的情况,那么包含该回滚空间的系统表空间文件就会始终占据磁盘空间,造成磁盘浪费。
针对上述MySQL回滚空间过大的问题,现有技术采用重建用户数据的方式回收回滚空间,通常采用以下步骤:
1)将待回收回滚空间的数据库的数据全部导出;
2)删除待回收回滚空间的数据库实例;
3)重新创建一个空的数据库实例;
4)将之前全部导出的数据导入新创建的空数据库实例中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410073832.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于获取提示信息的方法和装置
- 下一篇:一种热点查询方法、装置及系统