pg_wal日志膨胀记录

一、背景

看到监控告警磁盘空间占用达到90%,问了业务最近没有产生什么大数据量的表,于是乎开始排查,发现是数据库数据目录下,pg_wal占用631G导致。

二、解决过程

1、查看每个目录大小发现pg_wal目录占用较大,推断是物理复制槽异常导致

物理复制槽的主要作用是确保主库不会删除还未发送到备库的 WAL 日志,即使备库掉线。通过复制槽记录的从库状态,PostgreSQL 会保证从库还没有应用的日志不会从主库的日志目录中清除。

du -sh*

2、查看复制槽的信息发现物理复制槽的激活状态为false,推断复制槽未使用,与运维沟通后发现这台机器根本没有备用库用来备份数据,怪不得WAL日志一直没清除

SELECT * FROM pg_replication_slots;

3、查看复制槽延迟删除 WAL 日志的大小,可以对得上

SELECT slot_name, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_insert_lsn(), restart_lsn)) AS delay_size FROM pg_replication_slots;

4、确认复制槽无用后删除复制槽,两分钟后再查询磁盘空间已恢复正常

select pg_drop_replication_slot('slave1');

文章参考:pg_wal日志增长迅速的原因及处理方法 - 墨天轮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值