diff options
author | Andres Freund <andres@anarazel.de> | 2015-01-03 20:51:52 +0100 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2015-01-03 20:54:13 +0100 |
commit | f6cea45029dfc0ad09ef24f73cac936c676f83ed (patch) | |
tree | 744e581750e73498a40a175ca1ef0908f52af83c /src/bin/pg_basebackup/pg_receivexlog.c | |
parent | bb2e2ce6e2ea4835ed99593508d0909af0e402d6 (diff) |
Prevent WAL files created by pg_basebackup -x/X from being archived again.
WAL (and timeline history) files created by pg_basebackup did not
maintain the new base backup's archive status. That's currently not a
problem if the new node is used as a standby - but if that node is
promoted all still existing files can get archived again. With a high
wal_keep_segment settings that can happen a significant time later -
which is quite confusing.
Change both the backend (for the -x/-X fetch case) and pg_basebackup
(for -X stream) itself to always mark WAL/timeline files included in
the base backup as .done. That's in line with walreceiver.c doing so.
The verbosity of the pg_basebackup changes show pretty clearly that it
needs some refactoring, but that'd result in not be backpatchable
changes.
Backpatch to 9.1 where pg_basebackup was introduced.
Discussion: 20141205002854.GE21964@awork2.anarazel.de
Diffstat (limited to 'src/bin/pg_basebackup/pg_receivexlog.c')
-rw-r--r-- | src/bin/pg_basebackup/pg_receivexlog.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/bin/pg_basebackup/pg_receivexlog.c b/src/bin/pg_basebackup/pg_receivexlog.c index 8d9f00e930f..34d4612d9fc 100644 --- a/src/bin/pg_basebackup/pg_receivexlog.c +++ b/src/bin/pg_basebackup/pg_receivexlog.c @@ -335,7 +335,8 @@ StreamLog(void) starttli); ReceiveXlogStream(conn, startpos, starttli, NULL, basedir, - stop_streaming, standby_message_timeout, ".partial"); + stop_streaming, standby_message_timeout, ".partial", + false); PQfinish(conn); } |