记录一次数据爆仓——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的小伙伴们和狗管理们
吐槽:
原来矜持那么久不让我加好友的狗管理
居然就离我两站路,世界真™小。。。
不说了,穿上裤子面基去。。。。。。
我可以弱弱的丢个个人微信公众号么,粉丝太少一直没有写作激情,
如果你们喜欢技术,喜欢parrotsec,喜欢二次元,期待认识大家。
才不是什么萝莉控,只是喜欢的女孩纸碰巧是萝莉罢了,哼~
上一篇: SqlServer误删数据恢复