mirror of
https://github.com/postgres/postgres.git
synced 2025-08-30 06:01:21 +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:
@@ -16591,11 +16591,12 @@ SELECT set_config('log_statement_stats', 'off', false);
|
||||
<function>pg_start_backup</> accepts an
|
||||
arbitrary user-defined label for the backup. (Typically this would be
|
||||
the name under which the backup dump file will be stored.) The function
|
||||
writes a backup label file (<filename>backup_label</>) into the
|
||||
database cluster's data directory, performs a checkpoint,
|
||||
and then returns the backup's starting transaction log location as text.
|
||||
The user can ignore this result value, but it is
|
||||
provided in case it is useful.
|
||||
writes a backup label file (<filename>backup_label</>) and, if there
|
||||
are any links in the <filename>pg_tblspc/</> directory, a tablespace map
|
||||
file (<filename>tablespace_map</>) into the database cluster's data
|
||||
directory, performs a checkpoint, and then returns the backup's starting
|
||||
transaction log location as text. The user can ignore this result value,
|
||||
but it is provided in case it is useful.
|
||||
<programlisting>
|
||||
postgres=# select pg_start_backup('label_goes_here');
|
||||
pg_start_backup
|
||||
@@ -16610,7 +16611,8 @@ postgres=# select pg_start_backup('label_goes_here');
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<function>pg_stop_backup</> removes the label file created by
|
||||
<function>pg_stop_backup</> removes the label file and, if it exists,
|
||||
the <filename>tablespace_map</> file created by
|
||||
<function>pg_start_backup</>, and creates a backup history file in
|
||||
the transaction log archive area. The history file includes the label given to
|
||||
<function>pg_start_backup</>, the starting and ending transaction log locations for
|
||||
|
Reference in New Issue
Block a user