1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-01-18 04:58:51 +02:00

Log backup file total and restore size/file total.

The backup size was a bit off because it did not include any files (e.g. backup_label, WAL files) that were added to the manifest after the main copy. To fix this move the log message to the very end of the backup.

Add size/file total log message to restore since it did not exist before.
This commit is contained in:
David Steele 2021-08-11 13:39:36 -04:00 committed by GitHub
parent 6ab18dc0fa
commit a0bdfa436c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 83 additions and 48 deletions

View File

@ -134,6 +134,17 @@
<p>Loop while waiting for checkpoint LSN to reach replay LSN.</p>
</release-item>
<release-item>
<github-pull-request id="1489"/>
<release-item-contributor-list>
<release-item-contributor id="david.steele"/>
<release-item-reviewer id="cynthia.shang"/>
</release-item-contributor-list>
<p>Log <cmd>backup</cmd> file total and <cmd>restore</cmd> size/file total.</p>
</release-item>
</release-improvement-list>
<release-development-list>

View File

@ -1479,7 +1479,7 @@ static ProtocolParallelJob *backupJobCallback(void *data, unsigned int clientIdx
FUNCTION_TEST_RETURN(result);
}
static void
static uint64_t
backupProcess(BackupData *backupData, Manifest *manifest, const String *lsnStart, const String *cipherPassBackup)
{
FUNCTION_LOG_BEGIN(logLevelDebug);
@ -1491,6 +1491,8 @@ backupProcess(BackupData *backupData, Manifest *manifest, const String *lsnStart
ASSERT(manifest != NULL);
uint64_t sizeTotal = 0;
MEM_CONTEXT_TEMP_BEGIN()
{
// Get backup info
@ -1552,7 +1554,7 @@ backupProcess(BackupData *backupData, Manifest *manifest, const String *lsnStart
.lsnStart = cfgOptionBool(cfgOptOnline) ? pgLsnFromStr(lsnStart) : 0xFFFFFFFFFFFFFFFF,
};
uint64_t sizeTotal = backupProcessQueue(manifest, &jobData.queueList);
sizeTotal = backupProcessQueue(manifest, &jobData.queueList);
// Create the parallel executor
ProtocolParallel *parallelExec = protocolParallelNew(
@ -1673,12 +1675,10 @@ backupProcess(BackupData *backupData, Manifest *manifest, const String *lsnStart
storagePathSyncP(storageRepoWrite(), path);
}
}
LOG_INFO_FMT("%s backup size = %s", strZ(strIdToStr(backupType)), strZ(strSizeFormat(sizeTotal)));
}
MEM_CONTEXT_TEMP_END();
FUNCTION_LOG_RETURN_VOID();
FUNCTION_LOG_RETURN(UINT64, sizeTotal);
}
/***********************************************************************************************************************************
@ -1962,7 +1962,7 @@ cmdBackup(void)
backupManifestSaveCopy(manifest, cipherPassBackup);
// Process the backup manifest
backupProcess(backupData, manifest, backupStartResult.lsn, cipherPassBackup);
uint64_t backupSizeTotal = backupProcess(backupData, manifest, backupStartResult.lsn, cipherPassBackup);
// Stop the backup
BackupStopResult backupStopResult = backupStop(backupData, manifest);
@ -1990,6 +1990,11 @@ cmdBackup(void)
// Complete the backup
LOG_INFO_FMT("new backup label = %s", strZ(manifestData(manifest)->backupLabel));
backupComplete(infoBackup, manifest);
// Backup info
LOG_INFO_FMT(
"%s backup size = %s, file total = %u", strZ(strIdToStr(manifestData(manifest)->backupType)),
strZ(strSizeFormat(backupSizeTotal)), manifestFileTotal(manifest));
}
MEM_CONTEXT_TEMP_END();

View File

@ -2337,6 +2337,10 @@ cmdRestore(void)
// Sync global path
LOG_DETAIL_FMT("sync path '%s'", strZ(storagePathP(storagePg(), PG_PATH_GLOBAL_STR)));
storagePathSyncP(storagePgWrite(), PG_PATH_GLOBAL_STR);
// Restore info
LOG_INFO_FMT(
"restore size = %s, file total = %u", strZ(strSizeFormat(sizeRestored)), manifestFileTotal(jobData.manifest));
}
MEM_CONTEXT_TEMP_END();

View File

@ -79,8 +79,8 @@ P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/base/16384/PG_VERSION (3B
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/base/1/PG_VERSION (3B, 99%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/special-!_.*'()&!@;:+,? (0B, 100%)
P00 INFO: full backup size = 192KB
P00 INFO: new backup label = [BACKUP-FULL-1]
P00 INFO: full backup size = 192KB, file total = 15
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --repo1-type=cifs --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -323,8 +323,8 @@ P01 DETAIL: checksum resumed file [TEST_PATH]/db-primary/db/base/base/1/PG_VERSI
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/PG_VERSION (3B, 100%) checksum 184473f470864e067ee3a22e64b47b0a1c356f29
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/zero_from_start (0B, 100%)
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/special-!_.*'()&!@;:+,? (0B, 100%)
P00 INFO: full backup size = 192KB
P00 INFO: new backup label = [BACKUP-FULL-2]
P00 INFO: full backup size = 192KB, file total = 18
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -563,6 +563,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_subtrans'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_tblspc'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/global'
P00 INFO: restore size = 192KB, file total = 18
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base/recovery.conf
@ -624,6 +625,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_subtrans'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_tblspc'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/global'
P00 INFO: restore size = 192KB, file total = 18
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base/recovery.conf
@ -685,6 +687,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_subtrans'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_tblspc'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/global'
P00 INFO: restore size = 192KB, file total = 18
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base/recovery.conf
@ -749,6 +752,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_subtrans'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/pg_tblspc'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base/global'
P00 INFO: restore size = 192KB, file total = 18
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base/recovery.conf
@ -786,8 +790,8 @@ P00 DETAIL: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/postgresql.conf to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/special-!_.*'()&!@;:+,? to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zero_from_start to [BACKUP-FULL-2]
P00 INFO: incr backup size = 22B
P00 INFO: new backup label = [BACKUP-INCR-1]
P00 INFO: incr backup size = 22B, file total = 21
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -1001,8 +1005,8 @@ P00 DETAIL: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/postgresql.conf to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/special-!_.*'()&!@;:+,? to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zero_from_start to [BACKUP-FULL-2]
P00 INFO: incr backup size = 192KB
P00 INFO: new backup label = [BACKUP-INCR-2]
P00 INFO: incr backup size = 192KB, file total = 22
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -1219,8 +1223,8 @@ P00 DETAIL: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/postgresql.conf to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/special-!_.*'()&!@;:+,? to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zero_from_start to [BACKUP-FULL-2]
P00 INFO: diff backup size = 192KB
P00 INFO: new backup label = [BACKUP-DIFF-1]
P00 INFO: diff backup size = 192KB, file total = 21
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -1466,6 +1470,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/global'
P00 INFO: restore size = 192KB, file total = 21
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base-2/recovery.conf
@ -1535,6 +1540,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/global'
P00 INFO: restore size = 192KB, file total = 21
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base-2/recovery.conf
@ -1573,8 +1579,8 @@ P00 DETAIL: reference pg_data/special-!_.*'()&!@;:+,? to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zero_from_start to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zerosize.txt to [BACKUP-DIFF-1]
P00 DETAIL: reference pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt to [BACKUP-DIFF-1]
P00 INFO: incr backup size = 13B
P00 INFO: new backup label = [BACKUP-INCR-3]
P00 INFO: incr backup size = 13B, file total = 22
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -1793,8 +1799,8 @@ P00 DETAIL: reference pg_data/zero_from_start to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zerosize.txt to [BACKUP-DIFF-1]
P00 DETAIL: reference pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt to [BACKUP-DIFF-1]
P00 DETAIL: reference pg_tblspc/2/[TS_PATH-1]/32768/tablespace2b.txt to [BACKUP-INCR-3]
P00 INFO: incr backup size = 176KB
P00 INFO: new backup label = [BACKUP-INCR-4]
P00 INFO: incr backup size = 176KB, file total = 22
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -2010,8 +2016,8 @@ P00 DETAIL: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/postgresql.conf to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/special-!_.*'()&!@;:+,? to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zero_from_start to [BACKUP-FULL-2]
P00 INFO: diff backup size = 176KB
P00 INFO: new backup label = [BACKUP-DIFF-2]
P00 INFO: diff backup size = 176KB, file total = 22
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -2227,8 +2233,8 @@ P00 DETAIL: reference pg_data/pg_stat/global.stat to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/postgresql.conf to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/special-!_.*'()&!@;:+,? to [BACKUP-FULL-2]
P00 DETAIL: reference pg_data/zero_from_start to [BACKUP-FULL-2]
P00 INFO: diff backup size = 176KB
P00 INFO: new backup label = [BACKUP-DIFF-3]
P00 INFO: diff backup size = 176KB, file total = 20
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -2426,8 +2432,8 @@ P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base-2/zero_from_start (0B, 99
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base-2/special-!_.*'()&!@;:+,? (0B, 99%)
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578
P00 INFO: full backup size = 176KB
P00 INFO: new backup label = [BACKUP-FULL-3]
P00 INFO: full backup size = 176KB, file total = 21
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -2642,8 +2648,8 @@ P00 DETAIL: hardlink pg_data/zero_from_start to [BACKUP-FULL-3]
P00 DETAIL: hardlink pg_data/zerosize.txt to [BACKUP-FULL-3]
P00 DETAIL: hardlink pg_tblspc/2/[TS_PATH-1]/32768/tablespace2.txt to [BACKUP-FULL-3]
P00 DETAIL: hardlink pg_tblspc/2/[TS_PATH-1]/32768/tablespace2c.txt to [BACKUP-FULL-3]
P00 INFO: diff backup size = 9B
P00 INFO: new backup label = [BACKUP-DIFF-4]
P00 INFO: diff backup size = 9B, file total = 22
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired
@ -2869,6 +2875,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/global'
P00 INFO: restore size = 176KB, file total = 22
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base-2/recovery.conf
@ -2934,6 +2941,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]'
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/pg_tblspc/2/[TS_PATH-1]/32768'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/global'
P00 INFO: restore size = 176KB, file total = 22
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base-2/recovery.conf
@ -3023,6 +3031,7 @@ P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/base/pg_tblspc/2/[TS_PAT
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/base/pg_tblspc/2/[TS_PATH-1]/32768'
P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)
P00 DETAIL: sync path '[TEST_PATH]/db-primary/db/base-2/base/global'
P00 INFO: restore size = 176KB, file total = 22
P00 INFO: restore command end: completed successfully
+ supplemental file: [TEST_PATH]/db-primary/db/base-2/base/recovery.conf
@ -3056,8 +3065,8 @@ P00 WARN: option 'repo1-retention-full' is not set for 'repo1-retention-full-t
HINT: to retain full backups indefinitely (without warning), set option 'repo1-retention-full' to the maximum.
P00 WARN: option backup-standby is enabled but backup is offline - backups will be performed from the primary
P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1]
P00 INFO: diff backup size = 9B
P00 INFO: new backup label = [BACKUP-DIFF-5]
P00 INFO: diff backup size = 9B, file total = 22
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=info --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-path=[TEST_PATH]/db-primary/repo --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired

View File

@ -2448,8 +2448,8 @@ P00 WARN: option 'repo1-retention-full' is not set for 'repo1-retention-full-t
HINT: to retain full backups indefinitely (without warning), set option 'repo1-retention-full' to the maximum.
P00 WARN: option backup-standby is enabled but backup is offline - backups will be performed from the primary
P00 INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1]
P00 INFO: diff backup size = 9B
P00 INFO: new backup label = [BACKUP-DIFF-5]
P00 INFO: diff backup size = 9B, file total = 22
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/backup/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=info --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-s3-bucket=pgbackrest-dev --repo1-s3-endpoint=s3.amazonaws.com --repo1-s3-key=<redacted> --repo1-s3-key-secret=<redacted> --repo1-s3-region=us-east-1 --no-repo1-storage-verify-tls --repo1-type=s3 --stanza=db
P00 INFO: option 'repo1-retention-archive' is not set - archive logs will not be expired

View File

@ -320,8 +320,8 @@ P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/pg_xlog/00000001000000010
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/global/pg_control (8KB, 100%) checksum 4c77c900f7af0d9ab13fa9982051a42e0b637f6c
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000002.ready (0B, 100%)
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000001.ready (0B, 100%)
P00 INFO: full backup size = 48MB
P00 INFO: new backup label = [BACKUP-FULL-1]
P00 INFO: full backup size = 48MB, file total = 6
P00 DETAIL: statistics: STATISTICS
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-gcs-bucket=gcsbucket --repo1-gcs-endpoint=gcs:4443 --repo1-gcs-key=<redacted> --repo1-gcs-key-type=token --repo1-path=/ --repo1-retention-full=2 --no-repo1-storage-verify-tls --repo1-type=gcs --stanza=db
@ -478,8 +478,8 @@ P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/pg_xlog/00000001000000010
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/global/pg_control (8KB, 100%) checksum 4969435f3b36bfaa0f5a486bef97f1988a135520
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000002.ready (0B, 100%)
P01 DETAIL: backup file [TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000001.ready (0B, 100%)
P00 INFO: full backup size = 48MB
P00 INFO: new backup label = [BACKUP-FULL-2]
P00 INFO: full backup size = 48MB, file total = 6
P00 DETAIL: statistics: STATISTICS
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/db-primary/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/db-primary/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/db-primary/log --no-log-timestamp --repo1-gcs-bucket=gcsbucket --repo1-gcs-endpoint=gcs:4443 --repo1-gcs-key=<redacted> --repo1-gcs-key-type=token --repo1-path=/ --repo1-retention-full=2 --no-repo1-storage-verify-tls --repo1-type=gcs --stanza=db

View File

@ -316,8 +316,8 @@ P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/pg_xlog/000000
P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/global/pg_control (8KB, 100%) checksum 4c77c900f7af0d9ab13fa9982051a42e0b637f6c
P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000002.ready (0B, 100%)
P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000001.ready (0B, 100%)
P00 INFO: full backup size = 48MB
P00 INFO: new backup label = [BACKUP-FULL-1]
P00 INFO: full backup size = 48MB, file total = 6
P00 DETAIL: statistics: STATISTICS
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/backup/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-log-timestamp --repo1-azure-account=<redacted> --repo1-azure-container=azcontainer --repo1-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-retention-full=2 --repo1-storage-host=azure --no-repo1-storage-verify-tls --repo1-type=azure --stanza=db
@ -517,8 +517,8 @@ P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/pg_xlog/000000
P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/global/pg_control (8KB, 100%) checksum 4969435f3b36bfaa0f5a486bef97f1988a135520
P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000002.ready (0B, 100%)
P01 DETAIL: backup file db-primary:[TEST_PATH]/db-primary/db/base/pg_xlog/archive_status/000000010000000100000001.ready (0B, 100%)
P00 INFO: full backup size = 48MB
P00 INFO: new backup label = [BACKUP-FULL-2]
P00 INFO: full backup size = 48MB, file total = 6
P00 DETAIL: statistics: STATISTICS
P00 INFO: backup command end: completed successfully
P00 INFO: expire command begin [BACKREST-VERSION]: --buffer-size=[BUFFER-SIZE] --config=[TEST_PATH]/backup/pgbackrest.conf --exec-id=[EXEC-ID] --lock-path=[TEST_PATH]/backup/lock --log-level-console=detail --log-level-file=[LOG-LEVEL-FILE] --log-level-stderr=off --log-path=[TEST_PATH]/backup/log --no-log-timestamp --repo1-azure-account=<redacted> --repo1-azure-container=azcontainer --repo1-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/ --repo1-retention-full=2 --repo1-storage-host=azure --no-repo1-storage-verify-tls --repo1-type=azure --stanza=db

View File

@ -1402,8 +1402,8 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/global/pg_control (8KB, 99%%) checksum %s\n"
"P01 DETAIL: backup file " TEST_PATH "/pg1/postgresql.conf (11B, 100%%) checksum"
" e3db315c260e79211b7b52587123b7aa060f30ab\n"
"P00 INFO: full backup size = 8KB\n"
"P00 INFO: new backup label = [FULL-1]",
"P00 INFO: new backup label = [FULL-1]\n"
"P00 INFO: full backup size = 8KB, file total = 2",
TEST_64BIT() ?
(TEST_BIG_ENDIAN() ? "749acedef8f8d5fe35fc20c0375657f876ccc38e" : "21e2ddc99cdf4cfca272eee4f38891146092e358") :
"8bb70506d988a8698d9e8cf90736ada23634571b");
@ -1457,8 +1457,8 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/PG_VERSION (3B, 100%) checksum c8663c2525f44b6d9c687fbceb4aafc63ed8b451\n"
"P00 DETAIL: reference pg_data/global/pg_control to [FULL-1]\n"
"P00 DETAIL: reference pg_data/postgresql.conf to [FULL-1]\n"
"P00 INFO: incr backup size = 3B\n"
"P00 INFO: new backup label = [INCR-1]");
"P00 INFO: new backup label = [INCR-1]\n"
"P00 INFO: incr backup size = 3B, file total = 3");
// -------------------------------------------------------------------------------------------------------------------------
TEST_TITLE("offline diff backup to test prior backup must be full");
@ -1483,8 +1483,8 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/PG_VERSION (3B, 100%) checksum 6f1894088c578e4f0b9888e8e8a997d93cbbc0c5\n"
"P00 DETAIL: reference pg_data/global/pg_control to [FULL-1]\n"
"P00 DETAIL: reference pg_data/postgresql.conf to [FULL-1]\n"
"P00 INFO: diff backup size = 3B\n"
"P00 INFO: new backup label = [DIFF-2]");
"P00 INFO: new backup label = [DIFF-2]\n"
"P00 INFO: diff backup size = 3B, file total = 3");
// -------------------------------------------------------------------------------------------------------------------------
TEST_TITLE("only repo2 configured");
@ -1532,8 +1532,8 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/PG_VERSION (3B, 100%) checksum 6f1894088c578e4f0b9888e8e8a997d93cbbc0c5\n"
"P00 DETAIL: reference pg_data/global/pg_control to [FULL-1]\n"
"P00 DETAIL: reference pg_data/postgresql.conf to [FULL-1]\n"
"P00 INFO: diff backup size = 3B\n"
"P00 INFO: new backup label = [DIFF-3]");
"P00 INFO: new backup label = [DIFF-3]\n"
"P00 INFO: diff backup size = 3B, file total = 3");
// -------------------------------------------------------------------------------------------------------------------------
TEST_TITLE("multi-repo - specify repo");
@ -1552,8 +1552,8 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/PG_VERSION (3B, 100%) checksum c8663c2525f44b6d9c687fbceb4aafc63ed8b451\n"
"P00 DETAIL: reference pg_data/global/pg_control to [FULL-2]\n"
"P00 DETAIL: reference pg_data/postgresql.conf to [FULL-2]\n"
"P00 INFO: diff backup size = 3B\n"
"P00 INFO: new backup label = [DIFF-4]");
"P00 INFO: new backup label = [DIFF-4]\n"
"P00 INFO: diff backup size = 3B, file total = 3");
TEST_RESULT_UINT(
strLstSize(storageListP(storageRepoIdx(1), strNewFmt(STORAGE_PATH_BACKUP "/test1"))), backupCount + 1,
"new backup repo2");
@ -1664,10 +1664,10 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/global/pg_control (8KB, [PCT]) checksum [SHA1]\n"
"P01 DETAIL: backup file " TEST_PATH "/pg1/postgresql.conf (11B, [PCT]) checksum [SHA1]\n"
"P01 DETAIL: checksum resumed file " TEST_PATH "/pg1/PG_VERSION (3B, [PCT]) checksum [SHA1]\n"
"P00 INFO: full backup size = [SIZE]\n"
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive\n"
"P00 INFO: backup stop archive = 0000000105D944C000000000, lsn = 5d944c0/800000\n"
"P00 INFO: new backup label = 20191002-070640F");
"P00 INFO: new backup label = 20191002-070640F\n"
"P00 INFO: full backup size = [SIZE], file total = 3");
TEST_RESULT_STR_Z(
testBackupValidate(storageRepo(), STRDEF(STORAGE_REPO_BACKUP "/latest")),
@ -1823,12 +1823,12 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/not-in-resume (4B, [PCT]) checksum [SHA1]\n"
"P01 DETAIL: backup file " TEST_PATH "/pg1/PG_VERSION (3B, [PCT]) checksum [SHA1]\n"
"P01 DETAIL: backup file " TEST_PATH "/pg1/zero-size (0B, [PCT])\n"
"P00 INFO: full backup size = [SIZE]\n"
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive\n"
"P00 INFO: backup stop archive = 0000000105D95D3000000000, lsn = 5d95d30/800000\n"
"P00 INFO: check archive for segment(s) 0000000105D95D3000000000:0000000105D95D3000000000\n"
"P00 DETAIL: copy segment 0000000105D95D3000000000 to backup\n"
"P00 INFO: new backup label = 20191003-105320F");
"P00 INFO: new backup label = 20191003-105320F\n"
"P00 INFO: full backup size = [SIZE], file total = 8");
TEST_RESULT_STR_Z(
testBackupValidate(storageRepo(), STRDEF(STORAGE_REPO_BACKUP "/latest")),
@ -1983,11 +1983,11 @@ testRun(void)
"P00 DETAIL: hardlink pg_data/PG_VERSION to 20191003-105320F\n"
"P00 DETAIL: hardlink pg_data/global/pg_control to 20191003-105320F\n"
"P00 DETAIL: hardlink pg_data/postgresql.conf to 20191003-105320F\n"
"P00 INFO: diff backup size = [SIZE]\n"
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive\n"
"P00 INFO: backup stop archive = 0000000105D9759000000000, lsn = 5d97590/800000\n"
"P00 INFO: check archive for segment(s) 0000000105D9759000000000:0000000105D9759000000000\n"
"P00 INFO: new backup label = 20191003-105320F_20191004-144000D");
"P00 INFO: new backup label = 20191003-105320F_20191004-144000D\n"
"P00 INFO: diff backup size = [SIZE], file total = 5");
// Check repo directory
TEST_RESULT_STR_Z(
@ -2290,7 +2290,6 @@ testRun(void)
"P01 DETAIL: backup file " TEST_PATH "/pg1/postgresql.conf (11B, [PCT]) checksum [SHA1]\n"
"P01 DETAIL: backup file " TEST_PATH "/pg1/PG_VERSION (2B, [PCT]) checksum [SHA1]\n"
"P01 DETAIL: backup file " TEST_PATH "/pg1/pg_tblspc/32768/PG_11_201809051/1/5 (0B, [PCT])\n"
"P00 INFO: full backup size = [SIZE]\n"
"P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive\n"
"P00 INFO: backup stop archive = 0000000105DB5DE000000002, lsn = 5db5de0/280000\n"
"P00 DETAIL: wrote 'backup_label' file returned from pg_stop_backup()\n"
@ -2298,7 +2297,8 @@ testRun(void)
"P00 DETAIL: copy segment 0000000105DB5DE000000000 to backup\n"
"P00 DETAIL: copy segment 0000000105DB5DE000000001 to backup\n"
"P00 DETAIL: copy segment 0000000105DB5DE000000002 to backup\n"
"P00 INFO: new backup label = 20191027-181320F");
"P00 INFO: new backup label = 20191027-181320F\n"
"P00 INFO: full backup size = [SIZE], file total = 12");
TEST_RESULT_STR(
testBackupValidate(storageRepo(), STRDEF(STORAGE_REPO_BACKUP "/20191027-181320F")),
@ -2452,12 +2452,12 @@ testRun(void)
"P00 DETAIL: hardlink pg_data/global/pg_control to 20191027-181320F\n"
"P00 DETAIL: hardlink pg_data/postgresql.conf to 20191027-181320F\n"
"P00 DETAIL: hardlink pg_tblspc/32768/PG_11_201809051/1/5 to 20191027-181320F\n"
"P00 INFO: incr backup size = [SIZE]\n"
"P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive\n"
"P00 INFO: backup stop archive = 0000002C05DB8EB000000000, lsn = 5db8eb0/80000\n"
"P00 DETAIL: wrote 'backup_label' file returned from pg_stop_backup()\n"
"P00 INFO: check archive for segment(s) 0000002C05DB8EB000000000:0000002C05DB8EB000000000\n"
"P00 INFO: new backup label = 20191027-181320F_20191030-014640I");
"P00 INFO: new backup label = 20191027-181320F_20191030-014640I\n"
"P00 INFO: incr backup size = [SIZE], file total = 6");
TEST_RESULT_STR_Z(
testBackupValidate(storageRepo(), STRDEF(STORAGE_REPO_BACKUP "/latest")),

View File

@ -2042,7 +2042,9 @@ testRun(void)
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1'\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1/16384'\n"
"P00 WARN: backup does not contain 'global/pg_control' -- cluster will not start\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'", TEST_PATH, TEST_PATH, TEST_PATH, TEST_PATH)));
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'\n"
"P00 INFO: restore size = 4B, file total = 1",
TEST_PATH, TEST_PATH, TEST_PATH, TEST_PATH)));
// Remove recovery.conf before file comparison since it will have a new timestamp. Make sure it existed, though.
HRN_STORAGE_REMOVE(storagePgWrite(), PG_FILE_RECOVERYCONF, .errorOnMissing = true);
@ -2163,7 +2165,8 @@ testRun(void)
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1'\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1/16384'\n"
"P00 WARN: backup does not contain 'global/pg_control' -- cluster will not start\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'");
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'\n"
"P00 INFO: restore size = 8B, file total = 3");
testRestoreCompare(
storagePg(), NULL, manifest,
@ -2217,7 +2220,8 @@ testRun(void)
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1'\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1/16384'\n"
"P00 WARN: backup does not contain 'global/pg_control' -- cluster will not start\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'");
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'\n"
"P00 INFO: restore size = 8B, file total = 3");
testRestoreCompare(
storagePg(), NULL, manifest,
@ -2557,7 +2561,8 @@ testRun(void)
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1'\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1/PG_10_201707211'\n"
"P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'");
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'\n"
"P00 INFO: restore size = 64KB, file total = 11");
testRestoreCompare(
storagePg(), NULL, manifest,
@ -2671,7 +2676,8 @@ testRun(void)
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1'\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/pg_tblspc/1/PG_10_201707211'\n"
"P00 INFO: restore global/pg_control (performed last to ensure aborted restores cannot be started)\n"
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'");
"P00 DETAIL: sync path '" TEST_PATH "/pg/global'\n"
"P00 INFO: restore size = 64KB, file total = 11");
// Check stanza archive spool path was removed
TEST_STORAGE_LIST_EMPTY(storageSpool(), STORAGE_PATH_ARCHIVE);