mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2025-02-04 14:11:31 +02:00
Fix remote restore
This commit is contained in:
parent
d064a64d13
commit
adee1efc71
@ -2317,8 +2317,9 @@ backup_files(void *arg)
|
||||
}
|
||||
}
|
||||
else if (strcmp(file->name, "pg_control") == 0)
|
||||
copy_pgcontrol_file(arguments->from_root, arguments->to_root,
|
||||
file, FIO_BACKUP_HOST);
|
||||
copy_pgcontrol_file(arguments->from_root, FIO_DB_HOST,
|
||||
arguments->to_root, FIO_BACKUP_HOST,
|
||||
file);
|
||||
else
|
||||
{
|
||||
bool skip = false;
|
||||
|
@ -559,7 +559,7 @@ merge_files(void *arg)
|
||||
}
|
||||
}
|
||||
else if (strcmp(file->name, "pg_control") == 0)
|
||||
copy_pgcontrol_file(argument->from_root, argument->to_root, file, FIO_LOCAL_HOST);
|
||||
copy_pgcontrol_file(argument->from_root, FIO_LOCAL_HOST, argument->to_root, FIO_LOCAL_HOST, file);
|
||||
else
|
||||
copy_file(argument->from_root, FIO_LOCAL_HOST, argument->to_root, FIO_LOCAL_HOST, file);
|
||||
|
||||
|
@ -612,8 +612,8 @@ extern pg_crc32c get_pgcontrol_checksum(const char *pgdata_path);
|
||||
extern uint32 get_xlog_seg_size(char *pgdata_path);
|
||||
extern void set_min_recovery_point(pgFile *file, const char *backup_path,
|
||||
XLogRecPtr stop_backup_lsn);
|
||||
extern void copy_pgcontrol_file(const char *from_root, const char *to_root,
|
||||
pgFile *file, fio_location location);
|
||||
extern void copy_pgcontrol_file(const char *from_root, fio_location location, const char *to_root, fio_location to_location,
|
||||
pgFile *file);
|
||||
|
||||
extern void sanityChecks(void);
|
||||
extern void time2iso(char *buf, size_t len, time_t time);
|
||||
|
@ -674,9 +674,13 @@ restore_files(void *arg)
|
||||
parse_program_version(arguments->backup->program_version));
|
||||
}
|
||||
else if (strcmp(file->name, "pg_control") == 0)
|
||||
copy_pgcontrol_file(from_root, instance_config.pgdata, file, FIO_DB_HOST);
|
||||
copy_pgcontrol_file(from_root, FIO_BACKUP_HOST,
|
||||
instance_config.pgdata, FIO_DB_HOST,
|
||||
file);
|
||||
else
|
||||
copy_file(from_root, FIO_BACKUP_HOST, instance_config.pgdata, FIO_DB_HOST, file);
|
||||
copy_file(from_root, FIO_BACKUP_HOST,
|
||||
instance_config.pgdata, FIO_DB_HOST,
|
||||
file);
|
||||
|
||||
/* print size of restored file */
|
||||
if (file->write_size != BYTES_INVALID)
|
||||
|
@ -360,14 +360,14 @@ set_min_recovery_point(pgFile *file, const char *backup_path,
|
||||
* Copy pg_control file to backup. We do not apply compression to this file.
|
||||
*/
|
||||
void
|
||||
copy_pgcontrol_file(const char *from_root, const char *to_root, pgFile *file, fio_location location)
|
||||
copy_pgcontrol_file(const char *from_root, fio_location from_location, const char *to_root, fio_location to_location, pgFile *file)
|
||||
{
|
||||
ControlFileData ControlFile;
|
||||
char *buffer;
|
||||
size_t size;
|
||||
char to_path[MAXPGPATH];
|
||||
|
||||
buffer = slurpFile(from_root, XLOG_CONTROL_FILE, &size, false, FIO_DB_HOST);
|
||||
buffer = slurpFile(from_root, XLOG_CONTROL_FILE, &size, false, from_location);
|
||||
|
||||
digestControlFile(&ControlFile, buffer, size);
|
||||
|
||||
@ -376,7 +376,7 @@ copy_pgcontrol_file(const char *from_root, const char *to_root, pgFile *file, fi
|
||||
file->write_size = size;
|
||||
|
||||
join_path_components(to_path, to_root, file->path + strlen(from_root) + 1);
|
||||
writeControlFile(&ControlFile, to_path, location);
|
||||
writeControlFile(&ControlFile, to_path, to_location);
|
||||
|
||||
pg_free(buffer);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user