From cc2a8777d5efdaebfc17b053f747e8683a8ce3b1 Mon Sep 17 00:00:00 2001 From: David Steele Date: Sun, 26 Jun 2016 21:01:20 -0400 Subject: [PATCH] User/group permissions improvements. Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. --- doc/xml/release.xml | 4 + lib/pgBackRest/Manifest.pm | 61 +++++++++--- lib/pgBackRest/Restore.pm | 54 +++++++++-- test/expect/backup-synthetic-001.log | 93 +++++++++++++++---- test/expect/backup-synthetic-002.log | 65 +++++++++---- test/expect/backup-synthetic-003.log | 65 +++++++++---- test/expect/backup-synthetic-004.log | 65 +++++++++---- test/expect/backup-synthetic-005.log | 65 +++++++++---- test/expect/backup-synthetic-006.log | 65 +++++++++---- test/expect/backup-synthetic-007.log | 65 +++++++++---- test/expect/backup-synthetic-008.log | 65 +++++++++---- test/lib/pgBackRestTest/Backup/BackupTest.pm | 52 +++++++++-- .../Backup/Common/HostDbCommonTest.pm | 4 +- 13 files changed, 549 insertions(+), 174 deletions(-) diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 1a794848e..bc536ec59 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -144,6 +144,10 @@

Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality.

+ +

Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name.

+
+

Minor refactor of version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.

