1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-09-16 09:06:18 +02:00

Added archive and backup WAL ranges to the info command.

This commit is contained in:
David Steele
2017-02-05 10:31:29 -05:00
parent 1666ee177f
commit 8b5f37c2a8
17 changed files with 740 additions and 152 deletions

View File

@@ -207,6 +207,10 @@
<p>Improved <cmd>check</cmd> command to run on a standby, though only basic checks are done because <code>pg_switch_xlog()</code> cannot be executed on a replica.</p>
</release-item>
<release-item>
<p>Added archive and backup WAL ranges to the <cmd>info</cmd> command.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-contributor id="lobréau.benoit"/>

View File

@@ -528,9 +528,13 @@
</execute>
</execute-list>
<p>Each stanza has a separate section and it is possible to limit output to a single stanza with the <br-option>--stanza</br-option> option. The stanza '<id>status</id>' gives a brief indication of the stanza's health. If this is '<id>ok</id>' then <backrest/> is functioning normally. The '<id>wal archive min/max</id>' shows the minimum and maximum WAL currently stored in the archive. Note that there may be gaps due to archive retention policies or other reasons.</p>
<p>The backups are displayed oldest to newest. The oldest backup will <i>always</i> be a full backup (indicated by an <id>F</id> at the end of the label) but the newest backup can be full, differential (ends with <id>D</id>), or incremental (ends with <id>I</id>).</p>
<p>The '<id>start / stop timestamp</id>' defines the time period when the backup ran. The '<id>stop timestamp</id>' can be used to determine the backup to use when performing Point-In-Time Recovery. More information about Point-In-Time Recovery can be found in the <link section="/pitr">Point-In-Time Recovery</link> section.</p>
<p>The '<id>timestamp start/stop</id>' defines the time period when the backup ran. The '<id>timestamp stop</id>' can be used to determine the backup to use when performing Point-In-Time Recovery. More information about Point-In-Time Recovery can be found in the <link section="/pitr">Point-In-Time Recovery</link> section.</p>
<p>The '<id>wal start/stop</id>' defines the WAL range that is required to make the database consistent when restoring. The <cmd>backup</cmd> command will ensure that this WAL range is in the archive before completing.</p>
<p>The '<id>database size</id>' is the full uncompressed size of the database while '<id>backup size</id>' is the amount of data actually backed up (these will be the same for full backups). The '<id>repository size</id>' includes all the files from this backup and any referenced backups that are required to restore the database while '<id>repository backup size</id>' includes only the files in this backup (these will also be the same for full backups). Repository sizes reflect compressed file sizes if compression is enabled in <backrest/> or the filesystem.</p>
@@ -1580,7 +1584,7 @@
<execute filter="n" output="y" user="backrest">
<exe-cmd>{[project-exe]} info</exe-cmd>
<exe-highlight>start / stop timestamp</exe-highlight>
<exe-highlight>timestamp start/stop</exe-highlight>
</execute>
</execute-list>

View File

