Need to recover space from production PostgreSQL DB

PostgreSQL  Vacuum:

•SELECT version();   --PostgreSQL 9.4.9
•Currently we have vacuum enabled with conservative setting of %20.

1.   The language on the support sites talks about the tables of the Postgress DB being held in individual files ?
 If we were to issue a 'vacuum full' command, would the recovery process re-write each table 1 at a time and 0 out the previous table ?
 How much extra space do we need to have available to issue 'vacuum full' and not run out of disk space ? (At least as much as the largest table ? or the whole D.B. ?)

2.  Can we call 'Vacuum Full' and specify a particular table, we only that table get locked ?

3.    Can 'vacuum full' be cancelled once called if it is taking too long and we need to get production back up and running on that table ?
sidwelleAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

earth man2Commented:
vacuum full can be applied to one table by specifying the table name in the command.  You need space for a duplicate of the specified table.

3 I don't think  so cleanly.  Killing the process you are assuming that the system can recover, it might or it might not.

Now is the time to add more disk space to your system.  Reading and writing to the same spindle can thrash the disk, throttling performance.
Think of how to partition your data and make this maintenance period pay dividends in the future as you can now age out old data using your partition design.

Do you really need to run vacuum full ?  You only need to do that if you want to use that space for some other database object.  The space will be reusable within that table with a VACUUM operation.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
sidwelleAuthor Commented:
Thank you, that's what I needed to know.
The size of the DB has gotten out of control. So if we do decide to run 'Vacuum Full' it may only to get the DB down to a manageable size,  then just let regular vacuum cleanup the deleted records.

Thanks
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PostgreSQL

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.