From: | Andrey Borodin <x4mmm(at)yandex-team(dot)ru> |
---|---|
To: | Jehan-Guillaume de Rorthais <jgdr(at)dalibo(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Fetching timeline during recovery |
Date: | 2019-07-23 18:59:00 |
Message-ID: | 7CD8D11F-B1C3-413F-852F-53A7642D579A@yandex-team.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> 23 июля 2019 г., в 21:05, Jehan-Guillaume de Rorthais <jgdr(at)dalibo(dot)com> написал(а):
>
> Fetching the timeline from a standby could be useful in various situation.
> Either for backup tools [1] or failover tools during some kind of election
> process.
That backup tool is reading timeline from pg_control_checkpoint(). And formats WAL file name itself when necessary.
> Please, find in attachment a first trivial patch to support pg_walfile_name()
> and pg_walfile_name_offset() on a standby.
You just cannot format WAL file name for LSN when timeline changed. Because there are at least three WALs for that point: previous, new and partial. However, reading TLI from checkpoint seems safe for backup purposes.
The only reason for WAL-G to read that timeline is to mark backup invalid: if it's name is base_00000001XXXXXXXXYY00000YY and timeline change happens, it should be named base_00000002XXXXXXXXYY00000YY (consistency point is not on TLI 2), but WAL-G cannot rename backup during backup-push.
Hope this information is useful. Thanks!
Best regards, Andrey Borodin.
[0] https://github.com/wal-g/wal-g/blob/master/internal/timeline.go#L39
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2019-07-23 19:48:14 | Re: [PATCH] Improve performance of NOTIFY over many databases (issue blocking on AccessExclusiveLock on object 0 of class 1262 of database 0) |
Previous Message | Fabien COELHO | 2019-07-23 18:26:17 | pgbench - allow to create partitioned tables |