From 9aa41ee76bc4f14b8f8e2856893ac09ad68c33d0 Mon Sep 17 00:00:00 2001 From: David Steele Date: Fri, 8 May 2015 18:34:27 -0400 Subject: [PATCH] Added tablespace setting to allow compact database restores for development, staging, etc. --- README.md | 15 +++++ doc/doc.xml | 31 +++++++--- lib/BackRest/Config.pm | 15 ++++- lib/BackRest/Restore.pm | 48 +++++++++++++-- test/lib/BackRestTest/BackupTest.pm | 92 ++++++++++++++++++++++++----- test/log/backup-synthetic-001.log | 63 ++++++++++++++++++++ test/log/backup-synthetic-002.log | 63 ++++++++++++++++++++ test/log/backup-synthetic-003.log | 63 ++++++++++++++++++++ test/log/backup-synthetic-004.log | 63 ++++++++++++++++++++ test/log/backup-synthetic-005.log | 63 ++++++++++++++++++++ test/log/backup-synthetic-006.log | 63 ++++++++++++++++++++ test/log/backup-synthetic-007.log | 63 ++++++++++++++++++++ test/log/backup-synthetic-008.log | 63 ++++++++++++++++++++ 13 files changed, 678 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 06aed8be0..cbb0c77f7 100644 --- a/README.md +++ b/README.md @@ -647,6 +647,19 @@ required: n example: archive-max-mb=1024 ``` +#### `restore` section + +The `restore` section defines settings used for restoring backups. + +##### `tablespace` key + +Defines whether tablespaces will be be restored into their original (or remapped) locations or stored directly under the `pg_tblspc` path. Disabling this setting produces compact restores that are convenient for development, staging, etc. Currently these restores cannot be backed up as PgBackRest expects only links in the `pg_tblspc` path. If no tablespaces are present this this setting has no effect. +``` +required: n +default: y +example: tablespace=n +``` + #### `expire` section The `expire` section defines how long backups will be retained. Expiration only occurs when the number of complete backups exceeds the allowed retention. In other words, if full-retention is set to 2, then there must be 3 complete backups before the oldest will be expired. Make sure you always have enough space for rentention + 1 backups. @@ -726,6 +739,8 @@ example: db-path=/data/db * Fixed an issue where an absolute path was not written into recovery.conf when the restore was run with a relative path. +* Added `tablespace` setting to allow tablespaces to be restored into the `pg_tblspc` path. This produces compact restores that are convenient for development, staging, etc. Currently these restores cannot be backed up as PgBackRest expects only links in the `pg_tblspc` path. + ### v0.61: bug fix for uncompressed remote destination * Fixed a buffering error that could occur on large, highly-compressible files when copying to an uncompressed remote destination. The error was detected in the decompression code and resulted in a failed backup rather than corruption so it should not affect successful backups made with previous versions. diff --git a/doc/doc.xml b/doc/doc.xml index ba12d796d..f460386b9 100644 --- a/doc/doc.xml +++ b/doc/doc.xml @@ -560,20 +560,19 @@ Run a full backup on the db stanza. --type can n - - - Store WAL segments required to make the backup consistent in the backup's pg_xlog path. This slightly paranoid option protects against corruption or premature expiration in the WAL segment archive. PITR won't be possible without the WAL segment archive and this option also consumes more space. + + + Store WAL segments required to make the backup consistent in the backup's pg_xlog path. This slightly paranoid option protects against corruption or premature expiration in the WAL segment archive. PITR won't be possible without the WAL segment archive and this option also consumes more space. - y - - - + y + + + The archive section defines parameters when doing async archiving. This means that the archive files will be stored locally, then a background process will pick them and move them to the backup. - @@ -600,6 +599,19 @@ Run a full backup on the db stanza. --type can + + + The restore section defines settings used for restoring backups. + + + + + Defines whether tablespaces will be be restored into their original (or remapped) locations or stored directly under the pg_tblspc path. Disabling this setting produces compact restores that are convenient for development, staging, etc. Currently these restores cannot be backed up as expects only links in the pg_tblspc path. If no tablespaces are present this this setting has no effect. + n + + + + The expire section defines how long backups will be retained. Expiration only occurs when the number of complete backups exceeds the allowed retention. In other words, if full-retention is set to 2, then there must be 3 complete backups before the oldest will be expired. Make sure you always have enough space for rentention + 1 backups. @@ -683,6 +695,9 @@ Run a full backup on the db stanza. --type can Fixed an issue where an absolute path was not written into recovery.conf when the restore was run with a relative path. + + Added tablespace setting to allow tablespaces to be restored into the pg_tblspc path. This produces compact restores that are convenient for development, staging, etc. Currently these restores cannot be backed up as expects only links in the pg_tblspc path. + diff --git a/lib/BackRest/Config.pm b/lib/BackRest/Config.pm index 3143246ea..8656babe4 100644 --- a/lib/BackRest/Config.pm +++ b/lib/BackRest/Config.pm @@ -169,6 +169,7 @@ use constant OPTION_RETENTION_FULL => 'retention-' . BACKUP_TYPE_FULL, # RESTORE Section + OPTION_TABLESPACE => 'tablespace', OPTION_RESTORE_TABLESPACE_MAP => 'tablespace-map', OPTION_RESTORE_RECOVERY_SETTING => 'recovery-setting', @@ -199,7 +200,7 @@ push @EXPORT, qw(OPTION_CONFIG OPTION_DELTA OPTION_FORCE OPTION_NO_START_STOP OP OPTION_RESTORE_RECOVERY_SETTING OPTION_RETENTION_ARCHIVE OPTION_RETENTION_ARCHIVE_TYPE OPTION_RETENTION_FULL OPTION_RETENTION_DIFF OPTION_START_FAST OPTION_THREAD_MAX OPTION_THREAD_TIMEOUT OPTION_DB_USER OPTION_BACKUP_USER OPTION_COMMAND_PSQL OPTION_COMMAND_PSQL_OPTION OPTION_COMMAND_REMOTE - OPTION_RESTORE_TABLESPACE_MAP + OPTION_TABLESPACE OPTION_RESTORE_TABLESPACE_MAP OPTION_TEST OPTION_TEST_DELAY OPTION_TEST_NO_FORK); @@ -245,6 +246,7 @@ use constant OPTION_DEFAULT_RESTORE_DELTA => false, OPTION_DEFAULT_RESTORE_FORCE => false, OPTION_DEFAULT_RESTORE_SET => 'latest', + OPTION_DEFAULT_RESTORE_TABLESPACE => true, OPTION_DEFAULT_RESTORE_TYPE => RECOVERY_TYPE_DEFAULT, OPTION_DEFAULT_RESTORE_TARGET_EXCLUSIVE => false, OPTION_DEFAULT_RESTORE_TARGET_RESUME => false, @@ -799,6 +801,17 @@ my %oOptionRule = } }, + &OPTION_TABLESPACE => + { + &OPTION_RULE_TYPE => OPTION_TYPE_BOOLEAN, + &OPTION_RULE_DEFAULT => OPTION_DEFAULT_RESTORE_TABLESPACE, + &OPTION_RULE_SECTION => true, + &OPTION_RULE_OPERATION => + { + &OP_RESTORE => true + } + }, + &OPTION_RESTORE_TABLESPACE_MAP => { &OPTION_RULE_TYPE => OPTION_TYPE_HASH, diff --git a/lib/BackRest/Restore.pm b/lib/BackRest/Restore.pm index 59aa2810c..e9cdf9eea 100644 --- a/lib/BackRest/Restore.pm +++ b/lib/BackRest/Restore.pm @@ -210,8 +210,33 @@ sub manifest_load $oManifest->set(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE, undef, $self->{strDbClusterPath}); } + # If no tablespaces are requested + if (!optionGet(OPTION_TABLESPACE)) + { + foreach my $strTablespaceName ($oManifest->keys(MANIFEST_SECTION_BACKUP_TABLESPACE)) + { + my $strTablespaceKey = + $oManifest->get(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName, MANIFEST_SUBKEY_LINK); + my $strTablespaceLink = "pg_tblspc/${strTablespaceKey}"; + my $strTablespacePath = + $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE) . "/${strTablespaceLink}"; + + $oManifest->set(MANIFEST_SECTION_BACKUP_PATH, "tablespace:${strTablespaceName}", undef, $strTablespacePath); + $oManifest->set(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName, MANIFEST_SUBKEY_PATH, $strTablespacePath); + + $oManifest->remove('base:link', $strTablespaceLink); + $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_GROUP, + $oManifest->get('base:path', '.', MANIFEST_SUBKEY_GROUP)); + $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_USER, + $oManifest->get('base:path', '.', MANIFEST_SUBKEY_USER)); + $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_MODE, + $oManifest->get('base:path', '.', MANIFEST_SUBKEY_MODE)); + + &log(INFO, "remapping tablespace ${strTablespaceKey} to ${strTablespacePath}"); + } + } # If tablespaces have been remapped, update the manifest - if (defined($self->{oRemapRef})) + elsif (defined($self->{oRemapRef})) { foreach my $strPathKey (sort(keys $self->{oRemapRef})) { @@ -266,7 +291,7 @@ sub clean if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, $strPath)) { - confess &log(ERROR, "required db path '${strPath}' does not exist"); + next; } # Load path manifest so it can be compared to deleted files/paths/links that are not in the backup @@ -434,6 +459,17 @@ sub build } } } + + # Make sure that all paths required for the restore now exist + foreach my $strPathKey ($oManifest->keys(MANIFEST_SECTION_BACKUP_PATH)) + { + my $strPath = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey); + + if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, $strPath)) + { + confess &log(ERROR, "required db path '${strPath}' does not exist"); + } + } } #################################################################################################################################### @@ -451,12 +487,12 @@ sub recovery # See if recovery.conf already exists my $bRecoveryConfExists = $self->{oFile}->exists(PATH_DB_ABSOLUTE, $strRecoveryConf); - # If RECOVERY_TYPE_PRESERVE then make sure recovery.conf exists and return + # If RECOVERY_TYPE_PRESERVE then warn if recovery.conf does not exist and return if ($self->{strType} eq RECOVERY_TYPE_PRESERVE) { if (!$bRecoveryConfExists) { - confess &log(ERROR, "recovery type is $self->{strType} but recovery file does not exist at ${strRecoveryConf}"); + &log(WARN, "recovery type is $self->{strType} but recovery file does not exist at ${strRecoveryConf}"); } return; @@ -536,6 +572,8 @@ sub recovery close($hFile) or confess "unable to close ${strRecoveryConf}: $!"; + + &log(INFO, "wrote $strRecoveryConf"); } #################################################################################################################################### @@ -677,6 +715,8 @@ sub restore # Create recovery.conf file $self->recovery(); + + &log(INFO, "restore complete"); } 1; diff --git a/test/lib/BackRestTest/BackupTest.pm b/test/lib/BackRestTest/BackupTest.pm index bfaa6935f..ce2ca02a7 100755 --- a/test/lib/BackRestTest/BackupTest.pm +++ b/test/lib/BackRestTest/BackupTest.pm @@ -92,11 +92,38 @@ sub BackRestTestBackup_PgDisconnect # Connect to the db (whether it is local or remote) if (defined($hDb)) { - $hDb->disconnect; + $hDb->disconnect(); undef($hDb); } } +#################################################################################################################################### +# BackRestTestBackup_PgExecuteNoTrans +#################################################################################################################################### +sub BackRestTestBackup_PgExecuteNoTrans +{ + my $strSql = shift; + + # Connect to the db with autocommit on so we can runs statements that can't run in transaction blocks + my $hDb = DBI->connect('dbi:Pg:dbname=postgres;port=' . BackRestTestCommon_DbPortGet . + ';host=' . BackRestTestCommon_DbPathGet(), + BackRestTestCommon_UserGet(), + undef, + {AutoCommit => 1, RaiseError => 1}); + + # Log and execute the statement + &log(DEBUG, "SQL: ${strSql}"); + my $hStatement = $hDb->prepare($strSql); + + $hStatement->execute() or + confess &log(ERROR, "Unable to execute: ${strSql}"); + + $hStatement->finish(); + + # Close the connection + $hDb->disconnect(); +} + #################################################################################################################################### # BackRestTestBackup_PgExecute #################################################################################################################################### @@ -1176,6 +1203,8 @@ sub BackRestTestBackup_Restore my $oRecoveryHashRef = shift; my $strComment = shift; my $iExpectedExitStatus = shift; + my $strOptionalParam = shift; + my $bCompare = shift; # Set defaults $bDelta = defined($bDelta) ? $bDelta : false; @@ -1234,6 +1263,7 @@ sub BackRestTestBackup_Restore '/pg_backrest.conf' . (defined($bDelta) && $bDelta ? ' --delta' : '') . (defined($bForce) && $bForce ? ' --force' : '') . ($strBackup ne 'latest' ? " --set=${strBackup}" : '') . + (defined($strOptionalParam) ? " ${strOptionalParam} " : '') . (defined($strType) && $strType ne RECOVERY_TYPE_DEFAULT ? " --type=${strType}" : '') . (defined($strTarget) ? " --target=\"${strTarget}\"" : '') . (defined($strTargetTimeline) ? " --target-timeline=\"${strTargetTimeline}\"" : '') . @@ -1242,7 +1272,7 @@ sub BackRestTestBackup_Restore " --stanza=${strStanza} restore", undef, undef, undef, $iExpectedExitStatus, $strComment); - if (!defined($iExpectedExitStatus)) + if (!defined($iExpectedExitStatus) && (!defined($bCompare) || $bCompare)) { BackRestTestBackup_RestoreCompare($oFile, $strStanza, $bRemote, $strBackup, $bSynthetic, $oExpectedManifestRef); } @@ -1288,11 +1318,27 @@ sub BackRestTestBackup_RestoreCompare } + # Generate the tablespace map for real backups + my %oTablespaceMap; + # ${$oTablespaceMapRef}{oid}{$strName}{name} = $strName; + + if (!$bSynthetic && defined(${$oExpectedManifestRef}{'backup:tablespace'})) + { + foreach my $strTablespaceName (keys(${$oExpectedManifestRef}{'backup:tablespace'})) + { + my $strTablespaceOid = ${$oExpectedManifestRef}{'backup:tablespace'}{$strTablespaceName}{link}; + # + # confess "GOT HERE - $strTablespaceOid, $strTablespaceName"; + + $oTablespaceMap{oid}{$strTablespaceOid}{name} = $strTablespaceName; + } + } + # Generate the actual manifest my $oActualManifest = new BackRest::Manifest("${strTestPath}/actual.manifest", false); my $oTablespaceMapRef = undef; - $oActualManifest->build($oFile, ${$oExpectedManifestRef}{'backup:path'}{'base'}, $oLastManifest, true, undef); + $oActualManifest->build($oFile, ${$oExpectedManifestRef}{'backup:path'}{'base'}, $oLastManifest, $bSynthetic, \%oTablespaceMap); # Generate checksums for all files if required # Also fudge size if this is a synthetic test - sizes may change during backup. @@ -1303,17 +1349,20 @@ sub BackRestTestBackup_RestoreCompare # Create all paths in the manifest that do not already exist my $strSection = "${strSectionPathKey}:file"; - foreach my $strName ($oActualManifest->keys($strSection)) + if ($oActualManifest->test($strSection)) { - if (!$bSynthetic) + foreach my $strName ($oActualManifest->keys($strSection)) { - $oActualManifest->set($strSection, $strName, 'size', ${$oExpectedManifestRef}{$strSection}{$strName}{size}); - } + if (!$bSynthetic) + { + $oActualManifest->set($strSection, $strName, 'size', ${$oExpectedManifestRef}{$strSection}{$strName}{size}); + } - if ($oActualManifest->get($strSection, $strName, 'size') != 0) - { - $oActualManifest->set($strSection, $strName, 'checksum', - $oFile->hash(PATH_DB_ABSOLUTE, "${strSectionPath}/${strName}")); + if ($oActualManifest->get($strSection, $strName, 'size') != 0) + { + $oActualManifest->set($strSection, $strName, 'checksum', + $oFile->hash(PATH_DB_ABSOLUTE, "${strSectionPath}/${strName}")); + } } } } @@ -2008,7 +2057,7 @@ sub BackRestTestBackup_Test undef, undef, undef, undef, undef, undef, 'add and delete files'); - # Incr backup - add a tablespace + # Incr backup #----------------------------------------------------------------------------------------------------------------------- $strType = 'incr'; BackRestTestBackup_ManifestReference(\%oManifest, $strFullBackup); @@ -2073,7 +2122,7 @@ sub BackRestTestBackup_Test 'cannot resume - disabled', TEST_BACKUP_NORESUME, undef, undef, '--no-resume'); - # Restore - + # Restore #----------------------------------------------------------------------------------------------------------------------- $bDelta = false; @@ -2194,6 +2243,15 @@ sub BackRestTestBackup_Test 'cafac3c59553f2cfde41ce2e62e7662295f108c0', $lTime); $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, 'add files'); + + # Restore + #----------------------------------------------------------------------------------------------------------------------- + $bDelta = true; + + BackRestTestBackup_Restore($oFile, $strBackup, $strStanza, $bRemote, undef, undef, $bDelta, $bForce, + undef, undef, undef, undef, undef, undef, + 'no tablespace remap', undef, '--no-tablespace', false); + } } } @@ -2330,6 +2388,10 @@ sub BackRestTestBackup_Test $strTestPoint = TEST_MANIFEST_BUILD; $strComment = 'update during backup'; + BackRestTestBackup_PgExecuteNoTrans("create tablespace ts1 location '" . + BackRestTestCommon_DbTablespacePathGet(1) . "'"); + BackRestTestBackup_PgExecute("alter table test set tablespace ts1", true); + BackRestTestBackup_PgExecute("create table test_remove (id int)", false); BackRestTestBackup_PgSwitchXlog(); BackRestTestBackup_PgExecute("update test set message = '$strDefaultMessage'", false); @@ -2403,6 +2465,8 @@ sub BackRestTestBackup_Test # Drop and recreate db path BackRestTestCommon_PathRemove(BackRestTestCommon_DbCommonPathGet()); BackRestTestCommon_PathCreate(BackRestTestCommon_DbCommonPathGet()); + BackRestTestCommon_PathRemove(BackRestTestCommon_DbTablespacePathGet(1)); + BackRestTestCommon_PathCreate(BackRestTestCommon_DbTablespacePathGet(1)); # Now the restore should work $strComment = undef; @@ -2434,7 +2498,7 @@ sub BackRestTestBackup_Test BackRestTestBackup_Restore($oFile, $strIncrBackup, $strStanza, $bRemote, undef, undef, $bDelta, $bForce, $strType, $strTarget, $bTargetExclusive, $bTargetResume, $strTargetTimeline, - $oRecoveryHashRef, $strComment, $iExpectedExitStatus); + $oRecoveryHashRef, $strComment, $iExpectedExitStatus, '--no-tablespace', false); # Save recovery file to test so we can use it in the next test $oFile->copy(PATH_ABSOLUTE, BackRestTestCommon_DbCommonPathGet() . '/recovery.conf', diff --git a/test/log/backup-synthetic-001.log b/test/log/backup-synthetic-001.log index f3bf0ee06..108f87575 100644 --- a/test/log/backup-synthetic-001.log +++ b/test/log/backup-synthetic-001.log @@ -96,6 +96,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -106,6 +107,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -356,6 +359,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -383,6 +389,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -662,3 +670,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-002.log b/test/log/backup-synthetic-002.log index d62eebcb6..996273043 100644 --- a/test/log/backup-synthetic-002.log +++ b/test/log/backup-synthetic-002.log @@ -96,6 +96,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -106,6 +107,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -407,6 +410,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -434,6 +440,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -801,3 +809,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-003.log b/test/log/backup-synthetic-003.log index 32072626c..e752b5de4 100644 --- a/test/log/backup-synthetic-003.log +++ b/test/log/backup-synthetic-003.log @@ -98,6 +98,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -108,6 +109,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -359,6 +362,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -386,6 +392,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -665,3 +673,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-004.log b/test/log/backup-synthetic-004.log index 36cc5e6e4..1c33bede0 100644 --- a/test/log/backup-synthetic-004.log +++ b/test/log/backup-synthetic-004.log @@ -98,6 +98,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -108,6 +109,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -410,6 +413,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -437,6 +443,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -804,3 +812,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-005.log b/test/log/backup-synthetic-005.log index 6f7eb8956..275e30fc8 100644 --- a/test/log/backup-synthetic-005.log +++ b/test/log/backup-synthetic-005.log @@ -96,6 +96,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -106,6 +107,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -356,6 +359,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -383,6 +389,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -662,3 +670,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-006.log b/test/log/backup-synthetic-006.log index 0a96a57fa..181e9ff00 100644 --- a/test/log/backup-synthetic-006.log +++ b/test/log/backup-synthetic-006.log @@ -96,6 +96,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -106,6 +107,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -407,6 +410,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -434,6 +440,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -801,3 +809,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-007.log b/test/log/backup-synthetic-007.log index b2aef2b90..00e92192f 100644 --- a/test/log/backup-synthetic-007.log +++ b/test/log/backup-synthetic-007.log @@ -98,6 +98,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -108,6 +109,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -359,6 +362,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -386,6 +392,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -665,3 +673,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-008.log b/test/log/backup-synthetic-008.log index 409535a7a..1921d82b0 100644 --- a/test/log/backup-synthetic-008.log +++ b/test/log/backup-synthetic-008.log @@ -98,6 +98,7 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 @@ -108,6 +109,8 @@ restore delta, backup '[BACKUP_LABEL]' (add and delete files) DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf + INFO: wrote [TEST_PATH]/db/common/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add tablespace 1) @@ -410,6 +413,9 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/1, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: File->link_create: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 to db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, hard = false, relative = false, destination_path_create = true + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] @@ -437,6 +443,8 @@ restore, backup '[BACKUP_LABEL]', remap (remap all paths) DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) @@ -804,3 +812,58 @@ diff backup (add files) DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads + +restore delta, backup '[BACKUP_LABEL]' (no tablespace remap) +> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP_LABEL] --no-tablespace --stanza=db restore +------------------------------------------------------------------------------------------------------------------------------------ + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid + INFO: Restoring backup set [BACKUP_LABEL] + DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL] + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/backup.manifest to local db:absolute:[TEST_PATH]/db/common-2/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common-2/backup.manifest, destination_path_create = false + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/backup.manifest + INFO: remapping tablespace 2 to [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2 + INFO: removing file/link [TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: checking/cleaning db path [TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + INFO: 1 file(s) removed during cleanup + INFO: 1 link(s) removed during cleanup + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2, mode 0700 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 + DEBUG: starting restore in main process + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION + DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt + DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP_LABEL]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION_TIME], mode = 0600, user = [USER], group = [GROUP] + DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER] = staff + DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf + INFO: wrote [TEST_PATH]/db/common-2/recovery.conf + INFO: restore complete + DEBUG: safe exit called, terminating threads