Re: db maintanance problem VACUUM FULL

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: Pavol Sekeres <pavol(dot)sekeres8(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: db maintanance problem VACUUM FULL
Date: 2025-06-12 13:24:11
Message-ID: 61b05ae722c2b21cd63d98544c55ecc0e35aa887.camel@cybertec.at
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, 2025-06-12 at 15:14 +0200, Pavol Sekeres wrote:
> We recently updated our production database to PostgreSQL 12.22 from the 9.6.24 version.
> We didn't want to make a big jump.

But you should have. v12 is out of support.

> It is around 2 TB in size with one stand-by replica of equal size.
>
> We do run AUTOVACUUM processes on all tables periodically.
> We have never run VACUUM FULL on any table.
> This is because we can't afford to lock out tables for a long time.
>
> Tables can be more than 100GB in size.
> They are being updated daily.
> Also due to GDPR old data is erased on a daily basis.
> We think these tables might get eventually bloated.
>
> Can this be a problem?

Yes.
Check for bloat in suspicious tables using the "pgstattuple" extension.

> If yes, is there any other solution outside locking the database?

There are the third-party tools pg_squeeze and pg_repack.

> Should we try to solve this problem by creating a logical replica of the database?
> We would then promote the replica to primary.
> After that, we would drop the old database.
> Is this possible without a big downtime?

Yes, that is possible.

> Is this even a good idea?

Logical replication can be complicated. One of the above tools would be simpler.

> Our database uses a wal_level 'replica'.
> As I understand it, this setting would first have to be switched to 'logical'.

Right.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ron Johnson 2025-06-12 13:26:34 Re: db maintanance problem VACUUM FULL
Previous Message Pavol Sekeres 2025-06-12 13:14:22 db maintanance problem VACUUM FULL