Re: Why standby restores some WALs many times from archive?

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Sergey Burladyan <eshkinkot(at)gmail(dot)com>
Cc: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Victor Yagofarov <xnasx(at)yandex(dot)ru>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Why standby restores some WALs many times from archive?
Date: 2017-12-30 12:20:27
Message-ID: 20171230122027.GA7704@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox
Thread:
Lists: pgsql-hackers

On Sat, Dec 30, 2017 at 04:30:07AM +0300, Sergey Burladyan wrote:
> We use this scripts:
> https://github.com/avito-tech/dba-utils/tree/master/pg_archive
>
> But I can reproduce problem with simple cp & mv:
> archive_command:
> test ! -f /var/lib/postgresql/wals/%f && \
> test ! -f /var/lib/postgresql/wals/%f.tmp && \
> cp %p /var/lib/postgresql/wals/%f.tmp && \
> mv /var/lib/postgresql/wals/%f.tmp /var/lib/postgresql/wals/%f

This is unsafe. PostgreSQL expects the WAL segment archived to be
flushed to disk once the archive command has returned its result to the
backend. Don't be surprised if you get corrupted instances or that you
are not able to recover up to a consistent point if you need to roll in
a backup. Note that the documentation of PostgreSQL provides a simple
example of archive command, which is itself bad enough not to use.
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2017-12-30 12:25:56 Re: [HACKERS] Commits don't block for synchronous replication
Previous Message Simon Riggs 2017-12-30 11:01:31 Re: [HACKERS] MERGE SQL Statement for PG11