欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

记录一次数据爆仓——The table 'XXX' is full !!!

程序员文章站 2022-03-14 14:23:09
操作环境:Centos 问 题:The table 'XXX' is full !!! 当碰到此数据库报错提示的时候,,, 我,,,有点懵,,, 登录服务器查看,,发现 我了个去,,我绝不承认这个服务器是我搭的,,(手动滑稽X2) MySQL数据库的位置放到了分区/dev/mapper/centos ......

操作环境:Centos 

问       题:The table 'XXX' is full !!!

当碰到此数据库报错提示的时候,,,

我,,,有点懵,,,

登录服务器查看,,发现

记录一次数据爆仓——The table 'XXX' is full !!!

我了个去,,我绝不承认这个服务器是我搭的,,(手动滑稽X2)

MySQL数据库的位置放到了分区/dev/mapper/centos-root 

emmmm,,,,,最终塞这么满的原因

还是我昨天下班临走前将数据同步进了solr

对,,没有听错!!!solr的数据源居然也在这!

目前mysql的数据应该在15G左右,

记录一次数据爆仓——The table 'XXX' is full !!!

然而datadir只占用了4.2个G 

(这里问一句?mysql的数据会压缩存储?)

也!就!是!说! 罪魁祸首是solr!!!

刚开始的思路是,将datadir移动到/home分区

然后修改mysql配置文件变更datadir

然而现在看来治标不治本

因为磁盘空间爆炸的根本原因在于solr的数据

所以最终的解决方案是拓展/root分区

1.查看当前分区情况

df -h

2.备份/home区

tar cvf /tmp/home.tar/home

3.卸载/home区 

 fuser -km /home/

 umount /home

4.删除/home所在的lv

lvremove /dev/mapper/centos-home

5.扩展/root区所在的lv

lvextend -L +800G /dev/mapper/centos-root

    根据需求调整,我这里拓展了800G

6.扩展/root文件系统 

xfs_growfs /dev/mapper/centos-root

    df -h 皮一下,前面忘记截图了,原/root区是50G 至此/root区已经完成拓展

记录一次数据爆仓——The table 'XXX' is full !!!

7.接下来修复/home区,重新创建home lv

lvcreate -L 168G -n/dev/mapper/centos-home

    什么?为什么是168G?

记录一次数据爆仓——The table 'XXX' is full !!!

    手动滑稽~

8.创建/home区文件系统

mkfs.xfs /dev/mapper/centos-home

9./home区文件恢复 

mount /dev/mapper/centos-home

至此,再df -h皮一下,/home分区已经从969G变更到了168G。

记录一次数据爆仓——The table 'XXX' is full !!!

10./home区文件恢复

tar xvf /tmp/home.tar -C/home/

cd /home/home/

mv * ../

至此,爆仓事件圆满结束~

记录一次数据爆仓——The table 'XXX' is full !!!

唉?数据备份还没完成?= =

不管结局成功与否

请各位小伙伴养成磁盘操作前备份数据的好习惯

万一,这车翻了呢?

 

鸣谢:

    团队的各位小伙伴们

    Parrot Security的小伙伴们和狗管理们

吐槽:

    原来矜持那么久不让我加好友的狗管理

    居然就离我两站路,世界真™小。。。

    不说了,穿上裤子面基去。。。。。。

 

 

 

 

 

我可以弱弱的丢个个人微信公众号么,粉丝太少一直没有写作激情,

如果你们喜欢技术,喜欢parrotsec,喜欢二次元,期待认识大家。

才不是什么萝莉控,只是喜欢的女孩纸碰巧是萝莉罢了,哼~

 记录一次数据爆仓——The table 'XXX' is full !!!