1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-17 01:12:23 +02:00

Closed #131: Offline backups make expire command fail.

This commit is contained in:
David Steele
2016-01-15 23:37:17 -05:00
parent fce7261536
commit 65cce69dcc
13 changed files with 125 additions and 1001 deletions

View File

@ -174,7 +174,7 @@ eval
############################################################################################################################
if (optionRemoteTypeTest(BACKUP))
{
confess &log(ERROR, 'backup and expire commands must run on the backup host');
confess &log(ERROR, 'backup and expire commands must run on the backup host', ERROR_HOST_INVALID);
}
############################################################################################################################

View File

@ -112,6 +112,8 @@ use constant ERROR_ABSOLUTE_LINK_EXPECTED => ERROR_MIN
push @EXPORT, qw(ERROR_ABSOLUTE_LINK_EXPECTED);
use constant ERROR_TABLESPACE_IN_PGDATA => ERROR_MINIMUM + 46;
push @EXPORT, qw(ERROR_TABLESPACE_IN_PGDATA);
use constant ERROR_HOST_INVALID => ERROR_MINIMUM + 47;
push @EXPORT, qw(ERROR_HOST_INVALID);
use constant ERROR_INVALID_VALUE => ERROR_MAXIMUM - 1;
push @EXPORT, qw(ERROR_INVALID_VALUE);

View File

@ -280,12 +280,10 @@ sub process
# backup even though they are also in the pg_xlog directory (since they have been copied more than once).
my $oManifest = new BackRest::Manifest($oFile->pathGet(PATH_BACKUP_CLUSTER) .
"/${strArchiveRetentionBackup}/backup.manifest");
my $strArchiveLast = $oManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_START);
if (!defined($strArchiveLast))
if ($oManifest->test(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_START))
{
confess &log(ERROR, "invalid archive location retrieved ${strArchiveRetentionBackup}");
}
my $strArchiveLast = $oManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_START);
&log(INFO, "archive retention from backup ${strArchiveRetentionBackup}, start = ${strArchiveLast}");
@ -355,6 +353,7 @@ sub process
}
}
}
}
# Return from function and log return values if any
return logDebugReturn

View File

@ -1550,16 +1550,20 @@ push @EXPORT, qw(BackRestTestBackup_Expire);
sub BackRestTestBackup_Expire
{
my $strStanza = shift;
my $strComment = shift;
my $oFile = shift;
my $stryBackupExpectedRef = shift;
my $stryArchiveExpectedRef = shift;
my $iExpireFull = shift;
my $iExpireDiff = shift;
my $strExpireArchiveType = shift;
my $iExpireArchive = shift;
$strComment = 'expire' .
(defined($iExpireFull) ? " full=$iExpireFull" : '') .
(defined($iExpireDiff) ? " diff=$iExpireDiff" : '') .
(defined($strComment) ? " (${strComment})" : '');
&log(INFO, " ${strComment}");
my $strCommand = BackRestTestCommon_CommandMainGet() . ' --config=' . BackRestTestCommon_DbPathGet() .
"/pg_backrest.conf --stanza=${strStanza} expire";
"/pg_backrest.conf --stanza=${strStanza} expire --log-level-console=info";
if (defined($iExpireFull))
{
@ -1571,37 +1575,8 @@ sub BackRestTestBackup_Expire
$strCommand .= ' --retention-diff=' . $iExpireDiff;
}
if (defined($strExpireArchiveType))
{
$strCommand .= ' --retention-archive-type=' . $strExpireArchiveType .
' --retention-archive=' . $iExpireArchive;
}
executeTest($strCommand);
# Check that the correct backups were expired
my @stryBackupActual = $oFile->list(PATH_BACKUP_CLUSTER);
if (join(",", @stryBackupActual) ne join(",", @{$stryBackupExpectedRef}))
{
confess "expected backup list:\n " . join("\n ", @{$stryBackupExpectedRef}) .
"\n\nbut actual was:\n " . join("\n ", @stryBackupActual) . "\n";
}
# Check that the correct archive logs were expired
my @stryArchiveActual = $oFile->list(PATH_BACKUP_ARCHIVE, BackRestTestCommon_DbVersion() . '-1/0000000100000000');
if (join(",", @stryArchiveActual) ne join(",", @{$stryArchiveExpectedRef}))
{
confess "expected archive list:\n " . join("\n ", @{$stryArchiveExpectedRef}) .
"\n\nbut actual was:\n " . join("\n ", @stryArchiveActual) . "\n";
}
if (defined($oBackupLogTest))
{
$oBackupLogTest->supplementalAdd(BackRestTestCommon_RepoPathGet() .
"/backup/${strStanza}/backup.info");
}
executeTest($strCommand, {oLogTest => $oBackupLogTest,
iExpectedExitStatus => $bBackupRemote ? ERROR_HOST_INVALID : undef});
}
1;

View File

@ -1310,6 +1310,10 @@ sub BackRestTestBackup_Test
$strFullBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, \%oManifest);
# Call expire
#-----------------------------------------------------------------------------------------------------------------------
BackRestTestBackup_Expire($strStanza, undef, $oFile, 1);
# Diff Backup
#-----------------------------------------------------------------------------------------------------------------------
$strType = 'diff';

