prevent WAL replication to fill filesystem

Started by bastiover 4 years ago5 messagesgeneral
Jump to latest
#1basti
mailinglist@unix-solution.de

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

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: basti (#1)
Re: prevent WAL replication to fill filesystem

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

In reply to: Laurenz Albe (#2)
Re: prevent WAL replication to fill filesystem

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,

#4Ninad Shah
nshah.postgres@gmail.com
In reply to: Jehan-Guillaume de Rorthais (#3)
Re: prevent WAL replication to fill filesystem

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:

Show quoted text

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,

In reply to: Ninad Shah (#4)
Re: prevent WAL replication to fill filesystem

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).