在我的 PostgreSQL pg_wal 目录中,wal 段总数约为 200GB,其中 max_wal_size 为 8GB。
我们使用archive_command将 WAL 文件归档到所需位置,但 wal 文件未从 pg_wal 目录中删除,我不确定为什么?
我有 pgpool 维护的 3 节点数据库集群。由于某种原因,node3 已关闭。因为复制槽不活跃。这里,node1 是主节点,node2 是备用节点,该节点工作正常且复制槽处于活动状态。
基本上我想知道为什么 PostgreSQL 不从 pg_wal 目录中删除那些 WAL 文件?以及如何解决这个问题?
我假设,它保存这些 WAL 文件是因为节点 3 的复制槽不活动。
如果我是对的,在这种情况下我该怎么办?我应该删除node3的复制槽来解决这个问题吗?
注意:我现在不想恢复该node3。
是的,问题很可能是复制槽。
在主节点上运行以下语句来查看每个复制槽的滞后程度:
一旦您确定了过时的复制槽,请将其删除
然后等待下一个检查点或运行
现在多余的 WAL 段应该消失了。
在我的文章中查找更多背景信息。