他的回复:
先定位再处理,不要直接动槽:1) 查询 SELECT slot_name, plugin, active, restart_lsn, confirmed_flush_lsn, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS retained FROM pg_replication_slots; active=false 且 retained 很大、restart_lsn 长时间不动的槽就是元凶。2) 用 SELECT pid, state, sent_lsn, write_lsn, flush_lsn, replay_lsn FROM pg_stat_replication; 确认是否还有 walsender 在推进;再和下游负责人确认订阅是否已停用。3) 确认下游不再需要后,在业务低峰停用该复制槽(RDS 控制台或 SQL 函数),并同步通知下游。停用只影响该槽,不会改动已有表数据;但如果下游还保留订阅并尝试重连,会因槽不存在而报错,需要下游重建订阅并做一次全量同步。4) 之后检查 wal_keep_size、max_slot_wal_keep_size(PG13+)等参数,给复制槽设置上限,避免再次撑满。RDS 上建议同时打开磁盘告警。