On a Postgres 9.1 installation, I'm trying to reduce the amount of Postgres' disk usage by dropping records from tables and then running VACUUM FULL on those tables. My understanding of VACUUM FULL is that it should give disk space back to the OS, but I'm finding that this doesn't consistently happen. For one of the tables, the DELETEs and VACUUM FULL ran successfully, and the pg_database
table reports a smaller size, but the disk space actually increased slightly. I can see why disk usage goes up temporarily during a VACUUM FULL operation, but the disk usage doesn't go back down afterward.
My question is, why is the disk space not being freed back to the OS after the VACUUM FULL completes? Is there something I'm missing?
edit (for posterity) This is running on CentOS 6.3, and WAL archiving is enabled.
pg_xlog
grow during thevacuum full
? Use the OS to find out what's growing - whether it's within PostgreSQL's datadir or not, and if it is, which part is growing. Does executing aCHECKPOINT
reduce the size again?