]> granicus.if.org Git - postgresql/commit
Map basebackup tablespaces using a tablespace_map file
authorAndrew Dunstan <andrew@dunslane.net>
Tue, 12 May 2015 13:29:10 +0000 (09:29 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Tue, 12 May 2015 13:29:10 +0000 (09:29 -0400)
commit72d422a5227ef6f76f412486a395aba9f53bf3f0
treec94ffeef53c5e4a4ce0c4b055a8256ee6af3b947
parentd02f16470f117db3038dbfd87662d5f0eb5a2a9b
Map basebackup tablespaces using a tablespace_map file

Windows can't reliably restore symbolic links from a tar format, so
instead during backup start we create a tablespace_map file, which is
used by the restoring postgres to create the correct links in pg_tblspc.
The backup protocol also now has an option to request this file to be
included in the backup stream, and this is used by pg_basebackup when
operating in tar mode.

This is done on all platforms, not just Windows.

This means that pg_basebackup will not not work in tar mode against 9.4
and older servers, as this protocol option isn't implemented there.

Amit Kapila, reviewed by Dilip Kumar, with a little editing from me.
12 files changed:
doc/src/sgml/backup.sgml
doc/src/sgml/func.sgml
doc/src/sgml/protocol.sgml
doc/src/sgml/ref/pg_basebackup.sgml
src/backend/access/transam/xlog.c
src/backend/access/transam/xlogfuncs.c
src/backend/replication/basebackup.c
src/backend/replication/repl_gram.y
src/backend/replication/repl_scanner.l
src/bin/pg_basebackup/pg_basebackup.c
src/include/access/xlog.h
src/include/replication/basebackup.h