首页 > 问答 > 关键词  > MySQL最新资讯  > 正文

MySQL怎么删除#sql开头的临时表

2020-07-08 11:31 · 稿源:数据库干货铺
文章目录

1. 现象

巡检时发现服务器磁盘空间不足,通过查看大文件进行筛选是发现有几个#sql开头的文件,且存在超过100G及10G以上的文件。

2. 原因

如果MySQL在一个 ALTER TABLE操作(ALGORITHM=INPLACE)的中间退出,那么可能会留下一个占用系统空间的临时表。例如,在对一张表(大表)添加索引时中途中断、磁盘不足导致异常或正在添加索引时实例被kill等等情况所致。

注意:此类表空间文件不能直接rm -f的方式物理删除,因为该信息记录在ibdata的共享表空间里,直接删除后,后续实例重启时会出现错误。

3. 处理方法

3.1 同时存在.frm 和.ibd名称相同的文件

如果 #sql-*.ibd 和 #sql-*.frm两个文件都存在数据目录里的话,可以直接drop table。但注意删除时候表名的变化。

/*直接删除,表名前加#mysql50*/root@testdb01:42:57>DROPTABLE`#mysql50##sql-ib87-856498050`;

注: #mysql50#前缀是MySQL 5. 1 中引入的文件名安全编码。另外,表名因不符合命名规范,想要执行该脚本需要将表名用反引号括起来。

3.2 创建新表方式删除

因为本例中没有存在.frm 和.ibd名称相同的文件的情况,因此采用创建一张与ibd表空间对应的结构(字段名及索引)一致的表,然后将frm文件拷贝为和ibd一致的文件,再进行删除。

下面处理截图中#sql-ib1516-2335726735.ibd文件,步骤如下:

a) 创建一张与#sql-ib1516- 2335726735 相同的表

root@testdb08:47:35>createtablecompany20191216likecompany;
QueryOK,0rowsaffected(0.05sec)
root@testdb08:48:59>exitBye

b) 拷贝为#sql-ib1516-2335726735.frm的定义文件

[root@db4testdb]#cp-pcompany20191216.frm\#sql-ib1516-2335726735.frm

c) 删除表

因为上一步拷贝时使用-p的方式,即权限和原文件权限一致,属主及group均为mysql,因此可以直接在数据库里读取删除,如果权限不对,必须先修改文件权限。

root@testdb08:49:54>droptable`#mysql50##sql-ib1516-2335726735`;
QueryOK,0rowsaffected(6.65sec)

此时,135G的文件就已经删掉了(其实另一个文件#sql-821_2.frm文件也一并删了)

注: 删除这种100G的表不建议直接删除,而是通过创建硬链接的方式处理。

3.3 修改frm文件名与ibd文件名一致

上一步中删除ibd文件时,其中一个frm也自动删除了。为此,尝试通过修改frm文件名和ibd文件名一致的方式处理。但要注意,由于不确定是否结构一致,修改后可能异常,但如果没有暴力处理,通常均可以成功。如下:

a) 修改frm文件名与ibd文件名一致

[root@db4testdb]#mv\#sql-a846_2.frm\#sql-ib1570-121877015.frm

b) 删除表

root@testdb01:41:06>DROPTABLE`#mysql50##sql-ib1570-121877015`;
QueryOK,0rowsaffected(1.70sec)

done!

其实还有其他的方式处理,大家可以自行测试。

参考资料:官方文档https://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html