diff --git a/lib/pgBackRest/Manifest.pm b/lib/pgBackRest/Manifest.pm index ea8bb3fd8..6c8045453 100644 --- a/lib/pgBackRest/Manifest.pm +++ b/lib/pgBackRest/Manifest.pm @@ -661,8 +661,23 @@ sub build } # User and group required for all types - $self->set($strSection, $strFile, MANIFEST_SUBKEY_USER, $oManifestHash{name}{$strName}{user}); - $self->set($strSection, $strFile, MANIFEST_SUBKEY_GROUP, $oManifestHash{name}{$strName}{group}); + if (defined($oManifestHash{name}{$strName}{user})) + { + $self->set($strSection, $strFile, MANIFEST_SUBKEY_USER, $oManifestHash{name}{$strName}{user}); + } + else + { + $self->boolSet($strSection, $strFile, MANIFEST_SUBKEY_USER, false); + } + + if (defined($oManifestHash{name}{$strName}{group})) + { + $self->set($strSection, $strFile, MANIFEST_SUBKEY_GROUP, $oManifestHash{name}{$strName}{group}); + } + else + { + $self->boolSet($strSection, $strFile, MANIFEST_SUBKEY_GROUP, false); + } # Mode for required file and path type only if ($cType eq 'f' || $cType eq 'd') @@ -795,9 +810,10 @@ sub build # Record the time when copying will start $self->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_COPY_START, undef, $lTimeBegin + ($bOnline ? 1 : 0)); - } - $self->buildDefault(); + # Build default sections + $self->buildDefault(); + } # Return from function and log return values if any return logDebugReturn($strOperation); @@ -873,15 +889,31 @@ sub fileAdd ); # Set manifest values - $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_USER, - $self->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_USER)); - $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_GROUP, - $self->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_GROUP)); - $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_MODE, '0600'); + if (!$self->test(MANIFEST_SECTION_TARGET_FILE . ':default', MANIFEST_SUBKEY_USER) || + !$self->test(MANIFEST_SECTION_TARGET_FILE . ':default', MANIFEST_SUBKEY_USER, undef, + $self->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_USER))) + { + $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_USER, + $self->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_USER)); + } + + if (!$self->test(MANIFEST_SECTION_TARGET_FILE . ':default', MANIFEST_SUBKEY_GROUP) || + !$self->test(MANIFEST_SECTION_TARGET_FILE . ':default', MANIFEST_SUBKEY_GROUP, undef, + $self->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_GROUP))) + { + $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_GROUP, + $self->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_GROUP)); + } + + if (!$self->test(MANIFEST_SECTION_TARGET_FILE . ':default', MANIFEST_SUBKEY_MODE) || + !$self->test(MANIFEST_SECTION_TARGET_FILE . ':default', MANIFEST_SUBKEY_MODE, undef, '0600')) + { + $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_MODE, '0600'); + } + $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_TIMESTAMP, $lModificationTime); $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_SIZE, $lSize); $self->set(MANIFEST_SECTION_TARGET_FILE, $strManifestFile, MANIFEST_SUBKEY_CHECKSUM, $strChecksum); - $self->buildDefault(); } #################################################################################################################################### @@ -901,15 +933,18 @@ sub buildDefault { foreach my $strSubKey (&MANIFEST_SUBKEY_USER, &MANIFEST_SUBKEY_GROUP, &MANIFEST_SUBKEY_MODE) { + # Links don't have a mode so skip + next if ($strSection eq MANIFEST_SECTION_TARGET_LINK && $strSubKey eq &MANIFEST_SUBKEY_MODE); + my %oDefault; my $iSectionTotal = 0; foreach my $strFile ($self->keys($strSection)) { - my $strValue = $self->get($strSection, $strFile, $strSubKey, false); - - if (defined($strValue)) + if (!$self->boolTest($strSection, $strFile, $strSubKey, false)) { + my $strValue = $self->get($strSection, $strFile, $strSubKey); + if (defined($oDefault{$strValue})) { $oDefault{$strValue}++; diff --git a/lib/pgBackRest/Restore.pm b/lib/pgBackRest/Restore.pm index f781bdf2d..7b081f396 100644 --- a/lib/pgBackRest/Restore.pm +++ b/lib/pgBackRest/Restore.pm @@ -125,13 +125,40 @@ sub manifestOwnershipCheck # Create hashes to track valid/invalid users/groups my %oOwnerHash = (); - # Create hash for each type and owner to be checked - my $strDefaultUser = getpwuid($<); - my $strDefaultGroup = getgrgid($(); + # Create hash for each type to be checked + my %oFileTypeHash = + ( + &MANIFEST_SECTION_TARGET_PATH => true, + &MANIFEST_SECTION_TARGET_LINK => true, + &MANIFEST_SECTION_TARGET_FILE => true + ); - my %oFileTypeHash = (&MANIFEST_SECTION_TARGET_PATH => true, &MANIFEST_SECTION_TARGET_LINK => true, - &MANIFEST_SECTION_TARGET_FILE => true); - my %oOwnerTypeHash = (&MANIFEST_SUBKEY_USER => $strDefaultUser, &MANIFEST_SUBKEY_GROUP => $strDefaultGroup); + # Create hash for default owners (user, group) for when the owner in the manifest cannot be used because it does not exist or + # was not mapped to a name during the original backup. It's preferred to use the owner of the PGDATA directory but if that was + # not valid in the original backup then the current user/group will be used as a last resort. + my %oOwnerTypeHash; + + if ($oManifest->test(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_USER) && + !$oManifest->boolTest(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_USER, false)) + { + $oOwnerTypeHash{&MANIFEST_SUBKEY_USER} = + $oManifest->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_USER); + } + else + { + $oOwnerTypeHash{&MANIFEST_SUBKEY_USER} = getpwuid($<); + } + + if ($oManifest->test(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_GROUP) && + !$oManifest->boolTest(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_GROUP, false)) + { + $oOwnerTypeHash{&MANIFEST_SUBKEY_GROUP} = + $oManifest->get(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA, MANIFEST_SUBKEY_GROUP); + } + else + { + $oOwnerTypeHash{&MANIFEST_SUBKEY_USER} = getgrgid($(); + } # Loop through owner types (user, group) foreach my $strOwnerType (sort (keys %oOwnerTypeHash)) @@ -143,6 +170,15 @@ sub manifestOwnershipCheck { my $strOwner = $oManifest->get($strSection, $strName, $strOwnerType); + # If the owner was invalid then set it to something valid + if ($oManifest->boolTest($strSection, $strName, $strOwnerType, false)) + { + $strOwner = $oOwnerTypeHash{$strOwnerType}; + + &log(WARN, "backup ${strOwnerType} for ${strName} was not mapped to a name, set to ${strOwner}"); + $oManifest->set($strSection, $strName, $strOwnerType, $strOwner); + } + # If root then test to see if the user/group is valid if ($< == 0) { @@ -188,7 +224,7 @@ sub manifestOwnershipCheck if (!$oOwnerHash{$strOwnerType}{$strOwner}) { &log(WARN, "${strOwnerType} ${strOwner} in manifest " . ($< == 0 ? 'does not exist locally ' : '') . - "cannot be used for restore, changed to $oOwnerTypeHash{$strOwnerType}"); + "cannot be used for restore, set to $oOwnerTypeHash{$strOwnerType}"); } } } @@ -622,7 +658,9 @@ sub clean my $strGroup = $oManifest->get($strSection, $strManifestFile, MANIFEST_SUBKEY_GROUP); # If ownership does not match, fix it - if ($strUser ne $oTargetManifest{name}{$strName}{user} || + if (!defined($oTargetManifest{name}{$strName}{user}) || + $strUser ne $oTargetManifest{name}{$strName}{user} || + !defined($oTargetManifest{name}{$strName}{group}) || $strGroup ne $oTargetManifest{name}{$strName}{group}) { &log(DETAIL, "set ownership ${strUser}:${strGroup} on ${strOsFile}"); diff --git a/test/expect/backup-synthetic-001.log b/test/expect/backup-synthetic-001.log index a43b9b86e..3babdb29a 100644 --- a/test/expect/backup-synthetic-001.log +++ b/test/expect/backup-synthetic-001.log @@ -188,9 +188,9 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1],"user":false} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":false,"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","size":[SIZE],"timestamp":[TIMESTAMP-2]} @@ -553,9 +553,9 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1],"user":false} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":false,"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","size":[SIZE],"timestamp":[TIMESTAMP-2]} @@ -640,6 +640,8 @@ restore delta, backup '[BACKUP-FULL-2]' - add and delete files (db-master host) DEBUG: File->exists=>: bExists = true DEBUG: File->copy(): bAppendChecksum = , bDestinationCompress = , bDestinationPathCreate = , bIgnoreMissingSource = , bSourceCompressed = , lModificationTime = [undef], strDestinationFile = [TEST_PATH]/db-master/db/base/backup.manifest, strDestinationPathType = db:absolute, strGroup = [undef], strMode = <0640>, strSourceFile = [BACKUP-FULL-2]/backup.manifest, strSourcePathType = backup:cluster, strUser = [undef] DEBUG: Restore->manifestOwnershipCheck(): oManifest = [object] + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant DEBUG: File->remove(): bIgnoreMissing = , bTemp = [undef], strPath = [TEST_PATH]/db-master/db/base/global/pg_control, strPathType = db:absolute DEBUG: File->remove=>: bRemoved = true DEBUG: Restore->clean(): oManifest = [object] @@ -689,9 +691,13 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme +DETAIL: set ownership vagrant:postgres on [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION + DEBUG: File->owner(): strFile = [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION, strGroup = [GROUP-1], strPathType = db:absolute, strUser = [USER-1] +DETAIL: set ownership vagrant:postgres on [TEST_PATH]/db-master/db/base/base/1/PG_VERSION + DEBUG: File->owner(): strFile = [TEST_PATH]/db-master/db/base/base/1/PG_VERSION, strGroup = [GROUP-1], strPathType = db:absolute, strUser = [USER-1] +DETAIL: set mode 0660 on [TEST_PATH]/db-master/db/base/base/1/PG_VERSION DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old INFO: cleanup removed 3 files, 1 path @@ -708,11 +714,11 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute DEBUG: File->exists=>: bExists = false DEBUG: File->pathCreate(): bCreateParents = , bIgnoreExists = , strMode = 0700, strPath = [TEST_PATH]/db-master/db/base/pg_clog, strPathType = db:absolute + DEBUG: File->owner(): strFile = [TEST_PATH]/db-master/db/base/pg_clog, strGroup = [GROUP-1], strPathType = db:absolute, strUser = [USER-1] DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -790,11 +796,46 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, backup '[BACKUP-FULL-2]' - restore all links by mapping (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --log-level-console=detail --link-map=pg_stat=../pg_stat --link-map=postgresql.conf=../pg_config/postgresql.conf --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-map=pg_stat=../pg_stat --link-map=postgresql.conf=../pg_config/postgresql.conf --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant INFO: remap link pg_data/pg_stat destination to ../pg_stat INFO: remap link pg_data/postgresql.conf destination to ../pg_config/postgresql.conf DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -825,16 +866,22 @@ restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf restore delta, backup '[BACKUP-FULL-2]', expect exit 145 - restore all links by mapping (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --log-level-console=warn --link-map=pg_stat=../pg_stat --link-map=postgresql.conf=../pg_stat/postgresql.conf --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant ERROR: [145]: link [TEST_PATH]/db-master/db/base/postgresql.conf (../pg_stat) references a subdirectory of or the same directory as link [TEST_PATH]/db-master/db/base/pg_stat (../pg_stat) restore, backup '[BACKUP-FULL-2]', expect exit 115 - error on existing linked path (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-FULL-2] --log-level-console=warn --link-all --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant ERROR: [115]: cannot restore to path '[TEST_PATH]/db-master/db/pg_stat' that contains files - try using --delta if this is what you intended restore, backup '[BACKUP-FULL-2]', expect exit 115 - error on existing linked file (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --set=[BACKUP-FULL-2] --log-level-console=warn --link-all --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant ERROR: [115]: cannot restore file '[TEST_PATH]/db-master/db/pg_config/postgresql.conf' that already exists - try using --delta if this is what you intended restore delta, backup '[BACKUP-FULL-2]' - restore all links --link-all and mapping (db-master host) @@ -842,6 +889,8 @@ restore delta, backup '[BACKUP-FULL-2]' - restore all links --link-all and mappi ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --link-map=pg_stat=../pg_stat --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant INFO: remap link pg_data/pg_stat destination to ../pg_stat DETAIL: check [TEST_PATH]/db-master/db/base exists DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists @@ -871,6 +920,8 @@ restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missin INFO: restore start: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db WARN: --delta or --force specified but unable to find 'PG_VERSION' or 'backup.manifest' in '[TEST_PATH]/db-master/db/base' to confirm that this is a valid $PGDATA directory. --delta and --force have been disabled and if any files exist in the destination directories the restore will be aborted. INFO: restore backup set [BACKUP-FULL-2] + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -882,8 +933,10 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: backup group for pg_data/base/16384/PG_VERSION was not mapped to a name, set to postgres + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: backup user for pg_data/base/1/PG_VERSION was not mapped to a name, set to vagrant + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -1124,7 +1177,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1364,7 +1417,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1504,7 +1557,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1644,7 +1697,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1877,7 +1930,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2017,7 +2070,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2159,7 +2212,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2297,7 +2350,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2440,7 +2493,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2589,7 +2642,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -3066,7 +3119,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/expect/backup-synthetic-002.log b/test/expect/backup-synthetic-002.log index 82f735ecf..e547c0524 100644 --- a/test/expect/backup-synthetic-002.log +++ b/test/expect/backup-synthetic-002.log @@ -189,7 +189,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -428,7 +428,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -557,7 +557,6 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base @@ -579,8 +578,7 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -658,6 +656,37 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ @@ -675,8 +704,8 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -941,7 +970,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1226,7 +1255,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1367,7 +1396,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1508,7 +1537,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1742,7 +1771,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1880,7 +1909,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2023,7 +2052,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2162,7 +2191,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2306,7 +2335,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2456,7 +2485,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2934,7 +2963,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/expect/backup-synthetic-003.log b/test/expect/backup-synthetic-003.log index 22260e8ba..c925bf786 100644 --- a/test/expect/backup-synthetic-003.log +++ b/test/expect/backup-synthetic-003.log @@ -187,7 +187,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -424,7 +424,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -553,7 +553,6 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base @@ -575,8 +574,7 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -654,6 +652,37 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ @@ -671,8 +700,8 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -912,7 +941,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1151,7 +1180,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1290,7 +1319,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1429,7 +1458,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1661,7 +1690,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1797,7 +1826,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1938,7 +1967,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2075,7 +2104,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2217,7 +2246,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2365,7 +2394,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2841,7 +2870,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/expect/backup-synthetic-004.log b/test/expect/backup-synthetic-004.log index d62ef5d96..2d97de2a8 100644 --- a/test/expect/backup-synthetic-004.log +++ b/test/expect/backup-synthetic-004.log @@ -188,7 +188,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -426,7 +426,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -555,7 +555,6 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base @@ -577,8 +576,7 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -656,6 +654,37 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ @@ -673,8 +702,8 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --config=[TEST_PATH]/db-master/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/repo/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/repo/log --repo-path=[TEST_PATH]/db-master/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -938,7 +967,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1222,7 +1251,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1362,7 +1391,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1502,7 +1531,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1735,7 +1764,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1872,7 +1901,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2014,7 +2043,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2152,7 +2181,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2295,7 +2324,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2444,7 +2473,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2921,7 +2950,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/expect/backup-synthetic-005.log b/test/expect/backup-synthetic-005.log index 4f92be1d3..6bc4c04d6 100644 --- a/test/expect/backup-synthetic-005.log +++ b/test/expect/backup-synthetic-005.log @@ -200,7 +200,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -730,7 +730,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -868,7 +868,6 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base @@ -890,8 +889,7 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -969,6 +967,37 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ @@ -986,8 +1015,8 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -1238,7 +1267,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1485,7 +1514,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1646,7 +1675,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1807,7 +1836,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2061,7 +2090,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2222,7 +2251,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2385,7 +2414,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2544,7 +2573,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2708,7 +2737,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2878,7 +2907,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -3376,7 +3405,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/expect/backup-synthetic-006.log b/test/expect/backup-synthetic-006.log index 7ccb7a59b..b1085e1e9 100644 --- a/test/expect/backup-synthetic-006.log +++ b/test/expect/backup-synthetic-006.log @@ -201,7 +201,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -452,7 +452,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -583,7 +583,6 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base @@ -605,8 +604,7 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -684,6 +682,37 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ @@ -701,8 +730,8 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --no-compress --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -977,7 +1006,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1269,7 +1298,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1431,7 +1460,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1593,7 +1622,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1848,7 +1877,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2007,7 +2036,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2171,7 +2200,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2331,7 +2360,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2496,7 +2525,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2667,7 +2696,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -3166,7 +3195,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/expect/backup-synthetic-007.log b/test/expect/backup-synthetic-007.log index 62df456d1..2819eedbd 100644 --- a/test/expect/backup-synthetic-007.log +++ b/test/expect/backup-synthetic-007.log @@ -198,7 +198,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -446,7 +446,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -577,7 +577,6 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base @@ -599,8 +598,7 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -678,6 +676,37 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ @@ -695,8 +724,8 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -945,7 +974,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1190,7 +1219,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1349,7 +1378,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1508,7 +1537,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1760,7 +1789,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1916,7 +1945,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2077,7 +2106,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2234,7 +2263,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2396,7 +2425,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2564,7 +2593,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -3053,7 +3082,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/expect/backup-synthetic-008.log b/test/expect/backup-synthetic-008.log index ce1459a2d..03e65b1d2 100644 --- a/test/expect/backup-synthetic-008.log +++ b/test/expect/backup-synthetic-008.log @@ -199,7 +199,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -448,7 +448,7 @@ pg_data/postgresql.conf={"file":"postgresql.conf","path":"../pg_config","type":" [target:file] pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -579,7 +579,6 @@ DETAIL: check [TEST_PATH]/db-master/db/pg_config exists DEBUG: File->manifestRecurse(): iDepth = 1, oManifestHashRef = [hash], strPathFileOp = pg_tblspc, strPathOp = [TEST_PATH]/db-master/db/base, strPathType = db:absolute DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf -DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed DETAIL: remove file [TEST_PATH]/db-master/db/base/deleteme/deleteme.txt DETAIL: remove path [TEST_PATH]/db-master/db/base/deleteme DETAIL: set mode 0700 on [TEST_PATH]/db-master/db/base/base @@ -601,8 +600,7 @@ DETAIL: remove file [TEST_PATH]/db-master/db/base/backup_label.old DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/pg_stat, strPathType = db:absolute - DEBUG: File->exists=>: bExists = false - DEBUG: File->linkCreate(): bHard = , bPathCreate = , bRelative = true, strDestinationFile = [TEST_PATH]/db-master/db/base/pg_stat, strDestinationPathType = db:absolute, strSourceFile = [TEST_PATH]/db-master/db/pg_stat, strSourcePathType = db:absolute + DEBUG: File->exists=>: bExists = true DEBUG: File->exists(): strPath = [TEST_PATH]/db-master/db/base/postgresql.conf, strPathType = db:absolute DEBUG: File->exists=>: bExists = true DEBUG: build level 2 paths/links @@ -680,6 +678,37 @@ DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and match ---------------------------------------------------------------- restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --stanza=db archive-get %f "%p"' +restore delta, backup '[BACKUP-FULL-2]' - fix broken symlink (db-master host) +> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --set=[BACKUP-FULL-2] --link-all --log-level-console=detail --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --link-all --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db + INFO: restore backup set [BACKUP-FULL-2] +DETAIL: check [TEST_PATH]/db-master/db/base exists +DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists +DETAIL: check [TEST_PATH]/db-master/db/pg_config exists + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat + INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base +DETAIL: preserve file [TEST_PATH]/db-master/db/base/recovery.conf +DETAIL: remove link [TEST_PATH]/db-master/db/base/pg_stat - destination changed +DETAIL: restore file [TEST_PATH]/db-master/db/base/postgresql.conf - exists and matches backup (21B, 41%) checksum 6721d92c9fcdf4248acff1f9a1377127d9064807 +DETAIL: restore file [TEST_PATH]/db-master/db/base/pg_stat/global.stat - exists and matches backup (5B, 50%) checksum e350d5ce0153f3e22d5db21cf2a4eff00f3ee877 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/33000 - exists and matches backup (5B, 60%) checksum 7f4c74dc10f61eef43e6ae642606627df1999b34 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/17000 - exists and matches backup (4B, 68%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/12000 - exists and matches backup (4B, 76%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/32768/PG_VERSION - exists and matches backup (3B, 82%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/16384/PG_VERSION - exists and matches backup (3B, 88%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/base/1/PG_VERSION - exists and matches backup (3B, 94%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DETAIL: restore file [TEST_PATH]/db-master/db/base/PG_VERSION - exists and matches backup (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: wrote [TEST_PATH]/db-master/db/base/recovery.conf + INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started) + INFO: restore file [TEST_PATH]/db-master/db/base/global/pg_control (8KB) checksum 56fe5780b8dca9705e0c22032a83828860a21235 + INFO: restore stop + ++ supplemental file: [TEST_PATH]/db-master/db/base/recovery.conf +---------------------------------------------------------------- +restore_command = '[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=detail --stanza=db archive-get %f "%p"' + restore delta, force, backup '[BACKUP-FULL-2]', expect exit 115 - fail on missing PG_VERSION (db-master host) > [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --delta --force --set=[BACKUP-FULL-2] --log-level-console=detail --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ @@ -697,8 +726,8 @@ restore delta, force, backup '[BACKUP-FULL-2]' - restore succeeds with backup.ma ------------------------------------------------------------------------------------------------------------------------------------ INFO: restore start: --backup-host=backup --backup-user=backrest --cmd-remote=[BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --config-remote=[TEST_PATH]/backup/pgbackrest.conf --db-path=[TEST_PATH]/db-master/db/base --delta --force --lock-path=[TEST_PATH]/db-master/spool/lock --log-level-console=detail --log-level-file=trace --log-path=[TEST_PATH]/db-master/spool/log --repo-path=[TEST_PATH]/backup/repo --set=[BACKUP-FULL-2] --stanza=db INFO: restore backup set [BACKUP-FULL-2] - WARN: group bogus in manifest cannot be used for restore, changed to postgres - WARN: user bogus in manifest cannot be used for restore, changed to vagrant + WARN: group bogus in manifest cannot be used for restore, set to postgres + WARN: user bogus in manifest cannot be used for restore, set to vagrant WARN: contents of directory link pg_stat will be restored in a directory at the same location WARN: file link postgresql.conf will be restored as a file at the same location DETAIL: check [TEST_PATH]/db-master/db/base exists @@ -971,7 +1000,7 @@ pg_tblspc/1={"path":"[TEST_PATH]/db-master/db/tablespace/ts1","tablespace-id":"1 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1261,7 +1290,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1421,7 +1450,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1581,7 +1610,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2","tablespace-id":"2 pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1834,7 +1863,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -1991,7 +2020,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2153,7 +2182,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2311,7 +2340,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","reference":"[BACKUP-DIFF-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2474,7 +2503,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-2]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -2643,7 +2672,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} @@ -3133,7 +3162,7 @@ pg_tblspc/2={"path":"[TEST_PATH]/db-master/db/tablespace/ts2-2","tablespace-id": pg_data/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/1/12000={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} -pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} +pg_data/base/1/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","mode":"0660","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/17000={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/16384/PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} pg_data/base/32768/33000={"checksum":"7f4c74dc10f61eef43e6ae642606627df1999b34","reference":"[BACKUP-FULL-3]","repo-size":[SIZE],"size":[SIZE],"timestamp":[TIMESTAMP-1]} diff --git a/test/lib/pgBackRestTest/Backup/BackupTest.pm b/test/lib/pgBackRestTest/Backup/BackupTest.pm index 680276120..357f36014 100755 --- a/test/lib/pgBackRestTest/Backup/BackupTest.pm +++ b/test/lib/pgBackRestTest/Backup/BackupTest.pm @@ -719,7 +719,14 @@ sub backupTestRun $oHostDbMaster->manifestFileCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'base/1/12000', 'BASE', 'a3b357a3e395e43fcfb19bb13f3c1b5179279593', $lTime); $oHostDbMaster->manifestFileCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'base/1/' . DB_FILE_PGVERSION, - PG_VERSION_93, 'e1f7a3a299f62225cba076fc6d3d6e677f303482', $lTime); + PG_VERSION_93, 'e1f7a3a299f62225cba076fc6d3d6e677f303482', $lTime, '660'); + + if ($bNeutralTest && !$bRemote) + { + executeTest('sudo chown 7777 ' . $oHostDbMaster->dbBasePath() . '/base/1/' . DB_FILE_PGVERSION); + $oManifest{&MANIFEST_SECTION_TARGET_FILE}{MANIFEST_TARGET_PGDATA . '/base/1/' . DB_FILE_PGVERSION} + {&MANIFEST_SUBKEY_USER} = INI_FALSE; + } $oHostDbMaster->manifestPathCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'base/16384'); @@ -728,6 +735,13 @@ sub backupTestRun $oHostDbMaster->manifestFileCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'base/16384/' . DB_FILE_PGVERSION, PG_VERSION_93, 'e1f7a3a299f62225cba076fc6d3d6e677f303482', $lTime); + if ($bNeutralTest && !$bRemote) + { + executeTest('sudo chown :7777 ' . $oHostDbMaster->dbBasePath() . '/base/16384/' . DB_FILE_PGVERSION); + $oManifest{&MANIFEST_SECTION_TARGET_FILE}{MANIFEST_TARGET_PGDATA . '/base/16384/' . DB_FILE_PGVERSION} + {&MANIFEST_SUBKEY_GROUP} = INI_FALSE; + } + $oHostDbMaster->manifestPathCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'base/32768'); $oHostDbMaster->manifestFileCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'base/32768/33000', '33000', @@ -950,6 +964,13 @@ sub backupTestRun my $bDelta = true; my $bForce = false; + # Munge permissions/modes on files that will be fixed by the restore + if ($bNeutralTest && !$bRemote) + { + executeTest("sudo chown :7777 " . $oHostDbMaster->dbBasePath() . '/base/1/' . DB_FILE_PGVERSION); + executeTest("sudo chmod 600 " . $oHostDbMaster->dbBasePath() . '/base/1/' . DB_FILE_PGVERSION); + } + # Create a path and file that are not in the manifest $oHostDbMaster->dbPathCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'deleteme'); $oHostDbMaster->dbFileCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'deleteme/deleteme.txt', 'DELETEME'); @@ -957,19 +978,38 @@ sub backupTestRun # Change path mode $oHostDbMaster->dbPathMode(\%oManifest, MANIFEST_TARGET_PGDATA, 'base', '0777'); - # Change an existing link to the wrong directory - $oHostDbMaster->dbFileRemove(\%oManifest, MANIFEST_TARGET_PGDATA, 'pg_stat'); - $oHostDbMaster->dbLinkCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'pg_stat', '../wrong'); - # Remove a path $oHostDbMaster->dbPathRemove(\%oManifest, MANIFEST_TARGET_PGDATA, 'pg_clog'); # Remove a file $oHostDbMaster->dbFileRemove(\%oManifest, MANIFEST_TARGET_PGDATA, 'base/16384/17000'); + # Restore will reset invalid user and group so do the same in the manifest + if ($bNeutralTest && !$bRemote) + { + delete($oManifest{&MANIFEST_SECTION_TARGET_FILE}{MANIFEST_TARGET_PGDATA . '/base/1/' . DB_FILE_PGVERSION} + {&MANIFEST_SUBKEY_USER}); + delete($oManifest{&MANIFEST_SECTION_TARGET_FILE}{MANIFEST_TARGET_PGDATA . '/base/16384/' . DB_FILE_PGVERSION} + {&MANIFEST_SUBKEY_GROUP}); + } + $oHostDbMaster->restore( $strFullBackup, \%oManifest, undef, $bDelta, $bForce, undef, undef, undef, undef, undef, undef, - 'add and delete files', undef, ' --link-all'); + 'add and delete files', undef, ' --link-all', undef, $bNeutralTest && !$bRemote ? 'root' : undef); + + # Fix permissions on the restore log + if ($bNeutralTest && !$bRemote) + { + executeTest('sudo chown -R vagrant:postgres ' . $oHostBackup->logPath()); + } + + # Change an existing link to the wrong directory + $oHostDbMaster->dbFileRemove(\%oManifest, MANIFEST_TARGET_PGDATA, 'pg_stat'); + $oHostDbMaster->dbLinkCreate(\%oManifest, MANIFEST_TARGET_PGDATA, 'pg_stat', '../wrong'); + + $oHostDbMaster->restore( + $strFullBackup, \%oManifest, undef, $bDelta, $bForce, undef, undef, undef, undef, undef, undef, + 'fix broken symlink', undef, ' --link-all --log-level-console=detail'); # Additional restore tests that don't need to be performed for every permutation if ($bNeutralTest && !$bRemote) diff --git a/test/lib/pgBackRestTest/Backup/Common/HostDbCommonTest.pm b/test/lib/pgBackRestTest/Backup/Common/HostDbCommonTest.pm index b86e9a9cb..e5e3d957f 100644 --- a/test/lib/pgBackRestTest/Backup/Common/HostDbCommonTest.pm +++ b/test/lib/pgBackRestTest/Backup/Common/HostDbCommonTest.pm @@ -306,6 +306,7 @@ sub restore my $iExpectedExitStatus = shift; my $strOptionalParam = shift; my $bTablespace = shift; + my $strUser = shift; # Set defaults $bDelta = defined($bDelta) ? $bDelta : false; @@ -370,7 +371,8 @@ sub restore (defined($strTargetAction) && $strTargetAction ne OPTION_DEFAULT_RESTORE_TARGET_ACTION ? ' --' . OPTION_TARGET_ACTION . "=${strTargetAction}" : '') . ' --stanza=' . $self->stanza() . ' restore', - {strComment => $strComment, iExpectedExitStatus => $iExpectedExitStatus, oLogTest => $self->{oLogTest}}); + {strComment => $strComment, iExpectedExitStatus => $iExpectedExitStatus, oLogTest => $self->{oLogTest}}, + $strUser); if (!defined($iExpectedExitStatus)) {