可能原因:
1、未开启归档。或者开启了归档,但是archive_command没有生效。或者是日志归档过慢,日志堆积在wal目录下面,未被清除导致
2、参数设置不当,max_wal_size和checkpoint_timeout、achive_mode、archive都可能造成wal空间膨胀。
3、数据库中存在主库流复制环境。流复制环境中,主要靠wal日志进行主备同步,当主备环境之间差异过大,或者出问题后,造成主备没有同步,则会保留wal日志不进行删除。(如果有差异的话,wal_keep_segments参数会生效,它会为备库保留相应数量的wal日志文件、甚至更多。)
4、数据库中存在复制槽(物理或者逻辑),此时我们可以将wal日志想象为ogg中的队列文件或者消息队列中的消息。备库如果没有进行同步或者说没有消费wal日志,那么该复制槽不可用,wal日志也会一直保留,造成wal日志不断增加;