Mysql怎样删除以“#sql-”开头的暂时表
author:skate
time:2014/09/28
Mysql怎样删除以“#sql-”开头的暂时表
现象:在重建索引后,发现Mysqlserver的磁盘空间快满了
在用例如以下命令重建索引
mysql> alter table skatetab add unique index(id, uid), drop primary key, add primary key(uid, id);
在重建索引的过程中,由于空间不足,导致Mysql server reboot,重新启动之后发现空间少了100G。于是查看是哪个文件夹占用了这100G,最后发如今数据文件夹里发现
非常多类似#sql-*.ibd暂时文件和同文件名称的#sql-*.frm。既然知道是暂时表了,那就删除吧,肯定不能直接通过rm删除了,由于在ibdata里保存字典信息和Undo信
息,数据库重新启动后会报错的。
删除的方法:
在alter table的过程中,假设Mysql突然crash了。就会在数据文件夹里存在一些中间表,这些中间表是以“#sql-”开头的暂时表,在你的数据文件夹里会看到
#sql-*.ibd和对应的 #sql-*.frm ,假设 #sql-*.ibd 和 #sql-*.frm两个文件都存在数据文件夹里的话,能够直接drop table。类似:
mysql> drop table `#mysql50##sql-928_76f7`;
前缀”#mysql50#“是让Mysql忽略文件名称的安全编码,这个前缀是在Mysql5.1引入的
由于我的数据文件夹里#sql-*.ibd 和 #sql-*.frm两个文件都存,所以直接drop就能够了。磁盘空间100多G也回收了,例如以下所看到的
mysql> drop table `#mysql50##sql-928_76f7`;
Query OK, 0 rows affected (16.28 sec)
说明:假设在数据文件夹里仅仅有#sql-*.ibd。而没有#sql-*.frm的话,就须要特殊处理
1.在还有一数据schema里创建一个和欲删除表一样的表结构(包含同样的列和索引)
mysql> create database test
mysql> create table test.tmp like skatetab; //仅仅复制表的结构和索引。不复制数据
2.把新创建的暂时表的.frm文件拷贝到欲删除的数据文件夹里。并改动和 ”#sql-*.ibd“一样的文件名称
shell> cp test/tmp.frm #sql-928_76f7.frm
3.确认#sql-*.ibd 和 #sql-*.frm两个文件都存,然后直接drop,例如以下:
mysql> drop table `#mysql50##sql-928_76f7`;
參考:http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting-datadict.html
------end------
Mysql怎样删除以“#sql-”开头的暂时表的更多相关文章
- mysql定时删除6个月前的表
查看定时是否开启: 查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%'; 将事件计划开启 : ; 将事件计划关闭 : ; 代码: BEGIN -- 保存表 ...
- MySQL 如何删除有外键约束的表数据
今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况. SET FOREIGN_KEY_CHECKS=0; 删除 ...
- Mysql批量删除和修改某个前缀的表
1.批量删除某个前缀的表名,首先选出这些个表. select concat( 'drop table ', table_name, ';' ) from information_schema.tabl ...
- mysql进阶(十五) mysql批量删除大量数据
mysql批量删除大量数据 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM s ...
- MySQL如何删除#sql开头的临时表
1. 现象 巡检时发现服务器磁盘空间不足,通过查看大文件进行筛选是发现有几个#sql开头的文件,且存在超过100G及10G以上的文件. 2. 原因 如果MySQL在一个 ALTER TABLE操作( ...
- MYSQL删除以数字开头的字段
例子: // 删除以0开头的字段 DELETE FROM `week_energy_copy` WHERE openid like '0%'; // 删除以数字开头的字段 DELETE FROM `w ...
- 增加删除字段修改字段名,修改表结构,非常用SQL语句技巧总结
1.为数据表添加一个新字段 Alter TABLE [dbo].[CustomerBackupConfig] Add [Stamp] [timestamp] NULL GO 2.为数据表添加两个新字段 ...
- Mysql命令行导入sql数据
mysqldump 是在 操作系统命令行下运行的,不是在 MySQL 命令行下运行的. 登陆数据库: 登陆本地mysql : mysql -h localhost -u root -p123456 ...
- 《[MySQL技术内幕:SQL编程》读书笔记
<[MySQL技术内幕:SQL编程>读书笔记 2019年3月31日23:12:11 严禁转载!!! <MySQL技术内幕:SQL编程>这本书是我比较喜欢的一位国内作者姜承尧, ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
随机推荐
- [课堂实践与项目]NavigationController与TabBarController的综合使用及易错点分析(包含消息提醒,app更新)
陈述:我们在使用tabbarController的时候,我们总会和NavagationController联合起来.但是不联合的时候又是什么样的一种pool的情况呢?我们就单单的 TabBarCont ...
- 1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1. 画直线 Ø 增加‘直线’菜单项,建立类向导: Ø 对CXX ...
- css3 动画运动路径
1.cubic-bezier贝塞尔曲线CSS3动画工具 http://www.xuanfengge.com/cubic-bezier-bezier-css3-animation-tools.html ...
- Entity - 使用EF框架进行增删改查 - 模型先行
模型先行:先创建数据库实体模型,然后再进行数据库的增删改查. 基本步骤是不变的,可参照 <Entity - 使用EF框架进行增删改查 - 数据库先行> 其中的不同是,在创建数据库实体模型的 ...
- springboot 开发入门,及问题汇总
1 . springboot简单介绍(http://projects.spring.io/spring-boot/) 现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量 ...
- zabbix 监控jvm
tomcat 机器配置: [root@wx03 lib]# pwd /usr/local/apache-tomcat-7.0.55/lib [root@wx03 lib]# ls -ltr *jmx* ...
- VIM 用正则表达式
VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下: ...
- cocos2d-x游戏开发系列教程-搭建cocos2d-x的windows开发环境
1.在上一篇中我们成功运行了HelloCpp和TestCpp工程,我们到目录cocos2d-x-2.2.1\Debug.win32下 查看生成的文件,在我电脑上绝对路径是H:\source\cocos ...
- Eclipse在点击运行后不能自动保存的解决
今天在eclipse上写程序调试时,发现当我点击运行按键之后,并不能在运行前帮我自动保存,也就是说每次修改代码之后, 运行的还是前一次运行之前的代码,并不是修改之后的代码,因此通过在网上搜索解决方案之 ...
- 《转》div 中间固定 左右自适应实现
<转自>:http://www.w3cplus.com/css/layout-column-three 对于我来说,这是一种很少碰到的布局方法,不知道大家有何体会,那么下面我们一起来看这种 ...