View File

@ -2855,6 +2855,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --no-compress --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/backrest --retention-full=1 --stanza=db
INFO: remove expired full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4]
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------
@ -2871,7 +2877,7 @@ DEBUG: Backup->typeFind(): strBackupClusterPath = [TEST_PATH]/backrest/backu
DEBUG: BackupCommon::backupRegExpGet(): bDifferential = <false>, bFull = true, bIncremental = <false>
DEBUG: BackupCommon::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F$
DEBUG: File->list(): bIgnoreMissing = <false>, strExpression = ^[0-9]{8}\-[0-9]{6}F$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3], [BACKUP-FULL-2])
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3])
DEBUG: Backup->typeFind=>: strLabel = [BACKUP-FULL-3]
INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1]
DEBUG: Db->info(): oFile = [object], strDbPath = [TEST_PATH]/db/common-2
@ -3015,13 +3021,6 @@ backrest-format=4
backrest-version="[VERSION-1]"
[backup:current]
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false}
@ -3164,7 +3163,7 @@ DEBUG: Info->backupList(): oFile = [object], strStanza = db_empty
DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup/db_empty
stanza db
status: ok
oldest backup label: [BACKUP-FULL-2]
oldest backup label: [BACKUP-FULL-3]
oldest backup timestamp: [TIMESTAMP-STR]
latest backup label: [BACKUP-DIFF-5]
latest backup timestamp: [TIMESTAMP-STR]
@ -3190,225 +3189,6 @@ DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup
[
{
"backup" : [
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-FULL-2]",
"prior" : null,
"reference" : null,
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "full"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-2]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-3]",
"prior" : "[BACKUP-DIFF-2]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-4]",
"prior" : "[BACKUP-INCR-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]",
"[BACKUP-INCR-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-3]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-5]",
"prior" : "[BACKUP-DIFF-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-4]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,

View File

@ -2863,6 +2863,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --no-compress --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/backrest --retention-full=1 --stanza=db
INFO: remove expired full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4]
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------
@ -2879,7 +2885,7 @@ DEBUG: Backup->typeFind(): strBackupClusterPath = [TEST_PATH]/backrest/backu
DEBUG: BackupCommon::backupRegExpGet(): bDifferential = <false>, bFull = true, bIncremental = <false>
DEBUG: BackupCommon::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F$
DEBUG: File->list(): bIgnoreMissing = <false>, strExpression = ^[0-9]{8}\-[0-9]{6}F$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3], [BACKUP-FULL-2])
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3])
DEBUG: Backup->typeFind=>: strLabel = [BACKUP-FULL-3]
INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1]
DEBUG: Db->info(): oFile = [object], strDbPath = [TEST_PATH]/db/common-2
@ -3039,13 +3045,6 @@ backrest-format=4
backrest-version="[VERSION-1]"
[backup:current]
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false}
@ -3188,7 +3187,7 @@ DEBUG: Info->backupList(): oFile = [object], strStanza = db_empty
DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup/db_empty
stanza db
status: ok
oldest backup label: [BACKUP-FULL-2]
oldest backup label: [BACKUP-FULL-3]
oldest backup timestamp: [TIMESTAMP-STR]
latest backup label: [BACKUP-DIFF-5]
latest backup timestamp: [TIMESTAMP-STR]
@ -3214,225 +3213,6 @@ DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup
[
{
"backup" : [
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-FULL-2]",
"prior" : null,
"reference" : null,
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "full"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-2]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-3]",
"prior" : "[BACKUP-DIFF-2]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-4]",
"prior" : "[BACKUP-INCR-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]",
"[BACKUP-INCR-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-3]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-5]",
"prior" : "[BACKUP-DIFF-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-4]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,

View File

@ -2732,6 +2732,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/backrest --retention-full=1 --stanza=db
INFO: remove expired full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4]
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------
@ -2748,7 +2754,7 @@ DEBUG: Backup->typeFind(): strBackupClusterPath = [TEST_PATH]/backrest/backu
DEBUG: BackupCommon::backupRegExpGet(): bDifferential = <false>, bFull = true, bIncremental = <false>
DEBUG: BackupCommon::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F$
DEBUG: File->list(): bIgnoreMissing = <false>, strExpression = ^[0-9]{8}\-[0-9]{6}F$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3], [BACKUP-FULL-2])
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3])
DEBUG: Backup->typeFind=>: strLabel = [BACKUP-FULL-3]
INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1]
DEBUG: Db->info(): oFile = [object], strDbPath = [TEST_PATH]/db/common-2
@ -2891,13 +2897,6 @@ backrest-format=4
backrest-version="[VERSION-1]"
[backup:current]
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false}
@ -3040,7 +3039,7 @@ DEBUG: Info->backupList(): oFile = [object], strStanza = db_empty
DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup/db_empty
stanza db
status: ok
oldest backup label: [BACKUP-FULL-2]
oldest backup label: [BACKUP-FULL-3]
oldest backup timestamp: [TIMESTAMP-STR]
latest backup label: [BACKUP-DIFF-5]
latest backup timestamp: [TIMESTAMP-STR]
@ -3066,225 +3065,6 @@ DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup
[
{
"backup" : [
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-FULL-2]",
"prior" : null,
"reference" : null,
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "full"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-2]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-3]",
"prior" : "[BACKUP-DIFF-2]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-4]",
"prior" : "[BACKUP-INCR-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]",
"[BACKUP-INCR-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-3]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-5]",
"prior" : "[BACKUP-DIFF-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-4]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,

