Обсуждение: prevent WAL replication to fill filesystem

Поиск
Список
Период
Сортировка

prevent WAL replication to fill filesystem

От
basti
Дата:
Hello,
I have a old PG 9.6 with WAL replication.
for some reason the rsync was failed and the filesystem was filled by
pg_xlog files.
As result PG stops working.

Is there a way to prevent WAL replication to fill filesystem by xlog
files in case of failure?

Best regards



Re: prevent WAL replication to fill filesystem

От
Laurenz Albe
Дата:
On Tue, 2021-08-31 at 10:36 +0200, basti wrote:
>  have a old PG 9.6 with WAL replication.
> for some reason the rsync was failed and the filesystem was filled by
> pg_xlog files.
> As result PG stops working.
> 
> Is there a way to prevent WAL replication to fill filesystem by xlog
> files in case of failure?

Sure.

Upgrade to v13 and set "max_slot_wal_keep_size".

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com




Re: prevent WAL replication to fill filesystem

От
Jehan-Guillaume de Rorthais
Дата:
On Tue, 31 Aug 2021 10:53:45 +0200
Laurenz Albe <laurenz.albe@cybertec.at> wrote:

> On Tue, 2021-08-31 at 10:36 +0200, basti wrote:
> >  have a old PG 9.6 with WAL replication.
> > for some reason the rsync was failed and the filesystem was filled by
> > pg_xlog files.
> > As result PG stops working.
> >
> > Is there a way to prevent WAL replication to fill filesystem by xlog
> > files in case of failure?

No.

You have to size your partition big enough to handle few days of normal
WAL production, monitor the archiving success and react quickly to fix things
when it fails.

> Upgrade to v13 and set "max_slot_wal_keep_size".

How this would prevent the failure if $OP doesn't (want to) use slots ? He
speaks about rsync, so it might be purely archiving error, not streaming.

Regards,



Re: prevent WAL replication to fill filesystem

От
Ninad Shah
Дата:
These suggestions are appropriate. However, if you are ready to lose your replica to keep production running, there are a couple of methods.

1) Set archive_command to "/bin/true"
2) rename .ready files in archive_status to .done.

Again, I personally do not recommend this, so consider this as a last resort to save your system from the space crunch issue.


Regards,
Ninad Shah


On Tue, 31 Aug 2021 at 15:08, Jehan-Guillaume de Rorthais <jgdr@dalibo.com> wrote:
On Tue, 31 Aug 2021 10:53:45 +0200
Laurenz Albe <laurenz.albe@cybertec.at> wrote:

> On Tue, 2021-08-31 at 10:36 +0200, basti wrote:
> >  have a old PG 9.6 with WAL replication.
> > for some reason the rsync was failed and the filesystem was filled by
> > pg_xlog files.
> > As result PG stops working.
> >
> > Is there a way to prevent WAL replication to fill filesystem by xlog
> > files in case of failure? 

No.

You have to size your partition big enough to handle few days of normal
WAL production, monitor the archiving success and react quickly to fix things
when it fails.

> Upgrade to v13 and set "max_slot_wal_keep_size".

How this would prevent the failure if $OP doesn't (want to) use slots ? He
speaks about rsync, so it might be purely archiving error, not streaming.

Regards,


Re: prevent WAL replication to fill filesystem

От
Jehan-Guillaume de Rorthais
Дата:

Le 8 septembre 2021 06:07:15 GMT+02:00, Ninad Shah <nshah.postgres@gmail.com> a écrit :
>These suggestions are appropriate. However, if you are ready to lose your
>replica to keep production running, there are a couple of methods.
>
>1) Set archive_command to "/bin/true"
>2) rename .ready files in archive_status to .done.

You do not need to rename files in archive_status, especially after setting /bin/true. The normal production, if
running,will soon enough clean everything, quickly. 

A good advice is to never do writes in pg_wal yoursef (mv, rm, edit, etc).