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

操作环境:Centos 

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

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

我,,,有点懵,,,

登录服务器查看,,发现

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

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

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

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

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

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

然而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区已经完成拓展

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

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

    什么?为什么是168G?

    手动滑稽~

8.创建/home区文件系统

mkfs.xfs /dev/mapper/centos-home

9./home区文件恢复 

mount /dev/mapper/centos-home

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

10./home区文件恢复

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

cd /home/home/

mv * ../

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

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

不管结局成功与否

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

万一,这车翻了呢?


鸣谢:

    团队的各位小伙伴们

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

吐槽:

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

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

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

你可能感兴趣的:(记录一次数据爆仓——The table 'XXX' is full !!!)