@@ -35,6 +35,8 @@ use constant WAL_STATUS_OK => 'ok';
####################################################################################################################################
# process
#
# Push a WAL segment. The WAL can be pushed in sync or async mode.
####################################################################################################################################
sub process
{
@@ -153,6 +155,8 @@ sub process
####################################################################################################################################
# walStatus
#
# Read a WAL status file and return success or raise a warning or error.
####################################################################################################################################
sub walStatus
{
@@ -248,6 +252,9 @@ sub walStatus
####################################################################################################################################
# readyList
#
# Determine which WAL PostgreSQL has marked as ready to be archived. This is the heart of the "look ahead" functionality in async
# archiving.
####################################################################################################################################
sub readyList
{
@@ -309,7 +316,11 @@ sub readyList
}
####################################################################################################################################
# dropQueue
# dropList
#
# Determine if the queue of WAL ready to be archived has grown larger the the user-configurable setting. If so, return the list of
# WAL that should be dropped to allow PostgreSQL to continue running. For the moment this is the entire list of ready WAL,
# otherwise the process may archive small spurts of WAL when at queue max which is not likely to be useful.
####################################################################################################################################
sub dropList
{

View File

@@ -71,6 +71,8 @@ sub new
####################################################################################################################################
# process
#
# Fork and run the async process if it is not already running.
####################################################################################################################################
sub process
{
@@ -96,7 +98,7 @@ sub process
logDebugMisc($strOperation, 'async archive-push process is already running');
}
# Run async process.
# Run async process
if (!$bClient)
{
# uncoverable branch false - reacquire the lock since it was released by the client process above
@@ -138,6 +140,8 @@ sub process
####################################################################################################################################
# initServer
#
# Create the spool directory and initialize the archive process.
####################################################################################################################################
sub initServer
{
@@ -149,7 +153,7 @@ sub initServer
# Create the spool path
filePathCreate($self->{strSpoolPath}, undef, true, true);
# Initialize the backup process
# Initialize the archive process
$self->{oArchiveProcess} = new pgBackRest::Protocol::LocalProcess(
BACKUP, optionGet(OPTION_PROTOCOL_TIMEOUT) < 60 ? optionGet(OPTION_PROTOCOL_TIMEOUT) / 2 : 30,
$self->{strBackRestBin}, false);
@@ -161,6 +165,8 @@ sub initServer
####################################################################################################################################
# processServer
#
# Setup the server and process the queue. This function is separate from processQueue() for testing purposes.
####################################################################################################################################
sub processServer
{
@@ -169,6 +175,8 @@ sub processServer
# Assign function parameters, defaults, and log debug info
my ($strOperation) = logDebugParam(__PACKAGE__ . '->processServer');
# There is no loop here because it seems wise to let the async process exit periodically. As the queue grows each async
# execution will naturally run longer. This behavior is also far easier to test.
$self->initServer();
$self->processQueue();
@@ -178,6 +186,8 @@ sub processServer
####################################################################################################################################
# processQueue
#
# Push WAL to the archive.
####################################################################################################################################
sub processQueue
{
@@ -293,6 +303,8 @@ sub processQueue
####################################################################################################################################
# walStatusWrite
#
# Write out a status file to the spool path with information about the success or failure of an archive push.
####################################################################################################################################
sub walStatusWrite
{

View File

@@ -18,6 +18,7 @@ use pgBackRest::BackupCommon;
use pgBackRest::BackupInfo;
use pgBackRest::Config::Config;
use pgBackRest::File;
use pgBackRest::FileCommon;
use pgBackRest::Manifest;
use pgBackRest::Protocol::Common;
use pgBackRest::Protocol::Protocol;
@@ -50,6 +51,8 @@ use constant INFO_KEY_DELTA => 'delta';
use constant INFO_KEY_FORMAT => 'format';
use constant INFO_KEY_ID => 'id';
use constant INFO_KEY_LABEL => 'label';
use constant INFO_KEY_MAX => 'max';
use constant INFO_KEY_MIN => 'min';
use constant INFO_KEY_MESSAGE => 'message';
use constant INFO_KEY_PRIOR => 'prior';
use constant INFO_KEY_REFERENCE => 'reference';
@@ -108,52 +111,7 @@ sub process
if (optionTest(OPTION_OUTPUT, INFO_OUTPUT_TEXT))
{
my $strOutput;
foreach my $oStanzaInfo (@{$oyStanzaList})
{
# Add an LF between stanzas
$strOutput .= defined($strOutput) ? "\n" : '';
# Output stanza name and status
$strOutput .=
'stanza: ' . $$oStanzaInfo{&INFO_STANZA_NAME} . "\n" .
' status: ' . ($$oStanzaInfo{&INFO_SECTION_STATUS}{&INFO_KEY_CODE} == 0 ? INFO_STANZA_STATUS_OK :
INFO_STANZA_STATUS_ERROR . ' (' . $$oStanzaInfo{&INFO_SECTION_STATUS}{&INFO_KEY_MESSAGE} . ')') . "\n";
# Output information for each stanza backup, from oldest to newest
foreach my $oBackupInfo (@{$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}})
{
$strOutput .=
"\n".
' ' . $$oBackupInfo{&INFO_KEY_TYPE} . ' backup: ' . $$oBackupInfo{&INFO_KEY_LABEL} . "\n" .
' start / stop timestamp: ' .
timestampFormat(undef, $$oBackupInfo{&INFO_SECTION_TIMESTAMP}{&INFO_KEY_START}) .
' / ' .
timestampFormat(undef, $$oBackupInfo{&INFO_SECTION_TIMESTAMP}{&INFO_KEY_STOP}) . "\n" .
' database size: ' .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_SIZE}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_SIZE}) : '') .
', backup size: ' .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_DELTA}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_DELTA}) : '') . "\n" .
' repository size: ' .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_SIZE}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_SIZE}) : '') .
', repository backup size: ' .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_DELTA}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_DELTA}) : '') . "\n";
# List the backup reference chain, if any, for this backup
if (defined($$oBackupInfo{&INFO_KEY_REFERENCE}))
{
$strOutput .= ' backup reference list: ' . (join(', ', @{$$oBackupInfo{&INFO_KEY_REFERENCE}})) . "\n";
}
}
}
my $strOutput = $self->formatText($oyStanzaList);
if (defined($strOutput))
{
@@ -191,6 +149,170 @@ sub process
);
}
####################################################################################################################################
# formatText
#
# Format --output=text info.
####################################################################################################################################
sub formatText
{
my $self = shift;
# Assign function parameters, defaults, and log debug info
my
(
$strOperation,
$oyStanzaList,
) =
logDebugParam
(
__PACKAGE__ . '->formatText', \@_,
{name => 'oyStanzaList', trace => true},
);
my $strOutput;
foreach my $oStanzaInfo (@{$oyStanzaList})
{
# Output stanza name and status
$strOutput .= (defined($strOutput) ? "\n" : '') . $self->formatTextStanza($oStanzaInfo) . "\n";
# Output information for each stanza backup, from oldest to newest
foreach my $oBackupInfo (@{$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}})
{
$strOutput .= "\n" . $self->formatTextBackup($oBackupInfo) . "\n";
}
}
# Return from function and log return values if any
return logDebugReturn
(
$strOperation,
{name => 'strOutput', value => $strOutput, trace => true}
);
}
####################################################################################################################################
# formatTextStanza
#
# Format --output=text stanza info.
####################################################################################################################################
sub formatTextStanza
{
my $self = shift;
# Assign function parameters, defaults, and log debug info
my
(
$strOperation,
$oStanzaInfo,
) =
logDebugParam
(
__PACKAGE__ . '->formatTextStanza', \@_,
{name => 'oStanzaInfo', trace => true},
);
# Output stanza name and status
my $strOutput =
'stanza: ' . $oStanzaInfo->{&INFO_STANZA_NAME} . "\n" .
" status: " . ($oStanzaInfo->{&INFO_SECTION_STATUS}{&INFO_KEY_CODE} == 0 ? INFO_STANZA_STATUS_OK :
INFO_STANZA_STATUS_ERROR . ' (' . $oStanzaInfo->{&INFO_SECTION_STATUS}{&INFO_KEY_MESSAGE} . ')');
# Output archive start / stop values
$strOutput .=
"\n wal archive min/max: ";
if (defined($oStanzaInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_MIN}) &&
defined($oStanzaInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_MAX}))
{
$strOutput .=
$oStanzaInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_MIN} . ' / ' . $oStanzaInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_MAX};
}
else
{
$strOutput .= 'none present';
}
# Return from function and log return values if any
return logDebugReturn
(
$strOperation,
{name => 'strOutput', value => $strOutput, trace => true}
);
}
####################################################################################################################################
# formatTextBackup
#
# Format --output=text backup info.
####################################################################################################################################
sub formatTextBackup
{
my $self = shift;
# Assign function parameters, defaults, and log debug info
my
(
$strOperation,
$oBackupInfo,
) =
logDebugParam
(
__PACKAGE__ . '->formatTextBackup', \@_,
{name => 'oBackupInfo', trace => true},
);
my $strOutput .=
' ' . $$oBackupInfo{&INFO_KEY_TYPE} . ' backup: ' . $$oBackupInfo{&INFO_KEY_LABEL} . "\n" .
' timestamp start/stop: ' .
timestampFormat(undef, $$oBackupInfo{&INFO_SECTION_TIMESTAMP}{&INFO_KEY_START}) .
' / ' .
timestampFormat(undef, $$oBackupInfo{&INFO_SECTION_TIMESTAMP}{&INFO_KEY_STOP}) . "\n" .
" wal start/stop: ";
if (defined($oBackupInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_START}) &&
defined($oBackupInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_STOP}))
{
$strOutput .=
$oBackupInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_START} . ' / ' . $oBackupInfo->{&INFO_SECTION_ARCHIVE}{&INFO_KEY_STOP};
}
else
{
$strOutput .= 'n/a';
}
$strOutput .=
"\n database size: " .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_SIZE}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_SIZE}) : '') .
', backup size: ' .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_DELTA}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_KEY_DELTA}) : '') . "\n" .
' repository size: ' .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_SIZE}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_SIZE}) : '') .
', repository backup size: ' .
(defined($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_DELTA}) ?
fileSizeFormat($$oBackupInfo{&INFO_SECTION_INFO}{&INFO_SECTION_REPO}{&INFO_KEY_DELTA}) : '');
# List the backup reference chain, if any, for this backup
if (defined($oBackupInfo->{&INFO_KEY_REFERENCE}) && @{$oBackupInfo->{&INFO_KEY_REFERENCE}} > 0)
{
$strOutput .= "\n backup reference list: " . (join(', ', @{$$oBackupInfo{&INFO_KEY_REFERENCE}}));
}
# Return from function and log return values if any
return logDebugReturn
(
$strOperation,
{name => 'strOutput', value => $strOutput, trace => true}
);
}
####################################################################################################################################
# stanzaList
####################################################################################################################################
@@ -236,6 +358,7 @@ sub stanzaList
($$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}, $$oStanzaInfo{&INFO_BACKUP_SECTION_DB}) =
$self->backupList($oFile, $strStanzaFound);
# If there are no backups then set status to no backup
if (@{$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}} == 0)
{
$$oStanzaInfo{&INFO_SECTION_STATUS} =
@@ -244,6 +367,7 @@ sub stanzaList
&INFO_KEY_MESSAGE => INFO_STANZA_STATUS_NO_BACKUP_MESSAGE
};
}
# Else status is OK
else
{
$$oStanzaInfo{&INFO_SECTION_STATUS} =
@@ -253,6 +377,43 @@ sub stanzaList
};
}
# Get the first/last WAL
my $strArchiveStart;
my $strArchiveStop;
my $hDbInfo = @{$oStanzaInfo->{&INFO_BACKUP_SECTION_DB}}[0];
if (defined($hDbInfo->{&INFO_KEY_ID}) && defined($hDbInfo->{&INFO_KEY_VERSION}))
{
my $strArchivePath = "archive/${strStanzaFound}/" . $hDbInfo->{&INFO_KEY_VERSION} . '-' . $hDbInfo->{&INFO_KEY_ID};
if ($oFile->exists(PATH_BACKUP, $strArchivePath))
{
my $hWalManifest = $oFile->manifest(PATH_BACKUP, $strArchivePath);
foreach my $strWalFile (sort(keys(%{$hWalManifest})))
{
if ($strWalFile eq '.' || $strWalFile eq '..' ||
$strWalFile !~ ("^[0-F]{16}\/[0-F]{24}-[0-f]{40}(\\." . COMPRESS_EXT . "){0,1}\$"))
{
next;
}
if (!defined($strArchiveStart))
{
$strArchiveStart = substr((split('/', $strWalFile))[1], 0, 24);
}
$strArchiveStop = substr((split('/', $strWalFile))[1], 0, 24);
}
}
}
$oStanzaInfo->{&INFO_SECTION_ARCHIVE} =
{
&INFO_KEY_MIN => $strArchiveStart,
&INFO_KEY_MAX => $strArchiveStop,
};
push @oyStanzaList, $oStanzaInfo;
}