View File

@ -2851,6 +2851,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/backrest --retention-full=1 --stanza=db
INFO: remove expired full backup set: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3], [BACKUP-INCR-4], [BACKUP-DIFF-3], [BACKUP-INCR-5], [BACKUP-DIFF-4]
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------
@ -2867,7 +2873,7 @@ DEBUG: Backup->typeFind(): strBackupClusterPath = [TEST_PATH]/backrest/backu
DEBUG: BackupCommon::backupRegExpGet(): bDifferential = <false>, bFull = true, bIncremental = <false>
DEBUG: BackupCommon::backupRegExpGet=>: strRegExp = ^[0-9]{8}\-[0-9]{6}F$
DEBUG: File->list(): bIgnoreMissing = <false>, strExpression = ^[0-9]{8}\-[0-9]{6}F$, strPath = [undef], strPathType = backup:cluster, strSortOrder = reverse
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3], [BACKUP-FULL-2])
DEBUG: File->list=>: stryFileList = ([BACKUP-FULL-3])
DEBUG: Backup->typeFind=>: strLabel = [BACKUP-FULL-3]
INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1]
DEBUG: Db->info(): oFile = [object], strDbPath = [TEST_PATH]/db/common-2
@ -3026,13 +3032,6 @@ backrest-format=4
backrest-version="[VERSION-1]"
[backup:current]
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"[VERSION-1]","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":[SIZE],"backup-info-repo-size-delta":[DELTA],"backup-info-size":[SIZE],"backup-info-size-delta":[DELTA],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false}
@ -3175,7 +3174,7 @@ DEBUG: Info->backupList(): oFile = [object], strStanza = db_empty
DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup/db_empty
stanza db
status: ok
oldest backup label: [BACKUP-FULL-2]
oldest backup label: [BACKUP-FULL-3]
oldest backup timestamp: [TIMESTAMP-STR]
latest backup label: [BACKUP-DIFF-5]
latest backup timestamp: [TIMESTAMP-STR]
@ -3201,225 +3200,6 @@ DEBUG: BackupInfo->new(): strBackupClusterPath = [TEST_PATH]/backrest/backup
[
{
"backup" : [
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-FULL-2]",
"prior" : null,
"reference" : null,
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "full"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-2]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-3]",
"prior" : "[BACKUP-DIFF-2]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-4]",
"prior" : "[BACKUP-INCR-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-2]",
"[BACKUP-INCR-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-3]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-INCR-5]",
"prior" : "[BACKUP-DIFF-3]",
"reference" : [
"[BACKUP-FULL-2]",
"[BACKUP-DIFF-3]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "incr"
},
{
"archive" : {
"start" : null,
"stop" : null
},
"backrest" : {
"format" : 4,
"version" : "[VERSION-1]"
},
"database" : {
"id" : 1
},
"info" : {
"delta" : [DELTA],
"repository" : {
"delta" : [DELTA],
"size" : [SIZE]
},
"size" : [SIZE]
},
"label" : "[BACKUP-DIFF-4]",
"prior" : "[BACKUP-FULL-2]",
"reference" : [
"[BACKUP-FULL-2]"
],
"timestamp" : {
"start" : [TIMESTAMP],
"stop" : [TIMESTAMP]
},
"type" : "diff"
},
{
"archive" : {
"start" : null,

View File

@ -3320,6 +3320,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --no-compress --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/local --retention-full=1 --stanza=db
ERROR: [147]: backup and expire commands must run on the backup host
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------

View File

@ -3200,6 +3200,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --no-compress --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/local --retention-full=1 --stanza=db
ERROR: [147]: backup and expire commands must run on the backup host
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------

View File

@ -3057,6 +3057,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/local --retention-full=1 --stanza=db
ERROR: [147]: backup and expire commands must run on the backup host
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------

View File

@ -3176,6 +3176,12 @@ db-version="9.3"
[db:history]
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"}
> [BACKREST_BIN] --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --log-level-console=info --retention-full=1
------------------------------------------------------------------------------------------------------------------------------------
INFO: expire start: --config=[TEST_PATH]/db/pg_backrest.conf --log-level-console=info --log-level-file=trace --repo-path=[TEST_PATH]/local --retention-full=1 --stanza=db
ERROR: [147]: backup and expire commands must run on the backup host
INFO: expire stop
diff backup (add files)
> [BACKREST_BIN] --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup
------------------------------------------------------------------------------------------------------------------------------------