未消费的**逻辑复制槽(Replication Slot)**会阻止 PostgreSQL 回收 WAL 日志,导致 pg_wal 目录磁盘被迅速打满,最终实例只读崩溃。
![]()
一、定位并清理失活的复制槽
sql
-- 查看所有复制槽及其保留 WAL 字节数
SELECT slot_name, active, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS retained
FROM pg_replication_slots
ORDER BY retained DESC;
-- 删除确认失活的复制槽(谨慎操作)
SELECT pg_drop_replication_slot('stale_slot_name');