Allow pg_basebackup to stream transaction log in tar mode
Magnus Hagander <magnus@hagander.net>
Allow pg_basebackup to stream transaction log in tar mode This will write the received transaction log into a file called pg_wal.tar(.gz) next to the other tarfiles instead of writing it to base.tar. When using fetch mode, the transaction log is still written to base.tar like before, and when used against a pre-10 server, the file is named pg_xlog.tar. To do this, implement a new concept of a "walmethod", which is responsible for writing the WAL. Two implementations exist, one that writes to a plain directory (which is also used by pg_receivexlog) and one that writes to a tar file with optional compression. Reviewed by Michael Paquier
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/ref/pg_basebackup.sgml | modified | +15 −3 |
| src/bin/pg_basebackup/Makefile | modified | +1 −1 |
| src/bin/pg_basebackup/pg_basebackup.c | modified | +34 −28 |
| src/bin/pg_basebackup/pg_receivexlog.c | modified | +9 −1 |
| src/bin/pg_basebackup/receivelog.c | modified | +108 −208 |
| src/bin/pg_basebackup/receivelog.h | modified | +2 −1 |
| src/bin/pg_basebackup/t/010_pg_basebackup.pl | modified | +5 −1 |
| src/bin/pg_basebackup/walmethods.c | added | +886 −0 |
| src/bin/pg_basebackup/walmethods.h | added | +45 −0 |
| src/include/pgtar.h | modified | +1 −0 |
| src/port/tar.c | modified | +1 −1 |