泊涯
作者泊涯·2020-05-22 15:32
系统测试工程师·高伟达公司

PG server磁盘空间占满问题处理

字数 815阅读 3778评论 2赞 2

PGserver磁盘空间占满问题处理

件空间占满了,但是系统才运行2年,磁盘空间配置将近9 00 G,一下子就占满了,肯定是摸个程序代码突发性引起的,不然这系统运行2年多,一直没出问题,而且前几天有查看总的磁盘空间占用不到 30 G,经开发人员分析确实是批处理语法出了问题引起的一个特殊条件比较隐秘性BUG。

前段时间客户运维人员报生产环境批处理数据库环境出问题,没办法正常运行,于是登录他们服务器,查看了PG日志文件,发现原来是磁盘空间满的原因:

接下来直接df -Th ,看到是home空间满,而我是PG的data文件都存在在home目录下,那应该是PG的数据文。

接下来首要问题是定位哪张表出了问题,并解决磁盘空间缩减问题,能使系统正常启动运行。

通过定位分析是某张报表数据量占用空间导致磁盘空间占满,2 1 亿笔数据。如下:

查看分析确实是这张表占用了 783 G的空间导致的。

问题处理第一步:

本以为通过对PG数据库进行回收垃圾方式看是否能回收部分,结果无法正常回收,然后再想通过重启数据库方式看能不能释放下空间,结果无法正常启动了。

迫不得己,只好申请临时加一块1T的硬盘,然后重修修改配置,在启动数据库,进行数据删除与恢复。

因日常都有做备份工作,接下来就把对应的表数据恢复到前一天的数据。

之前没经验,所以先把该表直接 D rop表 重建,然后重建索引,在进行数据导入。问题得到解决。

总结:

本次碰到的问题出现过2次,第一次以为是系统故障问题引起的,当时通过清理磁盘部分多余空间后,然后对该表中脏数据进行清理剩下几十万笔数据,但是发现表空间和索引空间都没释放, 因为是使用delete方式来逻辑删除表数据,但是空间是不释放的, 于是 重新命名了该表名称,然后重建该表,在 复制数据, 在drop方式 删除旧表和索引,磁盘空间最终才得以释放 。

备注: 当DELETE后面跟条件的时候,则就会出现删除数据后,数据表占用的空间大小不会变。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论2 条评论

jumtortsuijumtortsui系统分析师大兴数据
2021-01-29 14:17
定期要做垃圾数据清理
wlanz_2003wlanz_2003联盟成员数据库架构师银行
2020-10-26 15:24
我认为有几个地方需要注意,一是data文件放在/home下是不合理的,我认为最好建立单独的文件系统存放表空间数据,如/pgdata;二是告警有缺陷,没有提前预警。

泊涯@wlanz_2003 一开始就一个硬盘,我们就把home设置大一些,后面是有专门购买另外一个硬盘类似您说的PGDATA,我们这边确实没有设置磁盘空间使用告警,本来要用zabbix来弄,但是目前就设置了CPU、内存、网络和表使用情况告警,谢谢啊后面我们再完善下,刚开始做运维很多不懂

2020-10-26 15:29
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广