mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +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:
@@ -21,6 +21,16 @@
|
||||
#define MAX_RATE_UPPER 1048576
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *oid;
|
||||
char *path;
|
||||
char *rpath; /* relative path within PGDATA, or NULL */
|
||||
int64 size;
|
||||
} tablespaceinfo;
|
||||
|
||||
extern void SendBaseBackup(BaseBackupCmd *cmd);
|
||||
|
||||
extern int64 sendTablespace(char *path, bool sizeonly);
|
||||
|
||||
#endif /* _BASEBACKUP_H */
|
||||
|
Reference in New Issue
Block a user