mirror of
https://github.com/postgres/postgres.git
synced 2025-10-18 04:29:09 +03:00
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.
This commit is contained in:
@@ -1652,13 +1652,14 @@ BaseBackup(void)
|
||||
maxrate_clause = psprintf("MAX_RATE %u", maxrate);
|
||||
|
||||
basebkp =
|
||||
psprintf("BASE_BACKUP LABEL '%s' %s %s %s %s %s",
|
||||
psprintf("BASE_BACKUP LABEL '%s' %s %s %s %s %s %s",
|
||||
escaped_label,
|
||||
showprogress ? "PROGRESS" : "",
|
||||
includewal && !streamwal ? "WAL" : "",
|
||||
fastcheckpoint ? "FAST" : "",
|
||||
includewal ? "NOWAIT" : "",
|
||||
maxrate_clause ? maxrate_clause : "");
|
||||
maxrate_clause ? maxrate_clause : "",
|
||||
format == 't' ? "TABLESPACE_MAP": "");
|
||||
|
||||
if (PQsendQuery(conn, basebkp) == 0)
|
||||
{
|
||||
|
Reference in New Issue
Block a user