本文转载自【数据库干货铺】。

  • 相关推荐
  • 大家在看
  • Jimmy Wales正在拍卖首个维基百科词条NFT和发布时的iMac计算机

    维基百科创始人吉米·威尔士(Jimmy Wales)正在将其编辑的首个维基百科词条,通过佳士得拍卖行举行 NFT 拍卖。时间定于 12 月 3 -15 日,且另一件拍品是当初发布该词条时使用的草莓色 iMac 计算机。拍卖所得将被用于慈善事业和 WT.Social,后者是一个于 2019 年推出的、基于捐赠支持的社交网络。(截图 via Jimmy Walke / Christie's)Jimmy Wales 拍卖的 NFT,实际上是维基百科的一个早期页面,该版本于 2001 年 1 月首次亮相。?

  • SpaceHey:克隆版MySpace,目前已有近50万名用户

    MySpace并不是第一个在互联网上出现的社交网站。然而对许多人来说,它是他们的第一个--并且有一段时间,它是世界上最大的此类服务。最终,随着Facebook、Twitter和Instagram等服务的兴起,MySpace逐渐失去了意义。18年多后的今天,数十万人注册了一个新的社交网络,该网络基本上是该网站的克隆版。SpaceHey于2020年11月作为一个怀旧项目推出。这个复古的社交网络称跟MySpace没有直接关系,它称自己专注于隐私和定制。没有算法,也?

  • 英特尔已收购波兰云游戏初创公司RemoteMyApp 价格尚未披露

    据国外媒体报道,在威盛上周宣布计划将一家子公司以1.25亿美元的价格出售给英特尔之后,又出现了英特尔已收购波兰云游戏初创企业RemoteMyApp的消息

  • OEC热门GameFi链游SAMURAI教程

    首先需要下载欧易钱包或者MetaMask钱包,然后创建自己的钱包地址,你可以看到钱包被默认设置为以太坊主网。在METAMASK页面中,选择“自定义 RPC”去添加OEC MainNet,添加OEC主网,并且保证自己的钱包里有足够的代币。进入游戏进入游戏界面后连接钱包签名确认,在开始游戏之前请确保你的钱包中最少有20 SAMU 用作武将升级费用,以及部分 OKT 作为游戏 Gas 费用。武将玩家需要拥有至少一个武将才能开始游戏。武将培养是 SAMURAI 的?

  • 原神噗噗雪人怎么做 噗噗雪人详细制作教程攻略

    原神在最近有个噗噗雪人,是可以兑换道具的,很多玩家还不清楚怎么做噗噗雪人,下面就来为大家详细的介绍一下。

  • 在Windows 11中玩转安卓应用?详细教程在此

    众所周知,微软的新系统Windows11从上线至今已经有一段时间了,而对于如今的正式版Windows11来说,确实也实现了当初发布时所宣称的绝大多数界面与技术改进。例如效率更高的窗口管理器、对新CPU架构的更好支持、能在部分游戏中提供自动HDR画面优化,以及可以让光追游戏显卡的性能更好地发挥等等。

  • PuddingSwap锁仓池【超级厨师】NFT质押教程

    PuddingSwap推出锁仓池【超级厨师】NFT质押功能,参与锁仓池的用户,质押布丁【超级厨师】NFT,即可获得额外比例的加成收益,NFT最高加成比例50%;且不对金额上限做任何限制。锁仓池【超级厨师】NFT质押具体步骤:进入PuddingSwap官网点击【锁仓池】按钮 或 直接进入锁仓池界面2. 批准【超级厨师】NFT点击按钮【批准Chef NFT】3. 质押【超级厨师】NFT:注意,每个锁仓池最多只能质押一枚【超级厨师】NFT首先,点击【质押 Chef NFT】按

  • PuddingSwap 【超级厨师】NFT 正式发售教程

    第一步:请在电脑上使用google浏览器进行第一步的操作一、TokenPocket使用方法:1.下载TokenPocket钱包切换所需语种后,点击“Wallet Guide”,再点击“Blockchain Wallet”可以看到钱包的发展史以及更详细的使用方法进入链接后,网页左边的选项帮助你了解使用钱包具体步骤了解钱包之后可以回到首页下载使用钱包。二、MetaMask(小狐狸)的使用方法:进入“Download now”页面后选择你要进行的下载使用场景。点击“IOS”和“Androi

  • 绝地求生未来之役设置中文教程 未来之役怎么设置中文

    绝地求生未来之役中是可以设置中文的,很多玩家还不清楚到底要怎么设置中文,下面就来为大家详细的介绍一下教程。

  • 天堂w快速武满防满达到防御60攻略 新手无氪速升防御教程

    天堂w新手对于快速满武满防还是比较头疼的,很多玩家还不清楚要怎么做,下面就来为大家分享一下天堂w快速武满防满达到防御60攻略。

这篇文章对你有价值吗?

  • 热门标签

热文

  • 3 天
  • 7天