I noticed that tables on my master PostgreSQL server were growing, and running 
vacuum full analyze on them actually made them even bigger.

At the same time, a slave PostgreSQL server had fallen behind in trying to 
replicate, and was stuck in constantly looping over ‘started streaming WAL from 
primary at…’ and ‘requested WAL segment ….  has already been removed’. Once I 
stopped running the slave instance, I was able to manually vacuum the tables, 
and appears that auto vacuum is now able to vacuum as well.  One table (for 
instance) dropped from 10Gb down to 330Mb after this operation. I don’t see 
anything about auto vacuum not able to acquire  locks while the slave wasn’t 
able to replicate. I am unclear why a slave trying to continue streaming would 
block the auto vacuum, or is something else at play?

I did check, and no base backups were in progress at the time this occurred.

Thank you,
Joel Avni

Reply via email to