南大通用GBase 8c数据库(gbase database)在日常运维里会碰到创建逻辑订阅后,下游服务异常关停,源库 WAL 文件持续暴涨挤占磁盘。很多运维上来就修改 max_wal_size 参数临时扩容,治标不治本。
出现磁盘告警后,可优先查询 pg_replication_slots 视图,查看逻辑复制槽 active 状态。多数场景订阅停用后对应复制槽仍保留,restart_lsn 停滞不动,数据库无法自动清理前置 WAL。
先通过 pg_subscription 核对订阅信息,确认下游业务不再复用该订阅链路。若还需要同步,重启消费程序,等待 confirmed_flush_lsn 点位向前推进;业务下线不再使用,走完审批后执行 pg_drop_replication_slot 删除无效槽位。
另外日常容易踩坑,测试环境订阅生产库,测试下线忘记清理订阅和复制槽,日积月累占用大量存储。建议日常新增订阅做好台账登记,下线流程增加清理复制槽步骤,定期巡检槽位活跃状态。