View File

@@ -3356,50 +3356,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 128KB, repository backup size: 128KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 128KB, repository backup size: 25B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 128KB, repository backup size: 13B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 112KB, repository backup size: 8B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 112KB, repository backup size: 39B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 112KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 112KB, repository backup size: 30B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
@@ -3408,6 +3417,10 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3968,26 +3981,34 @@ info all stanzas - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 112KB, repository backup size: 9B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -4064,6 +4085,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -4079,6 +4104,7 @@ info bogus stanza - bogus stanza (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -2943,50 +2943,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 128KB, repository backup size: 128KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 128KB, repository backup size: 25B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 128KB, repository backup size: 13B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 112KB, repository backup size: 8B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 112KB, repository backup size: 39B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 112KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 112KB, repository backup size: 30B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
@@ -2995,6 +3004,10 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3549,26 +3562,34 @@ info all stanzas - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 112KB, repository backup size: 9B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3645,6 +3666,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -3660,6 +3685,7 @@ info bogus stanza - bogus stanza (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -2837,50 +2837,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 1.3KB, repository backup size: 85B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 1.4KB, repository backup size: 53B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 1.2KB, repository backup size: 28B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 1.2KB, repository backup size: 139B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 1.2KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 1.1KB, repository backup size: 90B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
@@ -2889,6 +2898,10 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3441,26 +3454,34 @@ info all stanzas - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 1.2KB, repository backup size: 29B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3537,6 +3558,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -3552,6 +3577,7 @@ info bogus stanza - bogus stanza (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -2931,50 +2931,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 1.3KB, repository backup size: 85B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 1.4KB, repository backup size: 53B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 1.2KB, repository backup size: 28B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 1.2KB, repository backup size: 139B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 1.2KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 1.1KB, repository backup size: 90B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
@@ -2983,6 +2992,10 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3536,26 +3549,34 @@ info all stanzas - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 1.2KB, repository backup size: 29B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3632,6 +3653,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -3647,6 +3672,7 @@ info bogus stanza - bogus stanza (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -3537,50 +3537,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 128KB, repository backup size: 128KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 128KB, repository backup size: 25B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 128KB, repository backup size: 13B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 112KB, repository backup size: 8B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 112KB, repository backup size: 39B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 112KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 112KB, repository backup size: 30B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
@@ -3589,6 +3598,10 @@ info db stanza - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -4164,26 +4177,34 @@ info all stanzas - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 112KB, repository backup size: 9B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -4260,6 +4281,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -4275,6 +4300,7 @@ info bogus stanza - bogus stanza (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -3227,50 +3227,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 128KB, repository backup size: 128KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 128KB, repository backup size: 25B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 128KB, repository backup size: 13B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 112KB, repository backup size: 8B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 112KB, repository backup size: 39B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 112KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 112KB, repository backup size: 30B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
@@ -3279,6 +3288,10 @@ info db stanza - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3855,26 +3868,34 @@ info all stanzas - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 112KB, repository backup size: 112KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 112KB, repository backup size: 9B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3951,6 +3972,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -3966,6 +3991,7 @@ info bogus stanza - bogus stanza (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -3109,50 +3109,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 1.3KB, repository backup size: 85B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 1.4KB, repository backup size: 53B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 1.2KB, repository backup size: 28B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 1.2KB, repository backup size: 139B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 1.2KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 1.1KB, repository backup size: 90B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
@@ -3161,6 +3170,10 @@ info db stanza - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3734,67 +3747,82 @@ info all stanzas - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 1.3KB, repository backup size: 85B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 1.4KB, repository backup size: 53B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 1.2KB, repository backup size: 28B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 1.2KB, repository backup size: 139B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 1.2KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 1.1KB, repository backup size: 90B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 1.2KB, repository backup size: 29B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -4090,6 +4118,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -4105,6 +4137,7 @@ info bogus stanza - bogus stanza (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -3203,50 +3203,59 @@ info db stanza - normal output (db-master host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 1.3KB, repository backup size: 85B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 1.4KB, repository backup size: 53B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 1.2KB, repository backup size: 28B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 1.2KB, repository backup size: 139B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 1.2KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 1.1KB, repository backup size: 90B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
@@ -3255,6 +3264,10 @@ info db stanza - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -3829,67 +3842,82 @@ info all stanzas - normal output (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: db
status: ok
wal archive min/max: none present
full backup: [BACKUP-FULL-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 128KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-2]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 25B
repository size: 1.3KB, repository backup size: 85B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 128KB, backup size: 13B
repository size: 1.4KB, repository backup size: 53B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2]
incr backup: [BACKUP-INCR-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 8B
repository size: 1.2KB, repository backup size: 28B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-2], [BACKUP-INCR-3]
diff backup: [BACKUP-DIFF-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 39B
repository size: 1.2KB, repository backup size: 139B
backup reference list: [BACKUP-FULL-2]
incr backup: [BACKUP-INCR-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 0B
repository size: 1.2KB, repository backup size: 0B
backup reference list: [BACKUP-FULL-2], [BACKUP-DIFF-3]
diff backup: [BACKUP-DIFF-4]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 30B
repository size: 1.1KB, repository backup size: 90B
backup reference list: [BACKUP-FULL-2]
full backup: [BACKUP-FULL-3]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 112KB
repository size: 1.2KB, repository backup size: 1.2KB
diff backup: [BACKUP-DIFF-5]
start / stop timestamp: [TIMESTAMP-STR]
timestamp start/stop: [TIMESTAMP-STR]
wal start/stop: n/a
database size: 112KB, backup size: 9B
repository size: 1.2KB, repository backup size: 29B
backup reference list: [BACKUP-FULL-3]
stanza: db_empty
status: error (no valid backups)
wal archive min/max: none present
info all stanzas - normal output (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --output=json info
------------------------------------------------------------------------------------------------------------------------------------
[
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [
{
"archive" : {
@@ -4185,6 +4213,10 @@ info all stanzas - normal output (db-master host)
}
},
{
"archive" : {
"max" : null,
"min" : null
},
"backup" : [],
"db" : [],
"name" : "db_empty",
@@ -4200,6 +4232,7 @@ info bogus stanza - bogus stanza (backup host)
------------------------------------------------------------------------------------------------------------------------------------
stanza: bogus
status: error (missing stanza path)
wal archive min/max: none present
info bogus stanza - bogus stanza (db-master host)
> [CONTAINER-EXEC] db-master [BACKREST-BIN] --config=[TEST_PATH]/db-master/pgbackrest.conf --log-level-console=warn --stanza=bogus --output=json info

View File

@@ -65,6 +65,9 @@ use constant TESTDEF_MODULE_ARCHIVE_PUSH_ASYNC => TESTDEF_M
use constant TESTDEF_MODULE_ARCHIVE_PUSH_FILE => TESTDEF_MODULE_ARCHIVE_PUSH . 'File';
push @EXPORT, qw(TESTDEF_MODULE_ARCHIVE_PUSH_FILE);
use constant TESTDEF_MODULE_INFO => 'Info';
push @EXPORT, qw(TESTDEF_MODULE_INFO);
################################################################################################################################
# Define tests
################################################################################################################################
@@ -279,6 +282,31 @@ my $oTestDef =
},
]
},
# Info tests
{
&TESTDEF_MODULE_NAME => 'info',
&TESTDEF_TEST_CONTAINER => false,
&TESTDEF_EXPECT => true,
&TESTDEF_TEST =>
[
{
&TESTDEF_TEST_NAME => 'unit',
&TESTDEF_TEST_CONTAINER => true,
&TESTDEF_TEST_INDIVIDUAL => false,
&TESTDEF_EXPECT => false,
&TESTDEF_TEST_TOTAL => 1,
&TESTDEF_TEST_COVERAGE =>
{
&TESTDEF_TEST_ALL =>
{
&TESTDEF_MODULE_INFO => TESTDEF_COVERAGE_FULL,
}
},
},
]
},
# Full tests
{
&TESTDEF_MODULE_NAME => 'full',

View File

@@ -393,7 +393,7 @@ sub regExpReplaceAll
$strLine = $self->regExpReplace($strLine, 'SIZE', "size\"[ ]{0,1}:[ ]{0,1}[0-9]+", '[0-9]+$', false);
$strLine = $self->regExpReplace($strLine, 'DELTA', "delta\"[ ]{0,1}:[ ]{0,1}[0-9]+", '[0-9]+$', false);
$strLine = $self->regExpReplace(
$strLine, 'TIMESTAMP-STR', " timestamp: $strTimestampRegExp / $strTimestampRegExp",
$strLine, 'TIMESTAMP-STR', "timestamp start\/stop: $strTimestampRegExp / $strTimestampRegExp",
"${strTimestampRegExp} / ${strTimestampRegExp}\$", false);
$strLine = $self->regExpReplace($strLine, 'CHECKSUM', 'checksum=[\"]{0,1}[0-f]{40}', '[0-f]{40}$', false);

View File

@@ -11,6 +11,7 @@ use strict;
use warnings FATAL => qw(all);
use Carp qw(confess);
use pgBackRest::Archive::ArchiveInfo;
use pgBackRest::BackupCommon;
use pgBackRest::BackupInfo;
use pgBackRest::Common::Ini;
@@ -48,7 +49,7 @@ sub new
logDebugParam
(
__PACKAGE__ . '->new', \@_,
{name => 'oHostBackup', trace => true},
{name => 'oHostBackup', required => false, trace => true},
{name => 'strBackRestExe', trace => true},
{name => 'oFile', trace => true},
{name => 'oLogTest', required => false, trace => true}
@@ -96,7 +97,7 @@ sub stanzaCreate
$$oStanza{iControlVersion} = $strDbVersionTemp . '1';
# Create the stanza backup path
my $strBackupClusterPath = $self->{oHostBackup}->repoPath() . "/backup/${strStanza}";
my $strBackupClusterPath = $self->{oFile}->pathGet(PATH_BACKUP_CLUSTER);
filePathCreate("${strBackupClusterPath}/" . PATH_BACKUP_HISTORY, undef, undef, true);
$$oStanza{strBackupClusterPath} = $strBackupClusterPath;
@@ -106,7 +107,7 @@ sub stanzaCreate
$strDbVersion, $$oStanza{ullDbSysId}, $$oStanza{iControlVersion}, $$oStanza{iCatalogVersion});
# Create the stanza archive path
my $strArchiveClusterPath = $self->{oHostBackup}->repoPath() . "/archive/${strStanza}";
my $strArchiveClusterPath = $self->{oFile}->pathGet(PATH_BACKUP_ARCHIVE);
filePathCreate($strArchiveClusterPath, undef, undef, true);
# Create the archive info object
@@ -154,7 +155,12 @@ sub backupCreate
my $oStanza = $self->{oStanzaHash}{$strStanza};
my ($strArchiveStart, $strArchiveStop) = $self->archiveCreate($strStanza, $iArchiveBackupTotal);
my ($strArchiveStart, $strArchiveStop);
if ($iArchiveBackupTotal != -1)
{
($strArchiveStart, $strArchiveStop) = $self->archiveCreate($strStanza, $iArchiveBackupTotal);
}
# Create the manifest
my $oLastManifest = $strType ne BACKUP_TYPE_FULL ? $$oStanza{oManifest} : undef;
@@ -222,9 +228,12 @@ sub backupCreate
$$oStanza{strBackupDescription} .=
"* ${strType} backup: label = ${strBackupLabel}" .
(defined($oLastManifest) ? ', prior = ' . $oLastManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL) : '') .
", start = ${strArchiveStart}, stop = ${strArchiveStop}";
(defined($strArchiveStart) ? ", start = ${strArchiveStart}, stop = ${strArchiveStop}" : ', not online');
$self->archiveCreate($strStanza, $iArchiveBetweenTotal);
if ($iArchiveBetweenTotal != -1)
{
$self->archiveCreate($strStanza, $iArchiveBetweenTotal);
}
# Return from function and log return values if any
return logDebugReturn($strOperation);

View File

@@ -0,0 +1,137 @@
####################################################################################################################################
# InfoUnitTest.pm - Unit tests for Info module
####################################################################################################################################
package pgBackRestTest::Info::InfoUnitTest;
use parent 'pgBackRestTest::Common::Env::EnvHostTest';
####################################################################################################################################
# Perl includes
####################################################################################################################################
use strict;
use warnings FATAL => qw(all);
use Carp qw(confess);
use English '-no_match_vars';
use File::Basename qw(dirname);
use Storable qw(dclone);
use pgBackRest::BackupInfo;
use pgBackRest::Common::Exception;
use pgBackRest::Common::Lock;
use pgBackRest::Common::Log;
use pgBackRest::Config::Config;
use pgBackRest::DbVersion;
use pgBackRest::File;
use pgBackRest::FileCommon;
use pgBackRest::Info;
use pgBackRest::Protocol::Common;
use pgBackRest::Protocol::Protocol;
use pgBackRestTest::Common::Env::EnvHostTest;
use pgBackRestTest::Common::ExecuteTest;
use pgBackRestTest::Common::Host::HostBackupTest;
use pgBackRestTest::Common::RunTest;
use pgBackRestTest::Expire::ExpireEnvTest;
####################################################################################################################################
# initModule
####################################################################################################################################
sub initModule
{
my $self = shift;
$self->{strRepoPath} = $self->testPath() . '/repo';
$self->{strArchivePath} = "$self->{strRepoPath}/archive/" . $self->stanza();
$self->{strBackupPath} = "$self->{strRepoPath}/backup/" . $self->stanza();
# Create the local file object
$self->{oFile} =
new pgBackRest::File
(
$self->stanza(),
$self->{strRepoPath},
new pgBackRest::Protocol::Common
(
OPTION_DEFAULT_BUFFER_SIZE, # Buffer size
OPTION_DEFAULT_COMPRESS_LEVEL, # Compress level
OPTION_DEFAULT_COMPRESS_LEVEL_NETWORK, # Compress network level
HOST_PROTOCOL_TIMEOUT # Protocol timeout
)
);
}
####################################################################################################################################
# initTest
####################################################################################################################################
sub initTest
{
my $self = shift;
# Create the test object
$self->{oExpireTest} = new pgBackRestTest::Expire::ExpireEnvTest(undef, $self->backrestExe(), $self->{oFile}, undef);
$self->{oExpireTest}->stanzaCreate($self->stanza(), PG_VERSION_94);
}
####################################################################################################################################
# run
####################################################################################################################################
sub run
{
my $self = shift;
my $oOption = {};
# $self->optionSetTest($oOption, OPTION_STANZA, $self->stanza());
$self->optionSetTest($oOption, OPTION_REPO_PATH, $self->{strRepoPath});
# Used to create backups and WAL to test
use constant SECONDS_PER_DAY => 86400;
my $lBaseTime = 1486137448 - (60 * SECONDS_PER_DAY);
################################################################################################################################
if ($self->begin("Info->formatTextStanza() && Info->formatTextBackup()"))
{
$self->configLoadExpect(dclone($oOption), CMD_INFO);
my $oInfo = new pgBackRest::Info();
#---------------------------------------------------------------------------------------------------------------------------
my $hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza());
$self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[0])},
"stanza: db\n status: error (no valid backups)\n wal archive min/max: none present", "stanza text output");
#---------------------------------------------------------------------------------------------------------------------------
$self->{oExpireTest}->backupCreate($self->stanza(), BACKUP_TYPE_FULL, $lBaseTime += SECONDS_PER_DAY, -1, -1);
$hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza());
$self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[-1])},
"stanza: db\n status: ok\n wal archive min/max: none present",
"stanza text output");
$self->testResult(sub {$oInfo->formatTextBackup(@{$hyStanza}[-1]->{&INFO_BACKUP_SECTION_BACKUP}[-1])},
" full backup: 20161206-155728F\n" .
" timestamp start/stop: 2016-12-06 15:57:28 / 2016-12-06 15:57:28\n" .
" wal start/stop: n/a\n" .
" database size: 0B, backup size: 0B\n" .
" repository size: 0B, repository backup size: 0B",
"backup text output");
#---------------------------------------------------------------------------------------------------------------------------
$self->{oExpireTest}->backupCreate($self->stanza(), BACKUP_TYPE_DIFF, $lBaseTime += SECONDS_PER_DAY);
$hyStanza = $oInfo->stanzaList($self->{oFile}, $self->stanza());
$self->testResult(sub {$oInfo->formatTextStanza(@{$hyStanza}[-1])},
"stanza: db\n status: ok\n wal archive min/max: 000000010000000000000000 / 000000010000000000000005",
"stanza text output");
$self->testResult(sub {$oInfo->formatTextBackup(@{$hyStanza}[-1]->{&INFO_BACKUP_SECTION_BACKUP}[-1])},
" diff backup: 20161206-155728F_20161207-155728D\n" .
" timestamp start/stop: 2016-12-07 15:57:28 / 2016-12-07 15:57:28\n" .
" wal start/stop: 000000010000000000000000 / 000000010000000000000002\n" .
" database size: 0B, backup size: 0B\n" .
" repository size: 0B, repository backup size: 0B",
"backup text output");
}
}
1;