清理服务器空间遇到的mysql问题
admin
2023-04-29 14:43:58
0

背景:公司生产环境服务器空间报警,超过80%,紧急检查发现是mysql备份服务器,有一个记录明细的大表,占用空间150G左右。找到了问题,就要解决他。计划将此表移走,重新建一个空新表,继续记录。在操作过程中因为失误,导致多饶了好多流程,现在记录下来。
原计划:
1、备份这个表,使用xtrabackup
2、对表空间进行硬链接(ln命令),目的是不删除文件本身,而只删除其指针,从而达到快速删除,不影响使用,不占用资源的目的。(依赖原理:OS HARD LINK 当多个文件名同时指向同一个INODE时,这个INODE的引用数N>1, 删除其中任何一个文件名只是删除了一个指针而已,不会删除数据文件。当INODE的引用数N=1时, 删除文件需要去把这个文件相关的所有数据块清除,所以会比较耗时)。
3、使用drop删除表,最后删除表文件。
问题:然而理想很丰满现实很骨干,打我登陆服务器之后,发现服务器剩余的空间不足以让我进行硬链接。这就尴尬了,没办法,只能另找其他方法。
实际操作:
1、备份完数据
2、思索怎么把大表删除或者移走。最后决定将表空间重命名(mv),然后再操作,但是在mv重命名过程中,因为失误将ibd文件覆盖了,导致的问题是此大文件瞬间消失了,但是查看服务器空间发现其所占空间大小依然存在。按照道理来说,如果mv导致文件覆盖,文件相当于是被删除了,空间也应该释放了,然而没有。考虑到文件为mysql表空间文件,可能存在链接问题,重启mysql后,发现硬盘空间释放。
3、解决了硬盘空间问题,迎来了新的问题。在原数据库中建立同名表的时候,数据库一直提示表已存在,这就是直接删除表空间遗留下的问题。因为要新建一个空表,继续使用,所以也要解决这个问题。当然如果条件允许的话,可以另见一个结构一样表名称不一样的新表使用。我认为既然遇到了,就解决这个问题。
4、登陆数据库进行drop表测试,发现提示找不到这张表t1。考虑到表空间不存在,手动建一个空的表空间。首先是建了一张结构一样但是表名称不一样的表t2,复制t2的表空间并重命名为t1的表空间。重启数据库,然后再进入数据库,先分离表空间,再drop表,发现可以成功。然后新建t1表,也可以成功。最后将t2表删除。
5、此操作虽然没有问题,但是t1表中原始数据会丢失,所以在操作数据库之前一定要备份数据。
总结:虽然这是一个不大不小的问题,特别记录下来,有需要的朋友可以看一下。当然也有一个意外收获,那就是这样删除比drop速度要快得多,而且还不占用资源。

相关内容

热门资讯

烈焰熊熊,堪比“原子弹”,欧洲... 据美国有线电视新闻网(CNN)7月29日报道,席卷法国西南部的大片野火燃烧得如此猛烈,以至于形成了一...
外交部:对日本熊本县地震遇难者... 据凤凰卫视报道,针对日本熊本县发生强震造成人员伤亡,中国外交部发言人毛宁7月29日在例行记者会上表示...
高铁喧哗被劝阻后叫嚣全家体制内... “女子高铁喧哗被劝阻后叫嚣全家体制内”一事迎来官方通报。据新京报报道,7月29日,辽宁北票市公安局发...
广东专业蓝牙耳机定制厂家推荐,... 在珠三角腹地,广东早已成为全球蓝牙耳机产业链的“心脏地带”。从深圳华强北的声学元件批发,到东莞、惠州...
格雷厄姆葬礼变地缘竞价场!两大... 有些葬礼,送别的是逝者;有些葬礼,演的却是活人最现实的政治博弈。当地时间7月28日,美国老牌鹰派参议...
一道小学数学题难住3名医学博士... 3名不同学校的博士同做一道数学题,谁最厉害?近日,一陕西网友发布的视频引发热议。29日,视频发布者“...
华为全新“小艺任务”亮相:整合... 7月29日,在华为鸿蒙电脑新品技术沟通会上,终端云服务小艺业务部总裁贾永利宣布,小艺将迎来“从对话到...
广西日报特稿《王的猜想》火了,... 澎湃新闻记者 蒋子文 实习生 汤煜炜为应对外界购买纸质版特稿《王的猜想》的热情,《广西日报》宣布紧急...
月租20元内!2026年平价云... 不少手游玩家、账号运营从业者挑选云手机时,首要诉求就是低价够用,想要控制每月支出在20元以内,同时兼...
诺奖得主如何看待王虹境遇?“我... 中村修二(2014年诺贝尔物理学奖得主)【导读】近日王虹与邓煜双双获得2026年菲尔兹奖,成为了首批...