mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-01-18 04:58:51 +02:00
v0.75: New repository format, info command and experimental 9.5 support
* IMPORTANT NOTE: This flag day release breaks compatibility with older versions of PgBackRest. The manifest format, on-disk structure, and the binary names have all changed. You must create a new repository to hold backups for this version of PgBackRest and keep your older repository for a time in case you need to do a restore. The `pg_backrest.conf` file has not changed but you'll need to change any references to `pg_backrest.pl` in cron (or elsewhere) to `pg_backrest` (without the `.pl` extension). * Add info command. * More efficient file ordering for backup. Files are copied in descending size order so a single thread does not end up copying a large file at the end. This had already been implemented for restore. * Logging now uses unbuffered output. This should make log files that are being written by multiple threads less chaotic. Suggested by Michael Renner. * Experimental support for PostgreSQL 9.5. This may break when the control version or WAL magic changes but will be updated in each release.
This commit is contained in:
parent
f83f0fa54d
commit
1afbab010f
69
README.md
69
README.md
@ -181,22 +181,22 @@ Get a WAL segment from the repository.
|
||||
```
|
||||
/path/to/pg_backrest.pl --stanza=db archive-get %f %p
|
||||
```
|
||||
Retrieves a WAL segment from the repository. This command is used in `restore.conf` to restore a backup, perform PITR, or as an alternative to streaming for keeping a replica up to date. `%f` is how PostgreSQL specifies the WAL segment it needs and `%p` is the location where it should be copied.
|
||||
Retrieves a WAL segment from the repository. This command is used in `recovery.conf` to restore a backup, perform PITR, or as an alternative to streaming for keeping a replica up to date. `%f` is how PostgreSQL specifies the WAL segment it needs and `%p` is the location where it should be copied.
|
||||
|
||||
#### `expire` command
|
||||
|
||||
PgBackRest does backup rotation, but is not concerned with when the backups were created. So if two full backups are configured for rentention, PgBackRest will keep two full backups no matter whether they occur, two hours apart or two weeks apart.
|
||||
PgBackRest does backup rotation, but is not concerned with when the backups were created. So if two full backups are configured for retention, PgBackRest will keep two full backups no matter whether they occur, two hours apart or two weeks apart.
|
||||
|
||||
##### Example
|
||||
|
||||
```
|
||||
/path/to/pg_backrest.pl --stanza=db expire
|
||||
```
|
||||
Expire (rotate) any backups that exceed the defined retention. Expiration is run automatically after every successful backup, so there is no need to run this command separately unless you have reduced rentention, usually to free up some space.
|
||||
Expire (rotate) any backups that exceed the defined retention. Expiration is run automatically after every successful backup, so there is no need to run this command separately unless you have reduced retention, usually to free up some space.
|
||||
|
||||
#### `restore` command
|
||||
|
||||
Perform a database restore. This command is generall run manually, but there are instances where it might be automated.
|
||||
Perform a database restore. This command is generally run manually, but there are instances where it might be automated.
|
||||
|
||||
##### `set` option
|
||||
|
||||
@ -274,7 +274,7 @@ example: --target-timeline=3
|
||||
|
||||
##### `recovery-setting` option
|
||||
|
||||
Recovery settings in restore.conf options can be specified with this option. See http://www.postgresql.org/docs/X.X/static/recovery-config.html for details on restore.conf options (replace X.X with your database version). This option can be used multiple times.
|
||||
Recovery settings in recovery.conf options can be specified with this option. See http://www.postgresql.org/docs/X.X/static/recovery-config.html for details on recovery.conf options (replace X.X with your database version). This option can be used multiple times.
|
||||
|
||||
Note: `restore_command` will be automatically generated but can be overridden with this option. Be careful about specifying your own `restore_command` as PgBackRest is designed to handle this for you. Target Recovery options (recovery_target_name, recovery_target_time, etc.) are generated automatically by PgBackRest and should not be set with this option.
|
||||
|
||||
@ -307,6 +307,33 @@ example: --tablespace-map ts_01=/db/ts_01
|
||||
```
|
||||
Restores the latest database backup and then recovers to the `release` restore point.
|
||||
|
||||
#### `info` command
|
||||
|
||||
Retrieve information about backups for a single stanza or for all stanzas. Text output is the default and gives a human-readable summary of backups for the stanza(s) requested. This format is subject to change with any release.
|
||||
|
||||
For machine-readable output use `--output=json`. The JSON output contains far more information than the text output, however **this feature is currently experimental so the format may change between versions**.
|
||||
|
||||
##### `output` option
|
||||
|
||||
The following output types are supported:
|
||||
|
||||
- `text` - Human-readable summary of backup information.
|
||||
- `json` - Exhaustive machine-readable backup information in JSON format.
|
||||
|
||||
```
|
||||
required: n
|
||||
default: text
|
||||
example: --output=json
|
||||
```
|
||||
|
||||
##### Example: Backup information
|
||||
|
||||
```
|
||||
/path/to/pg_backrest.pl --stanza=db --output=json info
|
||||
```
|
||||
|
||||
Get information about backups in the `db` stanza.
|
||||
|
||||
## Configuration
|
||||
|
||||
PgBackRest can be used entirely with command-line parameters but a configuration file is more practical for installations that are complex or set a lot of options. The default location for the configuration file is `/etc/pg_backrest.conf`.
|
||||
@ -354,7 +381,7 @@ cmd-psql=/usr/local/bin/psql -X %option%
|
||||
|
||||
[global:general]
|
||||
compress=n
|
||||
repo-path=/Users/dsteele/Documents/Code/backrest/test/test/backrest
|
||||
repo-path=/path/to/db/repo
|
||||
|
||||
[global:log]
|
||||
log-level-file=debug
|
||||
@ -413,7 +440,7 @@ The `command` section defines the location of external commands that are used by
|
||||
|
||||
Defines the full path to `psql`. `psql` is used to call `pg_start_backup()` and `pg_stop_backup()`.
|
||||
|
||||
If addtional per stanza parameters need to be passed to `psql` (such as `--port` or `--cluster`) then add `%option%` to the command line and use `command-option::psql` to set options.
|
||||
If additional per stanza parameters need to be passed to `psql` (such as `--port` or `--cluster`) then add `%option%` to the command line and use `command-option::psql` to set options.
|
||||
```
|
||||
required: n
|
||||
default: /usr/bin/psql -X
|
||||
@ -641,7 +668,7 @@ example: archive-async=y
|
||||
|
||||
Limits the amount of archive log that will be written locally when `archive-async=y`. After the limit is reached, the following will happen:
|
||||
|
||||
- PgBackRest will notify Postgres that the archive was succesfully backed up, then DROP IT.
|
||||
- PgBackRest will notify Postgres that the archive was successfully backed up, then DROP IT.
|
||||
- An error will be logged to the console and also to the Postgres log.
|
||||
- A stop file will be written in the lock directory and no more archive files will be backed up until it is removed.
|
||||
|
||||
@ -670,7 +697,7 @@ example: tablespace=n
|
||||
|
||||
#### `expire` section
|
||||
|
||||
The `expire` section defines how long backups will be retained. Expiration only occurs when the number of complete backups exceeds the allowed retention. In other words, if full-retention is set to 2, then there must be 3 complete backups before the oldest will be expired. Make sure you always have enough space for rentention + 1 backups.
|
||||
The `expire` section defines how long backups will be retained. Expiration only occurs when the number of complete backups exceeds the allowed retention. In other words, if full-retention is set to 2, then there must be 3 complete backups before the oldest will be expired. Make sure you always have enough space for retention + 1 backups.
|
||||
|
||||
##### `retention-full` key
|
||||
|
||||
@ -701,7 +728,9 @@ example: retention-archive-type=diff
|
||||
|
||||
##### `retention-archive` key
|
||||
|
||||
Number of backups worth of archive log to keep.
|
||||
Number of backups worth of archive log to keep. If this is set less than your backup retention then be sure you set `archive-copy=y` or you won't be able to restore some older backups.
|
||||
|
||||
For example, if `retention-archive=2` and `retention-full=4`, then any backups older than the most recent two full backups will not have WAL segments in the archive to make them consistent. To solve this, set `archive-copy=y` and use `type=none` when restoring. This issue will be addressed in a future release but for now be careful with this setting.
|
||||
```
|
||||
required: n
|
||||
example: retention-archive=2
|
||||
@ -737,6 +766,18 @@ example: db-path=/data/db
|
||||
|
||||
## Release Notes
|
||||
|
||||
### v0.75: New repository format, info command and experimental 9.5 support
|
||||
|
||||
* IMPORTANT NOTE: This flag day release breaks compatibility with older versions of PgBackRest. The manifest format, on-disk structure, and the binary names have all changed. You must create a new repository to hold backups for this version of PgBackRest and keep your older repository for a time in case you need to do a restore. The `pg_backrest.conf` file has not changed but you'll need to change any references to `pg_backrest.pl` in cron (or elsewhere) to `pg_backrest` (without the `.pl` extension).
|
||||
|
||||
* Add info command.
|
||||
|
||||
* More efficient file ordering for backup. Files are copied in descending size order so a single thread does not end up copying a large file at the end. This had already been implemented for restore.
|
||||
|
||||
* Logging now uses unbuffered output. This should make log files that are being written by multiple threads less chaotic. Suggested by Michael Renner.
|
||||
|
||||
* Experimental support for PostgreSQL 9.5. This may break when the control version or WAL magic changes but will be updated in each release.
|
||||
|
||||
### v0.70: Stability improvements for archiving, improved logging and help
|
||||
|
||||
* Fixed an issue where archive-copy would fail on an incr/diff backup when hardlink=n. In this case the pg_xlog path does not already exist and must be created. Reported by Michael Renner
|
||||
@ -791,7 +832,7 @@ example: db-path=/data/db
|
||||
|
||||
* Added option `--no-start-stop` to allow backups when Postgres is shut down. If `postmaster.pid` is present then `--force` is required to make the backup run (though if Postgres is running an inconsistent backup will likely be created). This option was added primarily for the purpose of unit testing, but there may be applications in the real world as well.
|
||||
|
||||
* Fixed broken checksums and now they work with normal and resumed backups. Finally realized that checksums and checksum deltas should be functionally separated and this simplied a number of things. Issue #28 has been created for checksum deltas.
|
||||
* Fixed broken checksums and now they work with normal and resumed backups. Finally realized that checksums and checksum deltas should be functionally separated and this simplified a number of things. Issue #28 has been created for checksum deltas.
|
||||
|
||||
* Fixed an issue where a backup could be resumed from an aborted backup that didn't have the same type and prior backup.
|
||||
|
||||
@ -831,7 +872,7 @@ example: db-path=/data/db
|
||||
|
||||
### v0.16: RequestTTY=yes for SSH Sessions
|
||||
|
||||
* Added `RequestTTY=yes` to ssh sesssions. Hoping this will prevent random lockups.
|
||||
* Added `RequestTTY=yes` to ssh sessions. Hoping this will prevent random lockups.
|
||||
|
||||
### v0.15: RequestTTY=yes for SSH Sessions
|
||||
|
||||
@ -851,7 +892,7 @@ example: db-path=/data/db
|
||||
|
||||
* Archiving is single-threaded. This has not posed an issue on our multi-terabyte databases with heavy write volume. Recommend a large WAL volume or to use the async option with a large volume nearby.
|
||||
|
||||
* Backups are multi-threaded, but the Net::OpenSSH library does not appear to be 100% threadsafe so it will very occasionally lock up on a thread. There is an overall process timeout that resolves this issue by killing the process. Yes, very ugly.
|
||||
* Backups are multi-threaded, but the Net::OpenSSH library does not appear to be 100% thread-safe so it will very occasionally lock up on a thread. There is an overall process timeout that resolves this issue by killing the process. Yes, very ugly.
|
||||
|
||||
* Checksums are lost on any resumed backup. Only the final backup will record checksum on multiple resumes. Checksums from previous backups are correctly recorded and a full backup will reset everything.
|
||||
|
||||
@ -863,4 +904,4 @@ example: db-path=/data/db
|
||||
|
||||
Primary recognition goes to Stephen Frost for all his valuable advice and criticism during the development of PgBackRest.
|
||||
|
||||
Resonate (http://www.resonate.com/) also contributed to the development of PgBackRest and allowed me to install early (but well tested) versions as their primary Postgres backup solution.
|
||||
Crunchy Data Solutions (http://www.crunchydata.com) has contributed time and resources to PgBackRest and continues to support development. Resonate (http://www.resonate.com/) also contributed to the development of PgBackRest and allowed me to install early (but well tested) versions as their primary PostgreSQL backup solution.
|
||||
|
@ -10,20 +10,23 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename;
|
||||
$SIG{__DIE__} = sub { Carp::confess @_ };
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Exception;
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::Remote qw(DB BACKUP NONE);
|
||||
use BackRest::Db;
|
||||
use BackRest::File;
|
||||
use BackRest::Lock;
|
||||
use BackRest::Archive;
|
||||
use BackRest::Backup;
|
||||
use BackRest::Archive;
|
||||
use BackRest::Config;
|
||||
use BackRest::Db;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Info;
|
||||
use BackRest::Lock;
|
||||
use BackRest::Remote qw(DB BACKUP NONE);
|
||||
use BackRest::Restore;
|
||||
use BackRest::ThreadGroup;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Usage
|
||||
@ -122,11 +125,11 @@ $SIG{INT} = \&safe_exit;
|
||||
####################################################################################################################################
|
||||
# START EVAL BLOCK TO CATCH ERRORS AND STOP THREADS
|
||||
####################################################################################################################################
|
||||
eval {
|
||||
|
||||
####################################################################################################################################
|
||||
eval
|
||||
{
|
||||
################################################################################################################################
|
||||
# Load command line parameters and config
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
configLoad();
|
||||
|
||||
# Set the log levels
|
||||
@ -135,32 +138,40 @@ log_level_set(optionGet(OPTION_LOG_LEVEL_FILE), optionGet(OPTION_LOG_LEVEL_CONSO
|
||||
# Set test options
|
||||
!optionGet(OPTION_TEST) or test_set(optionGet(OPTION_TEST), optionGet(OPTION_TEST_DELAY));
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# Process archive commands
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
if (operationTest(OP_ARCHIVE_PUSH) || operationTest(OP_ARCHIVE_GET))
|
||||
{
|
||||
safe_exit(new BackRest::Archive()->process());
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# Process info command
|
||||
################################################################################################################################
|
||||
if (operationTest(OP_INFO))
|
||||
{
|
||||
safe_exit(new BackRest::Info()->info());
|
||||
}
|
||||
|
||||
################################################################################################################################
|
||||
# Acquire the operation lock
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
lockAcquire(operationGet());
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# Open the log file
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
log_file_set(optionGet(OPTION_REPO_PATH) . '/log/' . optionGet(OPTION_STANZA) . '-' . lc(operationGet()));
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# Create the thread group that will be used for parallel processing
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
threadGroupCreate();
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# Initialize the default file object
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
my $oFile = new BackRest::File
|
||||
(
|
||||
optionGet(OPTION_STANZA),
|
||||
@ -169,9 +180,9 @@ my $oFile = new BackRest::File
|
||||
optionRemote()
|
||||
);
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# RESTORE
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
if (operationTest(OP_RESTORE))
|
||||
{
|
||||
if (optionRemoteTypeTest(DB))
|
||||
@ -203,9 +214,9 @@ if (operationTest(OP_RESTORE))
|
||||
safe_exit(0);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# GET MORE CONFIG INFO
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# Make sure backup and expire operations happen on the backup side
|
||||
if (optionRemoteTypeTest(BACKUP))
|
||||
{
|
||||
@ -216,17 +227,15 @@ if (optionRemoteTypeTest(BACKUP))
|
||||
my $oDb;
|
||||
|
||||
if (operationTest(OP_BACKUP))
|
||||
{
|
||||
if (!optionGet(OPTION_NO_START_STOP))
|
||||
{
|
||||
$oDb = new BackRest::Db
|
||||
(
|
||||
!optionGet(OPTION_NO_START_STOP),
|
||||
optionGet(OPTION_DB_PATH),
|
||||
optionGet(OPTION_COMMAND_PSQL),
|
||||
optionGet(OPTION_DB_HOST, false),
|
||||
optionGet(OPTION_DB_USER, optionTest(OPTION_DB_HOST))
|
||||
);
|
||||
}
|
||||
|
||||
# Run backup_init - parameters required for backup and restore operations
|
||||
backup_init
|
||||
@ -243,9 +252,9 @@ if (operationTest(OP_BACKUP))
|
||||
);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# BACKUP
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
if (operationTest(OP_BACKUP))
|
||||
{
|
||||
backup(optionGet(OPTION_DB_PATH), optionGet(OPTION_START_FAST));
|
||||
@ -253,9 +262,9 @@ if (operationTest(OP_BACKUP))
|
||||
operationSet(OP_EXPIRE);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
# EXPIRE
|
||||
####################################################################################################################################
|
||||
################################################################################################################################
|
||||
if (operationTest(OP_EXPIRE))
|
||||
{
|
||||
if (!defined($oDb))
|
@ -12,13 +12,16 @@ use Carp qw(confess);
|
||||
|
||||
use File::Basename;
|
||||
use Getopt::Long;
|
||||
use JSON::PP;
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Utility;
|
||||
use BackRest::File;
|
||||
use BackRest::Remote;
|
||||
use BackRest::Exception;
|
||||
use BackRest::Archive;
|
||||
use BackRest::Db;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Info;
|
||||
use BackRest::Remote;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
@ -71,9 +74,11 @@ my $oFile = new BackRest::File
|
||||
$oRemote,
|
||||
);
|
||||
|
||||
|
||||
# Create the archive object
|
||||
# Create objects
|
||||
my $oArchive = new BackRest::Archive();
|
||||
my $oInfo = new BackRest::Info();
|
||||
my $oJSON = JSON::PP->new();
|
||||
my $oDb = new BackRest::Db(false);
|
||||
|
||||
# Command string
|
||||
my $strCommand = OP_NOOP;
|
||||
@ -205,13 +210,32 @@ while ($strCommand ne OP_EXIT)
|
||||
# Archive push checks
|
||||
elsif ($strCommand eq OP_ARCHIVE_PUSH_CHECK)
|
||||
{
|
||||
my $strChecksum = $oArchive->pushCheck($oFile,
|
||||
my ($strArchiveId, $strChecksum) = $oArchive->pushCheck($oFile,
|
||||
param_get(\%oParamHash, 'wal-segment'),
|
||||
undef,
|
||||
param_get(\%oParamHash, 'db-version'),
|
||||
param_get(\%oParamHash, 'db-sys-id'));
|
||||
|
||||
$oRemote->output_write(defined($strChecksum) ? $strChecksum : 'Y');
|
||||
$oRemote->output_write("${strArchiveId}\t" . (defined($strChecksum) ? $strChecksum : 'Y'));
|
||||
}
|
||||
elsif ($strCommand eq OP_ARCHIVE_GET_CHECK)
|
||||
{
|
||||
$oRemote->output_write($oArchive->getCheck($oFile));
|
||||
}
|
||||
# Info list stanza
|
||||
elsif ($strCommand eq OP_INFO_LIST_STANZA)
|
||||
{
|
||||
$oRemote->output_write(
|
||||
$oJSON->encode(
|
||||
$oInfo->listStanza($oFile,
|
||||
param_get(\%oParamHash, 'stanza', false))));
|
||||
}
|
||||
elsif ($strCommand eq OP_DB_INFO)
|
||||
{
|
||||
my ($strDbVersion, $iControlVersion, $iCatalogVersion, $ullDbSysId) =
|
||||
$oDb->info($oFile, param_get(\%oParamHash, 'db-path'));
|
||||
|
||||
$oRemote->output_write("${strDbVersion}\t${iControlVersion}\t${iCatalogVersion}\t${ullDbSysId}");
|
||||
}
|
||||
# Continue if noop or exit
|
||||
elsif ($strCommand ne OP_NOOP && $strCommand ne OP_EXIT)
|
80
doc/doc.xml
80
doc/doc.xml
@ -176,28 +176,28 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
<text><code-block>
|
||||
/path/to/pg_backrest.pl --stanza=db archive-get %f %p
|
||||
</code-block>
|
||||
Retrieves a WAL segment from the repository. This command is used in <file>restore.conf</file> to restore a backup, perform PITR, or as an alternative to streaming for keeping a replica up to date. <param>%f</param> is how <postgres/> specifies the WAL segment it needs and <param>%p</param> is the location where it should be copied.</text>
|
||||
Retrieves a WAL segment from the repository. This command is used in <file>recovery.conf</file> to restore a backup, perform PITR, or as an alternative to streaming for keeping a replica up to date. <param>%f</param> is how <postgres/> specifies the WAL segment it needs and <param>%p</param> is the location where it should be copied.</text>
|
||||
</command-example>
|
||||
</command-example-list>
|
||||
</command>
|
||||
|
||||
<!-- OPERATION - EXPIRE COMMAND -->
|
||||
<command id="expire">
|
||||
<text><backrest/> does backup rotation, but is not concerned with when the backups were created. So if two full backups are configured for rentention, <backrest/> will keep two full backups no matter whether they occur, two hours apart or two weeks apart.</text>
|
||||
<text><backrest/> does backup rotation, but is not concerned with when the backups were created. So if two full backups are configured for retention, <backrest/> will keep two full backups no matter whether they occur, two hours apart or two weeks apart.</text>
|
||||
|
||||
<command-example-list>
|
||||
<command-example>
|
||||
<text><code-block>
|
||||
/path/to/pg_backrest.pl --stanza=db expire
|
||||
</code-block>
|
||||
Expire (rotate) any backups that exceed the defined retention. Expiration is run automatically after every successful backup, so there is no need to run this command separately unless you have reduced rentention, usually to free up some space.</text>
|
||||
Expire (rotate) any backups that exceed the defined retention. Expiration is run automatically after every successful backup, so there is no need to run this command separately unless you have reduced retention, usually to free up some space.</text>
|
||||
</command-example>
|
||||
</command-example-list>
|
||||
</command>
|
||||
|
||||
<!-- OPERATION - RESTORE COMMAND -->
|
||||
<command id="restore">
|
||||
<text>Perform a database restore. This command is generall run manually, but there are instances where it might be automated.</text>
|
||||
<text>Perform a database restore. This command is generally run manually, but there are instances where it might be automated.</text>
|
||||
<option-list>
|
||||
<!-- OPERATION - RESTORE COMMAND - SET OPTION -->
|
||||
<option id="set">
|
||||
@ -253,7 +253,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
|
||||
<!-- OPERATION - RESTORE COMMAND - RECOVERY-SETTING OPTION -->
|
||||
<option id="recovery-setting">
|
||||
<text>Recovery settings in restore.conf options can be specified with this option. See http://www.postgresql.org/docs/X.X/static/recovery-config.html for details on restore.conf options (replace X.X with your database version). This option can be used multiple times.
|
||||
<text>Recovery settings in recovery.conf options can be specified with this option. See http://www.postgresql.org/docs/X.X/static/recovery-config.html for details on recovery.conf options (replace X.X with your database version). This option can be used multiple times.
|
||||
|
||||
Note: <setting>restore_command</setting> will be automatically generated but can be overridden with this option. Be careful about specifying your own <setting>restore_command</setting> as <backrest/> is designed to handle this for you. Target Recovery options (recovery_target_name, recovery_target_time, etc.) are generated automatically by <backrest/> and should not be set with this option.
|
||||
|
||||
@ -285,6 +285,36 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
</command-example>
|
||||
</command-example-list>
|
||||
</command>
|
||||
|
||||
<!-- OPERATION - INFO COMMAND -->
|
||||
<command id="info">
|
||||
<text>Retrieve information about backups for a single stanza or for all stanzas. Text output is the default and gives a human-readable summary of backups for the stanza(s) requested. This format is subject to change with any release.
|
||||
|
||||
For machine-readable output use <setting>--output=json</setting>. The JSON output contains far more information than the text output, however <b>this feature is currently experimental so the format may change between versions</b>.</text>
|
||||
|
||||
<option-list>
|
||||
<!-- OPERATION - INFO COMMAND - OUTPUT OPTION -->
|
||||
<option id="output">
|
||||
<text>The following output types are supported:
|
||||
<ul>
|
||||
<li><id>text</id> - Human-readable summary of backup information.</li>
|
||||
<li><id>json</id> - Exhaustive machine-readable backup information in JSON format.</li>
|
||||
</ul></text>
|
||||
|
||||
<example>json</example>
|
||||
</option>
|
||||
</option-list>
|
||||
|
||||
<command-example-list>
|
||||
<command-example title="Backup information">
|
||||
<text><code-block>
|
||||
/path/to/pg_backrest.pl --stanza=db --output=json info
|
||||
</code-block>
|
||||
|
||||
Get information about backups in the <id>db</id> stanza.</text>
|
||||
</command-example>
|
||||
</command-example-list>
|
||||
</command>
|
||||
</command-list>
|
||||
</operation>
|
||||
|
||||
@ -332,7 +362,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
|
||||
[global:general]
|
||||
compress=n
|
||||
repo-path=/Users/dsteele/Documents/Code/backrest/test/test/backrest
|
||||
repo-path=/path/to/db/repo
|
||||
|
||||
[global:log]
|
||||
log-level-file=debug
|
||||
@ -393,7 +423,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
<config-key id="cmd-psql">
|
||||
<text>Defines the full path to <cmd>psql</cmd>. <cmd>psql</cmd> is used to call <code>pg_start_backup()</code> and <code>pg_stop_backup()</code>.
|
||||
|
||||
If addtional per stanza parameters need to be passed to <cmd>psql</cmd> (such as <param>--port</param> or <param>--cluster</param>) then add <param>%option%</param> to the command line and use <setting>command-option::psql</setting> to set options.</text>
|
||||
If additional per stanza parameters need to be passed to <cmd>psql</cmd> (such as <param>--port</param> or <param>--cluster</param>) then add <param>%option%</param> to the command line and use <setting>command-option::psql</setting> to set options.</text>
|
||||
|
||||
<example>/usr/bin/psql -X %option%</example>
|
||||
</config-key>
|
||||
@ -592,7 +622,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
<config-key id="archive-max-mb">
|
||||
<text>Limits the amount of archive log that will be written locally when <setting>archive-async=y</setting>. After the limit is reached, the following will happen:
|
||||
<ol>
|
||||
<li>PgBackRest will notify Postgres that the archive was succesfully backed up, then DROP IT.</li>
|
||||
<li>PgBackRest will notify Postgres that the archive was successfully backed up, then DROP IT.</li>
|
||||
<li>An error will be logged to the console and also to the Postgres log.</li>
|
||||
<li>A stop file will be written in the lock directory and no more archive files will be backed up until it is removed.</li>
|
||||
</ol>
|
||||
@ -622,7 +652,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
|
||||
<!-- CONFIG - EXPIRE -->
|
||||
<config-section id="expire">
|
||||
<text>The <setting>expire</setting> section defines how long backups will be retained. Expiration only occurs when the number of complete backups exceeds the allowed retention. In other words, if full-retention is set to 2, then there must be 3 complete backups before the oldest will be expired. Make sure you always have enough space for rentention + 1 backups.</text>
|
||||
<text>The <setting>expire</setting> section defines how long backups will be retained. Expiration only occurs when the number of complete backups exceeds the allowed retention. In other words, if full-retention is set to 2, then there must be 3 complete backups before the oldest will be expired. Make sure you always have enough space for retention + 1 backups.</text>
|
||||
|
||||
<!-- CONFIG - RETENTION SECTION - FULL-RETENTION KEY -->
|
||||
<config-key-list>
|
||||
@ -650,7 +680,9 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
|
||||
<!-- CONFIG - RETENTION SECTION - ARCHIVE-RETENTION KEY -->
|
||||
<config-key id="retention-archive">
|
||||
<text>Number of backups worth of archive log to keep.</text>
|
||||
<text>Number of backups worth of archive log to keep. If this is set less than your backup retention then be sure you set <setting>archive-copy=y</setting> or you won't be able to restore some older backups.
|
||||
|
||||
For example, if <setting>retention-archive=2</setting> and <setting>retention-full=4</setting>, then any backups older than the most recent two full backups will not have WAL segments in the archive to make them consistent. To solve this, set <setting>archive-copy=y</setting> and use <setting>type=none</setting> when restoring. This issue will be addressed in a future release but for now be careful with this setting.</text>
|
||||
|
||||
<example>2</example>
|
||||
</config-key>
|
||||
@ -689,6 +721,26 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
|
||||
<release title="Release Notes">
|
||||
<release-version-list>
|
||||
<release-version version="0.75" title="New repository format, info command and experimental 9.5 support">
|
||||
<release-feature-bullet-list>
|
||||
<release-feature>
|
||||
<text>IMPORTANT NOTE: This flag day release breaks compatibility with older versions of <backrest/>. The manifest format, on-disk structure, and the binary names have all changed. You must create a new repository to hold backups for this version of <backrest/> and keep your older repository for a time in case you need to do a restore. The <file>pg_backrest.conf</file> file has not changed but you'll need to change any references to <file>pg_backrest.pl</file> in cron (or elsewhere) to <file>pg_backrest</file> (without the <file>.pl</file> extension).</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>Add info command.</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>More efficient file ordering for backup. Files are copied in descending size order so a single thread does not end up copying a large file at the end. This had already been implemented for restore.</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>Logging now uses unbuffered output. This should make log files that are being written by multiple threads less chaotic. Suggested by Michael Renner.</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>Experimental support for <postgres/> 9.5. This may break when the control version or WAL magic changes but will be updated in each release.</text>
|
||||
</release-feature>
|
||||
</release-feature-bullet-list>
|
||||
</release-version>
|
||||
|
||||
<release-version version="0.70" title="Stability improvements for archiving, improved logging and help">
|
||||
<release-feature-bullet-list>
|
||||
<release-feature>
|
||||
@ -778,7 +830,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
<text>Added option <param>--no-start-stop</param> to allow backups when Postgres is shut down. If <file>postmaster.pid</file> is present then <param>--force</param> is required to make the backup run (though if Postgres is running an inconsistent backup will likely be created). This option was added primarily for the purpose of unit testing, but there may be applications in the real world as well.</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>Fixed broken checksums and now they work with normal and resumed backups. Finally realized that checksums and checksum deltas should be functionally separated and this simplied a number of things. Issue #28 has been created for checksum deltas.</text>
|
||||
<text>Fixed broken checksums and now they work with normal and resumed backups. Finally realized that checksums and checksum deltas should be functionally separated and this simplified a number of things. Issue #28 has been created for checksum deltas.</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>Fixed an issue where a backup could be resumed from an aborted backup that didn't have the same type and prior backup.</text>
|
||||
@ -848,7 +900,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
<release-version version="0.16" title="RequestTTY=yes for SSH Sessions">
|
||||
<release-feature-bullet-list>
|
||||
<release-feature>
|
||||
<text>Added <setting>RequestTTY=yes</setting> to ssh sesssions. Hoping this will prevent random lockups.</text>
|
||||
<text>Added <setting>RequestTTY=yes</setting> to ssh sessions. Hoping this will prevent random lockups.</text>
|
||||
</release-feature>
|
||||
</release-feature-bullet-list>
|
||||
</release-version>
|
||||
@ -884,7 +936,7 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
<text>Archiving is single-threaded. This has not posed an issue on our multi-terabyte databases with heavy write volume. Recommend a large WAL volume or to use the async option with a large volume nearby.</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>Backups are multi-threaded, but the Net::OpenSSH library does not appear to be 100% threadsafe so it will very occasionally lock up on a thread. There is an overall process timeout that resolves this issue by killing the process. Yes, very ugly.</text>
|
||||
<text>Backups are multi-threaded, but the Net::OpenSSH library does not appear to be 100% thread-safe so it will very occasionally lock up on a thread. There is an overall process timeout that resolves this issue by killing the process. Yes, very ugly.</text>
|
||||
</release-feature>
|
||||
<release-feature>
|
||||
<text>Checksums are lost on any resumed backup. Only the final backup will record checksum on multiple resumes. Checksums from previous backups are correctly recorded and a full backup will reset everything.</text>
|
||||
@ -903,6 +955,6 @@ Run a <id>full</id> backup on the <id>db</id> stanza. <param>--type</param> can
|
||||
<recognition title="Recognition">
|
||||
<text>Primary recognition goes to Stephen Frost for all his valuable advice and criticism during the development of <backrest/>.
|
||||
|
||||
Resonate (http://www.resonate.com/) also contributed to the development of PgBackRest and allowed me to install early (but well tested) versions as their primary Postgres backup solution.</text>
|
||||
Crunchy Data Solutions (http://www.crunchydata.com) has contributed time and resources to <backrest/> and continues to support development. Resonate (http://www.resonate.com/) also contributed to the development of <backrest/> and allowed me to install early (but well tested) versions as their primary <postgres/> backup solution.</text>
|
||||
</recognition>
|
||||
</doc>
|
||||
|
@ -7,37 +7,29 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname basename);
|
||||
use Fcntl qw(SEEK_CUR O_RDONLY O_WRONLY O_CREAT O_EXCL);
|
||||
use Exporter qw(import);
|
||||
use Fcntl qw(SEEK_CUR O_RDONLY O_WRONLY O_CREAT O_EXCL);
|
||||
use File::Basename qw(dirname basename);
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Utility;
|
||||
use BackRest::Exception;
|
||||
use BackRest::ArchiveInfo;
|
||||
use BackRest::Config;
|
||||
use BackRest::Lock;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Lock;
|
||||
use BackRest::Remote;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
####################################################################################################################################
|
||||
use constant
|
||||
{
|
||||
OP_ARCHIVE_PUSH_CHECK => 'Archive->pushCheck'
|
||||
};
|
||||
use constant OP_ARCHIVE => 'Archive';
|
||||
|
||||
use constant OP_ARCHIVE_PUSH_CHECK => OP_ARCHIVE . '->pushCheck';
|
||||
our @EXPORT = qw(OP_ARCHIVE_PUSH_CHECK);
|
||||
|
||||
####################################################################################################################################
|
||||
# File constants
|
||||
####################################################################################################################################
|
||||
use constant
|
||||
{
|
||||
ARCHIVE_INFO_FILE => 'archive.info'
|
||||
};
|
||||
|
||||
push @EXPORT, qw(ARCHIVE_INFO_FILE);
|
||||
use constant OP_ARCHIVE_GET_CHECK => OP_ARCHIVE . '->getCheck';
|
||||
push @EXPORT, qw(OP_ARCHIVE_GET_CHECK);
|
||||
|
||||
####################################################################################################################################
|
||||
# constructor
|
||||
@ -114,6 +106,7 @@ sub walFileName
|
||||
{
|
||||
my $self = shift;
|
||||
my $oFile = shift;
|
||||
my $strArchiveId = shift;
|
||||
my $strWalSegment = shift;
|
||||
my $iWaitSeconds = shift;
|
||||
|
||||
@ -121,7 +114,7 @@ sub walFileName
|
||||
my $oWait = waitInit($iWaitSeconds);
|
||||
|
||||
# Determine the path where the requested WAL segment is located
|
||||
my $strArchivePath = dirname($oFile->path_get(PATH_BACKUP_ARCHIVE, $strWalSegment));
|
||||
my $strArchivePath = dirname($oFile->path_get(PATH_BACKUP_ARCHIVE, "$strArchiveId/${strWalSegment}"));
|
||||
|
||||
do
|
||||
{
|
||||
@ -183,7 +176,12 @@ sub walInfo
|
||||
my $strDbVersion;
|
||||
my $iSysIdOffset;
|
||||
|
||||
if ($iMagic == hex('0xD07E'))
|
||||
if ($iMagic == hex('0xD085'))
|
||||
{
|
||||
$strDbVersion = '9.5';
|
||||
$iSysIdOffset = 20;
|
||||
}
|
||||
elsif ($iMagic == hex('0xD07E'))
|
||||
{
|
||||
$strDbVersion = '9.4';
|
||||
$iSysIdOffset = 20;
|
||||
@ -292,7 +290,8 @@ sub get
|
||||
}
|
||||
|
||||
# Get the wal segment filename
|
||||
my $strArchiveFile = $self->walFileName($oFile, $strSourceArchive);
|
||||
my $strArchiveId = $self->getCheck($oFile);
|
||||
my $strArchiveFile = $self->walFileName($oFile, $strArchiveId, $strSourceArchive);
|
||||
|
||||
# If there are no matching archive files then there are two possibilities:
|
||||
# 1) The end of the archive stream has been reached, this is normal and a 1 will be returned
|
||||
@ -312,7 +311,7 @@ sub get
|
||||
my $bSourceCompressed = $strArchiveFile =~ "^.*\.$oFile->{strCompressExtension}\$" ? true : false;
|
||||
|
||||
# Copy the archive file to the requested location
|
||||
$oFile->copy(PATH_BACKUP_ARCHIVE, $strArchiveFile, # Source file
|
||||
$oFile->copy(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strArchiveFile}", # Source file
|
||||
PATH_DB_ABSOLUTE, $strDestinationFile, # Destination file
|
||||
$bSourceCompressed, # Source compression based on detection
|
||||
false); # Destination is not compressed
|
||||
@ -320,6 +319,32 @@ sub get
|
||||
return 0;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# getCheck
|
||||
####################################################################################################################################
|
||||
sub getCheck
|
||||
{
|
||||
my $self = shift;
|
||||
my $oFile = shift;
|
||||
|
||||
# &log(DEBUG, OP_ARCHIVE_GET_CHECK . "()");
|
||||
my $strArchiveId;
|
||||
|
||||
if ($oFile->is_remote(PATH_BACKUP_ARCHIVE))
|
||||
{
|
||||
$strArchiveId = $oFile->{oRemote}->command_execute(OP_ARCHIVE_GET_CHECK, undef, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$strArchiveId = (new BackRest::ArchiveInfo($oFile->path_get(PATH_BACKUP_ARCHIVE)))->archiveId();
|
||||
}
|
||||
|
||||
# Set operation and debug strings
|
||||
&log(DEBUG, OP_ARCHIVE_GET_CHECK . "=>: archiveId = ${strArchiveId}");
|
||||
|
||||
return $strArchiveId;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# pushProcess
|
||||
####################################################################################################################################
|
||||
@ -465,12 +490,27 @@ sub push
|
||||
my $bArchiveFile = basename($strSourceFile) =~ /^[0-F]{24}$/ ? true : false;
|
||||
|
||||
# Check that there are no issues with pushing this WAL segment
|
||||
if ($bArchiveFile && !$bAsync)
|
||||
my $strArchiveId;
|
||||
my $strChecksum = undef;
|
||||
|
||||
if (!$bAsync)
|
||||
{
|
||||
if ($bArchiveFile)
|
||||
{
|
||||
my ($strDbVersion, $ullDbSysId) = $self->walInfo($strSourceFile);
|
||||
$self->pushCheck($oFile, substr(basename($strSourceFile), 0, 24), $strSourceFile, $strDbVersion, $ullDbSysId);
|
||||
($strArchiveId, $strChecksum) = $self->pushCheck($oFile, substr(basename($strSourceFile), 0, 24), $strSourceFile,
|
||||
$strDbVersion, $ullDbSysId);
|
||||
}
|
||||
else
|
||||
{
|
||||
$strArchiveId = $self->getCheck($oFile);
|
||||
}
|
||||
}
|
||||
|
||||
# Only copy the WAL segment if checksum is not defined. If checksum is defined it means that the WAL segment already exists
|
||||
# in the repository with the same checksum (else there would have been an error on checksum mismatch).
|
||||
if (!defined($strChecksum))
|
||||
{
|
||||
# Append compression extension
|
||||
if ($bArchiveFile && $bCompress)
|
||||
{
|
||||
@ -480,7 +520,7 @@ sub push
|
||||
# Copy the WAL segment
|
||||
$oFile->copy(PATH_DB_ABSOLUTE, $strSourceFile, # Source type/file
|
||||
$bAsync ? PATH_BACKUP_ARCHIVE_OUT : PATH_BACKUP_ARCHIVE, # Destination type
|
||||
$strDestinationFile, # Destination file
|
||||
($bAsync ? '' : "${strArchiveId}/") . $strDestinationFile, # Destination file
|
||||
false, # Source is not compressed
|
||||
$bArchiveFile && $bCompress, # Destination compress is configurable
|
||||
undef, undef, undef, # Unused params
|
||||
@ -488,6 +528,7 @@ sub push
|
||||
undef, undef, # User and group
|
||||
$bArchiveFile); # Append checksum if archive file
|
||||
}
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# pushCheck
|
||||
@ -505,6 +546,7 @@ sub pushCheck
|
||||
my $strOperation = OP_ARCHIVE_PUSH_CHECK;
|
||||
&log(DEBUG, "${strOperation}: " . PATH_BACKUP_ARCHIVE . ":${strWalSegment}");
|
||||
my $strChecksum;
|
||||
my $strArchiveId;
|
||||
|
||||
if ($oFile->is_remote(PATH_BACKUP_ARCHIVE))
|
||||
{
|
||||
@ -519,7 +561,10 @@ sub pushCheck
|
||||
&log(TRACE, "${strOperation}: remote (" . $oFile->{oRemote}->command_param_string(\%oParamHash) . ')');
|
||||
|
||||
# Execute the command
|
||||
$strChecksum = $oFile->{oRemote}->command_execute($strOperation, \%oParamHash, true);
|
||||
my $strResult = $oFile->{oRemote}->command_execute($strOperation, \%oParamHash, true);
|
||||
|
||||
$strArchiveId = (split("\t", $strResult))[0];
|
||||
$strChecksum = (split("\t", $strResult))[1];
|
||||
|
||||
if ($strChecksum eq 'Y')
|
||||
{
|
||||
@ -535,40 +580,10 @@ sub pushCheck
|
||||
}
|
||||
|
||||
# If the info file exists check db version and system-id
|
||||
my %oDbConfig;
|
||||
|
||||
if ($oFile->exists(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE))
|
||||
{
|
||||
ini_load($oFile->path_get(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), \%oDbConfig);
|
||||
|
||||
my $strError = undef;
|
||||
|
||||
if ($oDbConfig{database}{'version'} ne $strDbVersion)
|
||||
{
|
||||
$strError = "WAL segment version ${strDbVersion} does not match archive version $oDbConfig{database}{'version'}";
|
||||
}
|
||||
|
||||
if ($oDbConfig{database}{'system-id'} ne $ullDbSysId)
|
||||
{
|
||||
$strError = "WAL segment system-id ${ullDbSysId} does not match" .
|
||||
" archive system-id $oDbConfig{database}{'system-id'}";
|
||||
}
|
||||
|
||||
if (defined($strError))
|
||||
{
|
||||
confess &log(ERROR, "${strError}\nHINT: are you archiving to the correct stanza?", ERROR_ARCHIVE_MISMATCH);
|
||||
}
|
||||
}
|
||||
# Else create the info file from the current WAL segment
|
||||
else
|
||||
{
|
||||
$oDbConfig{database}{'system-id'} = $ullDbSysId;
|
||||
$oDbConfig{database}{'version'} = $strDbVersion;
|
||||
ini_save($oFile->path_get(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE), \%oDbConfig);
|
||||
}
|
||||
$strArchiveId = (new BackRest::ArchiveInfo($oFile->path_get(PATH_BACKUP_ARCHIVE)))->check($strDbVersion, $ullDbSysId);
|
||||
|
||||
# Check if the WAL segment already exists in the archive
|
||||
$strChecksum = $self->walFileName($oFile, $strWalSegment);
|
||||
$strChecksum = $self->walFileName($oFile, $strArchiveId, $strWalSegment);
|
||||
|
||||
if (defined($strChecksum))
|
||||
{
|
||||
@ -588,10 +603,10 @@ sub pushCheck
|
||||
&log(WARN, "WAL segment ${strWalSegment} already exists in the archive with the same checksum\n" .
|
||||
"HINT: this is valid in some recovery scenarios but may also indicate a problem");
|
||||
|
||||
return undef;
|
||||
return $strArchiveId, $strChecksum;
|
||||
}
|
||||
|
||||
return $strChecksum;
|
||||
return $strArchiveId, $strChecksum;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
@ -691,19 +706,33 @@ sub xfer
|
||||
"destination_compress ${bDestinationCompress}, default_compress = " . optionGet(OPTION_COMPRESS));
|
||||
|
||||
# Check that there are no issues with pushing this WAL segment
|
||||
my $strArchiveId;
|
||||
my $strChecksum = undef;
|
||||
|
||||
if ($bArchiveFile)
|
||||
{
|
||||
my ($strDbVersion, $ullDbSysId) = $self->walInfo($strArchiveFile);
|
||||
$self->pushCheck($oFile, substr(basename($strArchiveFile), 0, 24), $strArchiveFile, $strDbVersion, $ullDbSysId);
|
||||
($strArchiveId, $strChecksum) = $self->pushCheck($oFile, substr(basename($strArchiveFile), 0, 24),
|
||||
$strArchiveFile, $strDbVersion, $ullDbSysId);
|
||||
}
|
||||
else
|
||||
{
|
||||
$strArchiveId = $self->getCheck($oFile);
|
||||
}
|
||||
|
||||
# Only copy the WAL segment if checksum is not defined. If checksum is defined it means that the WAL segment already
|
||||
# exists in the repository with the same checksum (else there would have been an error on checksum mismatch).
|
||||
if (!defined($strChecksum))
|
||||
{
|
||||
# Copy the archive file
|
||||
$oFile->copy(PATH_DB_ABSOLUTE, $strArchiveFile, # Source file
|
||||
PATH_BACKUP_ARCHIVE, $strDestinationFile, # Destination file
|
||||
$oFile->copy(PATH_DB_ABSOLUTE, $strArchiveFile, # Source path/file
|
||||
PATH_BACKUP_ARCHIVE, # Destination path
|
||||
"${strArchiveId}/${strDestinationFile}", # Destination file
|
||||
$bSourceCompressed, # Source is not compressed
|
||||
$bDestinationCompress, # Destination compress is configurable
|
||||
undef, undef, undef, # Unused params
|
||||
true); # Create path if it does not exist
|
||||
}
|
||||
|
||||
# Remove the source archive file
|
||||
unlink($strArchiveFile)
|
||||
|
149
lib/BackRest/ArchiveInfo.pm
Normal file
149
lib/BackRest/ArchiveInfo.pm
Normal file
@ -0,0 +1,149 @@
|
||||
####################################################################################################################################
|
||||
# ARCHIVE INFO MODULE
|
||||
####################################################################################################################################
|
||||
package BackRest::ArchiveInfo;
|
||||
use parent 'BackRest::Ini';
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname basename);
|
||||
use File::stat;
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::BackupInfo;
|
||||
use BackRest::Config;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
####################################################################################################################################
|
||||
use constant OP_ARCHIVE_INFO => 'ArchiveInfo';
|
||||
|
||||
use constant OP_ARCHIVE_INFO_NEW => OP_ARCHIVE_INFO . "->new";
|
||||
|
||||
####################################################################################################################################
|
||||
# File/path constants
|
||||
####################################################################################################################################
|
||||
use constant ARCHIVE_INFO_FILE => 'archive.info';
|
||||
our @EXPORT = qw(ARCHIVE_INFO_FILE);
|
||||
|
||||
####################################################################################################################################
|
||||
# Backup info Constants
|
||||
####################################################################################################################################
|
||||
use constant INFO_ARCHIVE_SECTION_DB => INFO_BACKUP_SECTION_DB;
|
||||
push @EXPORT, qw(INFO_ARCHIVE_SECTION_DB);
|
||||
use constant INFO_ARCHIVE_SECTION_DB_HISTORY => INFO_BACKUP_SECTION_DB_HISTORY;
|
||||
push @EXPORT, qw(INFO_ARCHIVE_SECTION_DB);
|
||||
|
||||
use constant INFO_ARCHIVE_KEY_DB_VERSION => MANIFEST_KEY_DB_VERSION;
|
||||
push @EXPORT, qw(INFO_ARCHIVE_KEY_DB_VERSION);
|
||||
use constant INFO_ARCHIVE_KEY_DB_ID => INFO_BACKUP_KEY_HISTORY_ID;
|
||||
push @EXPORT, qw(INFO_ARCHIVE_KEY_DB_ID);
|
||||
use constant INFO_ARCHIVE_KEY_DB_SYSTEM_ID => MANIFEST_KEY_SYSTEM_ID;
|
||||
push @EXPORT, qw(INFO_ARCHIVE_KEY_DB_SYSTEM_ID);
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
####################################################################################################################################
|
||||
sub new
|
||||
{
|
||||
my $class = shift; # Class name
|
||||
my $strArchiveClusterPath = shift; # Backup cluster path
|
||||
|
||||
&log(DEBUG, OP_ARCHIVE_INFO_NEW . "(): archiveClusterPath = ${strArchiveClusterPath}");
|
||||
|
||||
# Build the archive info path/file name
|
||||
my $strArchiveInfoFile = "${strArchiveClusterPath}/" . ARCHIVE_INFO_FILE;
|
||||
my $bExists = -e $strArchiveInfoFile ? true : false;
|
||||
|
||||
# Init object and store variables
|
||||
my $self = $class->SUPER::new($strArchiveInfoFile, $bExists);
|
||||
|
||||
$self->{bExists} = $bExists;
|
||||
$self->{strArchiveClusterPath} = $strArchiveClusterPath;
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# check
|
||||
#
|
||||
# Check archive info and make it is compatible.
|
||||
####################################################################################################################################
|
||||
sub check
|
||||
{
|
||||
my $self = shift;
|
||||
my $strDbVersion = shift;
|
||||
my $ullDbSysId = shift;
|
||||
|
||||
my $bSave = false;
|
||||
|
||||
if ($self->test(INFO_ARCHIVE_SECTION_DB))
|
||||
{
|
||||
my $strError = undef;
|
||||
|
||||
if (!$self->test(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION, undef, $strDbVersion))
|
||||
{
|
||||
$strError = "WAL segment version ${strDbVersion} does not match archive version " .
|
||||
$self->get(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION);
|
||||
}
|
||||
|
||||
if (!$self->test(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_SYSTEM_ID, undef, $ullDbSysId))
|
||||
{
|
||||
$strError = "WAL segment system-id ${ullDbSysId} does not match archive system-id " .
|
||||
$self->get(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_SYSTEM_ID);
|
||||
}
|
||||
|
||||
if (defined($strError))
|
||||
{
|
||||
confess &log(ERROR, "${strError}\nHINT: are you archiving to the correct stanza?", ERROR_ARCHIVE_MISMATCH);
|
||||
}
|
||||
}
|
||||
# Else create the info file from the current WAL segment
|
||||
else
|
||||
{
|
||||
my $iDbId = 1;
|
||||
|
||||
# Fill db section
|
||||
$self->setNumeric(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_SYSTEM_ID, undef, $ullDbSysId);
|
||||
$self->set(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION, undef, $strDbVersion);
|
||||
$self->setNumeric(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_ID, undef, $iDbId);
|
||||
|
||||
# Fill db history
|
||||
$self->setNumeric(INFO_ARCHIVE_SECTION_DB_HISTORY, $iDbId, INFO_ARCHIVE_KEY_DB_ID, $ullDbSysId);
|
||||
$self->set(INFO_ARCHIVE_SECTION_DB_HISTORY, $iDbId, INFO_ARCHIVE_KEY_DB_VERSION, $strDbVersion);
|
||||
|
||||
$bSave = true;
|
||||
}
|
||||
|
||||
# Save if changes have been made
|
||||
if ($bSave)
|
||||
{
|
||||
$self->save();
|
||||
}
|
||||
|
||||
return $self->archiveId();
|
||||
}
|
||||
|
||||
|
||||
####################################################################################################################################
|
||||
# archiveId
|
||||
#
|
||||
# Get the archive id.
|
||||
####################################################################################################################################
|
||||
sub archiveId
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
return $self->get(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION) . "-" .
|
||||
$self->get(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_ID);
|
||||
}
|
||||
|
||||
1;
|
@ -8,24 +8,26 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use Fcntl 'SEEK_CUR';
|
||||
use File::Basename;
|
||||
use File::Path qw(remove_tree);
|
||||
use Scalar::Util qw(looks_like_number);
|
||||
use Fcntl 'SEEK_CUR';
|
||||
use Thread::Queue;
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Utility;
|
||||
use BackRest::Exception;
|
||||
use BackRest::Config;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::File;
|
||||
use BackRest::Db;
|
||||
use BackRest::ThreadGroup;
|
||||
use BackRest::Archive;
|
||||
use BackRest::BackupCommon;
|
||||
use BackRest::BackupFile;
|
||||
|
||||
use Exporter qw(import);
|
||||
use BackRest::BackupInfo;
|
||||
use BackRest::Config;
|
||||
use BackRest::Db;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::ThreadGroup;
|
||||
use BackRest::Utility;
|
||||
|
||||
our @EXPORT = qw(backup_init backup_cleanup backup backup_expire archive_list_get);
|
||||
|
||||
@ -73,67 +75,6 @@ sub backup_cleanup
|
||||
undef($oFile);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# BACKUP_REGEXP_GET - Generate a regexp depending on the backups that need to be found
|
||||
####################################################################################################################################
|
||||
sub backup_regexp_get
|
||||
{
|
||||
my $bFull = shift;
|
||||
my $bDifferential = shift;
|
||||
my $bIncremental = shift;
|
||||
|
||||
if (!$bFull && !$bDifferential && !$bIncremental)
|
||||
{
|
||||
confess &log(ERROR, 'one parameter must be true');
|
||||
}
|
||||
|
||||
my $strDateTimeRegExp = "[0-9]{8}\\-[0-9]{6}";
|
||||
my $strRegExp = '^';
|
||||
|
||||
if ($bFull || $bDifferential || $bIncremental)
|
||||
{
|
||||
$strRegExp .= $strDateTimeRegExp . 'F';
|
||||
}
|
||||
|
||||
if ($bDifferential || $bIncremental)
|
||||
{
|
||||
if ($bFull)
|
||||
{
|
||||
$strRegExp .= "(\\_";
|
||||
}
|
||||
else
|
||||
{
|
||||
$strRegExp .= "\\_";
|
||||
}
|
||||
|
||||
$strRegExp .= $strDateTimeRegExp;
|
||||
|
||||
if ($bDifferential && $bIncremental)
|
||||
{
|
||||
$strRegExp .= '(D|I)';
|
||||
}
|
||||
elsif ($bDifferential)
|
||||
{
|
||||
$strRegExp .= 'D';
|
||||
}
|
||||
else
|
||||
{
|
||||
$strRegExp .= 'I';
|
||||
}
|
||||
|
||||
if ($bFull)
|
||||
{
|
||||
$strRegExp .= '){0,1}';
|
||||
}
|
||||
}
|
||||
|
||||
$strRegExp .= "\$";
|
||||
|
||||
&log(DEBUG, "backup_regexp_get($bFull, $bDifferential, $bIncremental): $strRegExp");
|
||||
|
||||
return $strRegExp;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# BACKUP_TYPE_FIND - Find the last backup depending on the type
|
||||
####################################################################################################################################
|
||||
@ -146,12 +87,12 @@ sub backup_type_find
|
||||
|
||||
if ($strType eq BACKUP_TYPE_INCR)
|
||||
{
|
||||
$strDirectory = ($oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(1, 1, 1), 'reverse'))[0];
|
||||
$strDirectory = ($oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(1, 1, 1), 'reverse'))[0];
|
||||
}
|
||||
|
||||
if (!defined($strDirectory) && $strType ne BACKUP_TYPE_FULL)
|
||||
{
|
||||
$strDirectory = ($oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(1, 0, 0), 'reverse'))[0];
|
||||
$strDirectory = ($oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(1, 0, 0), 'reverse'))[0];
|
||||
}
|
||||
|
||||
return $strDirectory;
|
||||
@ -174,26 +115,37 @@ sub backup_file_not_in_manifest
|
||||
foreach my $strName (sort(keys $oFileHash{name}))
|
||||
{
|
||||
# Ignore certain files that will never be in the manifest
|
||||
if ($strName eq 'backup.manifest' ||
|
||||
if ($strName eq FILE_MANIFEST ||
|
||||
$strName eq '.')
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
# Get the base directory
|
||||
my $strBasePath = (split('/', $strName))[0];
|
||||
|
||||
if ($strBasePath eq $strName)
|
||||
if ($strName eq MANIFEST_KEY_BASE)
|
||||
{
|
||||
my $strSection = $strBasePath eq 'tablespace' ? 'backup:tablespace' : "${strBasePath}:path";
|
||||
|
||||
if ($oManifest->test($strSection))
|
||||
if ($oManifest->test(MANIFEST_SECTION_BACKUP_PATH, $strName))
|
||||
{
|
||||
next;
|
||||
}
|
||||
}
|
||||
elsif ($strName eq MANIFEST_TABLESPACE)
|
||||
{
|
||||
my $bFound = false;
|
||||
|
||||
foreach my $strPath ($oManifest->keys(MANIFEST_SECTION_BACKUP_PATH))
|
||||
{
|
||||
if ($strPath =~ /^$strName\//)
|
||||
{
|
||||
$bFound = true;
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
next if $bFound;
|
||||
}
|
||||
else
|
||||
{
|
||||
my $strBasePath = (split('/', $strName))[0];
|
||||
my $strPath = substr($strName, length($strBasePath) + 1);
|
||||
|
||||
# Create the section from the base path
|
||||
@ -203,7 +155,7 @@ sub backup_file_not_in_manifest
|
||||
{
|
||||
my $strTablespace = (split('/', $strPath))[0];
|
||||
|
||||
$strSection = $strSection . ':' . $strTablespace;
|
||||
$strSection = $strSection . '/' . $strTablespace;
|
||||
|
||||
if ($strTablespace eq $strPath)
|
||||
{
|
||||
@ -233,9 +185,9 @@ sub backup_file_not_in_manifest
|
||||
my $strChecksum = $oAbortedManifest->get("${strSection}:file", $strPath, MANIFEST_SUBKEY_CHECKSUM, false);
|
||||
|
||||
if (defined($strChecksum) &&
|
||||
$oManifest->get("${strSection}:file", $strPath, MANIFEST_SUBKEY_SIZE) ==
|
||||
$oManifest->getNumeric("${strSection}:file", $strPath, MANIFEST_SUBKEY_SIZE) ==
|
||||
$oFileHash{name}{$strName}{size} &&
|
||||
$oManifest->get("${strSection}:file", $strPath, MANIFEST_SUBKEY_MODIFICATION_TIME) ==
|
||||
$oManifest->getNumeric("${strSection}:file", $strPath, MANIFEST_SUBKEY_TIMESTAMP) ==
|
||||
$oFileHash{name}{$strName}{modification_time})
|
||||
{
|
||||
$oManifest->set("${strSection}:file", $strPath, MANIFEST_SUBKEY_CHECKSUM, $strChecksum);
|
||||
@ -323,34 +275,18 @@ sub backup_file
|
||||
my $strBackupSourcePath; # Absolute path to the database base directory or tablespace to backup
|
||||
my $strBackupDestinationPath; # Relative path to the backup directory where the data will be stored
|
||||
|
||||
# Process the base database directory
|
||||
if ($strPathKey =~ /^base$/)
|
||||
{
|
||||
$strBackupSourcePath = $strDbClusterPath;
|
||||
$strBackupDestinationPath = 'base';
|
||||
}
|
||||
# Process each tablespace
|
||||
elsif ($strPathKey =~ /^tablespace\:/)
|
||||
{
|
||||
my $strTablespaceName = (split(':', $strPathKey))[1];
|
||||
$strBackupSourcePath = $oBackupManifest->get(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName,
|
||||
MANIFEST_SUBKEY_PATH);
|
||||
$strBackupDestinationPath = "tablespace/${strTablespaceName}";
|
||||
$strBackupSourcePath = $oBackupManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_PATH);
|
||||
$strBackupDestinationPath = $strPathKey;
|
||||
|
||||
# Create the tablespace directory and link
|
||||
if ($bFullCreate)
|
||||
# Create links for tablespaces
|
||||
if ($oBackupManifest->test(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_LINK) && $bFullCreate)
|
||||
{
|
||||
$oFile->link_create(PATH_BACKUP_TMP, $strBackupDestinationPath,
|
||||
PATH_BACKUP_TMP,
|
||||
'base/pg_tblspc/' . $oBackupManifest->get(MANIFEST_SECTION_BACKUP_TABLESPACE,
|
||||
$strTablespaceName, MANIFEST_SUBKEY_LINK),
|
||||
'base/pg_tblspc/' . $oBackupManifest->get(MANIFEST_SECTION_BACKUP_PATH,
|
||||
$strPathKey, MANIFEST_SUBKEY_LINK),
|
||||
false, true, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
confess &log(ASSERT, "cannot find type for path ${strPathKey}");
|
||||
}
|
||||
|
||||
# If this is a full backup or hard-linked then create all paths and links
|
||||
if ($bFullCreate)
|
||||
@ -392,11 +328,6 @@ sub backup_file
|
||||
# Possible for the file section to exist with no files (i.e. empty tablespace)
|
||||
my $strSectionFile = "$strPathKey:file";
|
||||
|
||||
if (!$oBackupManifest->test($strSectionFile))
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
# Iterate through the files for each backup source path
|
||||
foreach my $strFile ($oBackupManifest->keys($strSectionFile))
|
||||
{
|
||||
@ -412,31 +343,37 @@ sub backup_file
|
||||
# If hardlinking is turned on then create a hardlink for files that have not changed since the last backup
|
||||
if ($bHardLink)
|
||||
{
|
||||
&log(DEBUG, "hard-linking ${strBackupSourceFile} from ${strReference}");
|
||||
&log(DEBUG, "hardlink ${strBackupSourceFile} to ${strReference}");
|
||||
|
||||
$oFile->link_create(PATH_BACKUP_CLUSTER, "${strReference}/${strBackupDestinationPath}/${strFile}",
|
||||
PATH_BACKUP_TMP, "${strBackupDestinationPath}/${strFile}", true, false, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
&log(DEBUG, "reference ${strBackupSourceFile} to ${strReference}");
|
||||
}
|
||||
|
||||
$bProcess = false;
|
||||
}
|
||||
|
||||
if ($bProcess)
|
||||
{
|
||||
my $lFileSize = $oBackupManifest->get($strSectionFile, $strFile, MANIFEST_SUBKEY_SIZE);
|
||||
my $lFileSize = $oBackupManifest->getNumeric($strSectionFile, $strFile, MANIFEST_SUBKEY_SIZE);
|
||||
|
||||
# Setup variables needed for threaded copy
|
||||
$lFileTotal++;
|
||||
$lSizeTotal += $lFileSize;
|
||||
|
||||
$oFileCopyMap{$strPathKey}{$strFile}{db_file} = $strBackupSourceFile;
|
||||
$oFileCopyMap{$strPathKey}{$strFile}{file_section} = $strSectionFile;
|
||||
$oFileCopyMap{$strPathKey}{$strFile}{file} = ${strFile};
|
||||
$oFileCopyMap{$strPathKey}{$strFile}{backup_file} = "${strBackupDestinationPath}/${strFile}";
|
||||
$oFileCopyMap{$strPathKey}{$strFile}{size} = $lFileSize;
|
||||
$oFileCopyMap{$strPathKey}{$strFile}{modification_time} =
|
||||
$oBackupManifest->get($strSectionFile, $strFile, MANIFEST_SUBKEY_MODIFICATION_TIME, false);
|
||||
$oFileCopyMap{$strPathKey}{$strFile}{checksum} =
|
||||
my $strFileKey = sprintf("%016d-${strFile}", $lFileSize);
|
||||
|
||||
$oFileCopyMap{$strPathKey}{$strFileKey}{db_file} = $strBackupSourceFile;
|
||||
$oFileCopyMap{$strPathKey}{$strFileKey}{file_section} = $strSectionFile;
|
||||
$oFileCopyMap{$strPathKey}{$strFileKey}{file} = ${strFile};
|
||||
$oFileCopyMap{$strPathKey}{$strFileKey}{backup_file} = "${strBackupDestinationPath}/${strFile}";
|
||||
$oFileCopyMap{$strPathKey}{$strFileKey}{size} = $lFileSize;
|
||||
$oFileCopyMap{$strPathKey}{$strFileKey}{modification_time} =
|
||||
$oBackupManifest->getNumeric($strSectionFile, $strFile, MANIFEST_SUBKEY_TIMESTAMP, false);
|
||||
$oFileCopyMap{$strPathKey}{$strFileKey}{checksum} =
|
||||
$oBackupManifest->get($strSectionFile, $strFile, MANIFEST_SUBKEY_CHECKSUM, false);
|
||||
}
|
||||
}
|
||||
@ -481,9 +418,9 @@ sub backup_file
|
||||
$oyBackupQueue[@oyBackupQueue] = Thread::Queue->new();
|
||||
}
|
||||
|
||||
foreach my $strFile (sort (keys $oFileCopyMap{$strPathKey}))
|
||||
foreach my $strFileKey (sort {$b cmp $a} (keys $oFileCopyMap{$strPathKey}))
|
||||
{
|
||||
my $oFileCopy = $oFileCopyMap{$strPathKey}{$strFile};
|
||||
my $oFileCopy = $oFileCopyMap{$strPathKey}{$strFileKey};
|
||||
|
||||
if ($iThreadMax > 1)
|
||||
{
|
||||
@ -553,12 +490,12 @@ sub backup
|
||||
my $strDbClusterPath = shift;
|
||||
my $bStartFast = shift;
|
||||
|
||||
# Record timestamp start
|
||||
my $lTimestampStart = time();
|
||||
|
||||
# Backup start
|
||||
&log(INFO, "backup start: type = ${strType}");
|
||||
|
||||
# Record timestamp start
|
||||
my $strTimestampStart = timestamp_string_get();
|
||||
|
||||
# Not supporting remote backup hosts yet
|
||||
if ($oFile->is_remote(PATH_BACKUP))
|
||||
{
|
||||
@ -575,6 +512,9 @@ sub backup
|
||||
# Create the cluster backup path
|
||||
$oFile->path_create(PATH_BACKUP_CLUSTER, undef, undef, true);
|
||||
|
||||
# Load or build backup.info
|
||||
my $oBackupInfo = new BackRest::BackupInfo($oFile->path_get(PATH_BACKUP_CLUSTER));
|
||||
|
||||
# Build backup tmp and config
|
||||
my $strBackupTmpPath = $oFile->path_get(PATH_BACKUP_TMP);
|
||||
my $strBackupConfFile = $oFile->path_get(PATH_BACKUP_TMP, 'backup.manifest');
|
||||
@ -592,7 +532,7 @@ sub backup
|
||||
$oLastManifest = new BackRest::Manifest($oFile->path_get(PATH_BACKUP_CLUSTER) . "/${strBackupLastPath}/backup.manifest");
|
||||
|
||||
&log(INFO, 'last backup label = ' . $oLastManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL) .
|
||||
', version = ' . $oLastManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_VERSION));
|
||||
', version = ' . $oLastManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -610,9 +550,24 @@ sub backup
|
||||
|
||||
# Backup settings
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE, undef, $strType);
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_START, undef, $strTimestampStart);
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS, undef, $bCompress ? 'y' : 'n');
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, $bHardLink ? 'y' : 'n');
|
||||
$oBackupManifest->setNumeric(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_START, undef, $lTimestampStart);
|
||||
$oBackupManifest->setBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS, undef, $bCompress);
|
||||
$oBackupManifest->setBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, $bHardLink);
|
||||
$oBackupManifest->setBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_START_STOP, undef, !$bNoStartStop);
|
||||
$oBackupManifest->setBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_COPY, undef,
|
||||
$bNoStartStop || optionGet(OPTION_BACKUP_ARCHIVE_COPY));
|
||||
$oBackupManifest->setBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_CHECK, undef,
|
||||
$bNoStartStop || optionGet(OPTION_BACKUP_ARCHIVE_CHECK));
|
||||
|
||||
# Database info
|
||||
my ($strDbVersion, $iControlVersion, $iCatalogVersion, $ullDbSysId) = $oDb->info($oFile, $strDbClusterPath);
|
||||
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_DB_VERSION, undef, $strDbVersion);
|
||||
$oBackupManifest->setNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CONTROL, undef, $iControlVersion);
|
||||
$oBackupManifest->setNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CATALOG, undef, $iCatalogVersion);
|
||||
$oBackupManifest->setNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_SYSTEM_ID, undef, $ullDbSysId);
|
||||
|
||||
$oBackupInfo->check($oBackupManifest);
|
||||
|
||||
# Start backup (unless no-start-stop is set)
|
||||
my $strArchiveStart;
|
||||
@ -640,14 +595,12 @@ sub backup
|
||||
my $strTimestampDbStart;
|
||||
|
||||
($strArchiveStart, $strTimestampDbStart) =
|
||||
$oDb->backup_start('pg_backrest backup started ' . $strTimestampStart, $bStartFast);
|
||||
$oDb->backup_start('pg_backrest backup started ' . timestamp_string_get(undef, $lTimestampStart), $bStartFast);
|
||||
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_START, undef, $strArchiveStart);
|
||||
&log(INFO, "archive start: ${strArchiveStart}");
|
||||
}
|
||||
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_VERSION, undef, version_get());
|
||||
|
||||
# Build the backup manifest
|
||||
my $oTablespaceMap = $bNoStartStop ? undef : $oDb->tablespace_map_get();
|
||||
|
||||
@ -661,7 +614,7 @@ sub backup
|
||||
|
||||
my $strType = $oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE);
|
||||
my $strPrior = $oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, '<undef>');
|
||||
my $strVersion = $oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_VERSION);
|
||||
my $strVersion = $oBackupManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION);
|
||||
|
||||
my $strAbortedType = '<undef>';
|
||||
my $strAbortedPrior = '<undef>';
|
||||
@ -679,7 +632,7 @@ sub backup
|
||||
# Default values if they are not set
|
||||
$strAbortedType = $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE);
|
||||
$strAbortedPrior = $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR, undef, false, '<undef>');
|
||||
$strAbortedVersion = $oAbortedManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_VERSION);
|
||||
$strAbortedVersion = $oAbortedManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION);
|
||||
|
||||
# The backup is usable if between the current backup and the aborted backup:
|
||||
# 1) The version matches
|
||||
@ -780,11 +733,12 @@ sub backup
|
||||
# After the backup has been stopped, need to make a copy of the archive logs need to make the db consistent
|
||||
&log(DEBUG, "retrieving archive logs ${strArchiveStart}:${strArchiveStop}");
|
||||
my $oArchive = new BackRest::Archive();
|
||||
my $strArchiveId = $oArchive->getCheck($oFile);
|
||||
my @stryArchive = $oArchive->range($strArchiveStart, $strArchiveStop, $oDb->db_version_get() < 9.3);
|
||||
|
||||
foreach my $strArchive (@stryArchive)
|
||||
{
|
||||
my $strArchiveFile = $oArchive->walFileName($oFile, $strArchive, 600);
|
||||
my $strArchiveFile = $oArchive->walFileName($oFile, $strArchiveId, $strArchive, 600);
|
||||
|
||||
if (optionGet(OPTION_BACKUP_ARCHIVE_COPY))
|
||||
{
|
||||
@ -795,7 +749,7 @@ sub backup
|
||||
my $bArchiveCompressed = $strArchiveFile =~ "^.*\.$oFile->{strCompressExtension}\$";
|
||||
|
||||
my ($bCopyResult, $strCopyChecksum, $lCopySize) =
|
||||
$oFile->copy(PATH_BACKUP_ARCHIVE, $strArchiveFile,
|
||||
$oFile->copy(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strArchiveFile}",
|
||||
PATH_BACKUP_TMP, $strDestinationFile,
|
||||
$bArchiveCompressed, $bCompress,
|
||||
undef, $lModificationTime, undef, true);
|
||||
@ -819,7 +773,7 @@ sub backup
|
||||
$oBackupManifest->set($strFileSection, $strFileLog, MANIFEST_SUBKEY_GROUP,
|
||||
$oBackupManifest->get($strPathSection, $strPathLog, MANIFEST_SUBKEY_GROUP));
|
||||
$oBackupManifest->set($strFileSection, $strFileLog, MANIFEST_SUBKEY_MODE, '0700');
|
||||
$oBackupManifest->set($strFileSection, $strFileLog, MANIFEST_SUBKEY_MODIFICATION_TIME, $lModificationTime);
|
||||
$oBackupManifest->set($strFileSection, $strFileLog, MANIFEST_SUBKEY_TIMESTAMP, $lModificationTime);
|
||||
$oBackupManifest->set($strFileSection, $strFileLog, MANIFEST_SUBKEY_SIZE, $lCopySize);
|
||||
$oBackupManifest->set($strFileSection, $strFileLog, MANIFEST_SUBKEY_CHECKSUM, $strCopyChecksum);
|
||||
}
|
||||
@ -827,6 +781,7 @@ sub backup
|
||||
}
|
||||
|
||||
# Create the path for the new backup
|
||||
my $lTimestampStop = time();
|
||||
my $strBackupPath;
|
||||
|
||||
if ($strType eq BACKUP_TYPE_FULL || !defined($strBackupLastPath))
|
||||
@ -838,7 +793,7 @@ sub backup
|
||||
{
|
||||
$strBackupPath = substr($strBackupLastPath, 0, 16);
|
||||
|
||||
$strBackupPath .= '_' . timestamp_file_string_get();
|
||||
$strBackupPath .= '_' . timestamp_file_string_get(undef, $lTimestampStop);
|
||||
|
||||
if ($strType eq BACKUP_TYPE_DIFF)
|
||||
{
|
||||
@ -851,7 +806,7 @@ sub backup
|
||||
}
|
||||
|
||||
# Record timestamp stop in the config
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_STOP, undef, timestamp_string_get());
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_STOP, undef, $lTimestampStop + 0);
|
||||
$oBackupManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL, undef, $strBackupPath);
|
||||
|
||||
# Save the backup manifest final time
|
||||
@ -867,6 +822,9 @@ sub backup
|
||||
$oFile->remove(PATH_BACKUP_CLUSTER, "latest");
|
||||
$oFile->link_create(PATH_BACKUP_CLUSTER, $strBackupPath, PATH_BACKUP_CLUSTER, "latest", undef, true);
|
||||
|
||||
# Save backup info
|
||||
$oBackupInfo->backupAdd($oFile, $oBackupManifest);
|
||||
|
||||
# Backup stop
|
||||
&log(INFO, 'backup stop');
|
||||
}
|
||||
@ -893,6 +851,9 @@ sub backup_expire
|
||||
my $strPath;
|
||||
my @stryPath;
|
||||
|
||||
# Load or build backup.info
|
||||
my $oBackupInfo = new BackRest::BackupInfo($oFile->path_get(PATH_BACKUP_CLUSTER));
|
||||
|
||||
# Find all the expired full backups
|
||||
if (defined($iFullRetention))
|
||||
{
|
||||
@ -903,7 +864,7 @@ sub backup_expire
|
||||
}
|
||||
|
||||
my $iIndex = $iFullRetention;
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(1, 0, 0), 'reverse');
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(1, 0, 0), 'reverse');
|
||||
|
||||
while (defined($stryPath[$iIndex]))
|
||||
{
|
||||
@ -913,9 +874,11 @@ sub backup_expire
|
||||
{
|
||||
system("rm -rf ${strBackupClusterPath}/${strPath}") == 0
|
||||
or confess &log(ERROR, "unable to delete backup ${strPath}");
|
||||
|
||||
$oBackupInfo->backupRemove($strPath);
|
||||
}
|
||||
|
||||
&log(INFO, 'removed expired full backup: ' . $stryPath[$iIndex]);
|
||||
&log(INFO, 'remove expired full backup: ' . $stryPath[$iIndex]);
|
||||
|
||||
$iIndex++;
|
||||
}
|
||||
@ -930,14 +893,14 @@ sub backup_expire
|
||||
confess &log(ERROR, 'differential_rentention must be a number >= 1');
|
||||
}
|
||||
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(0, 1, 0), 'reverse');
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(0, 1, 0), 'reverse');
|
||||
|
||||
if (defined($stryPath[$iDifferentialRetention - 1]))
|
||||
{
|
||||
&log(DEBUG, 'differential expiration based on ' . $stryPath[$iDifferentialRetention - 1]);
|
||||
|
||||
# Get a list of all differential and incremental backups
|
||||
foreach $strPath ($oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(0, 1, 1), 'reverse'))
|
||||
foreach $strPath ($oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(0, 1, 1), 'reverse'))
|
||||
{
|
||||
&log(DEBUG, "checking ${strPath} for differential expiration");
|
||||
|
||||
@ -946,7 +909,9 @@ sub backup_expire
|
||||
{
|
||||
system("rm -rf ${strBackupClusterPath}/${strPath}") == 0
|
||||
or confess &log(ERROR, "unable to delete backup ${strPath}");
|
||||
&log(INFO, "removed expired diff/incr backup ${strPath}");
|
||||
$oBackupInfo->backupRemove($strPath);
|
||||
|
||||
&log(INFO, "remove expired diff/incr backup ${strPath}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -967,7 +932,7 @@ sub backup_expire
|
||||
$iArchiveRetention = $iFullRetention;
|
||||
}
|
||||
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(1, 0, 0), 'reverse');
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(1, 0, 0), 'reverse');
|
||||
}
|
||||
elsif ($strArchiveRetentionType eq BACKUP_TYPE_DIFF)
|
||||
{
|
||||
@ -976,11 +941,11 @@ sub backup_expire
|
||||
$iArchiveRetention = $iDifferentialRetention;
|
||||
}
|
||||
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(1, 1, 0), 'reverse');
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(1, 1, 0), 'reverse');
|
||||
}
|
||||
elsif ($strArchiveRetentionType eq BACKUP_TYPE_INCR)
|
||||
{
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backup_regexp_get(1, 1, 1), 'reverse');
|
||||
@stryPath = $oFile->list(PATH_BACKUP_CLUSTER, undef, backupRegExpGet(1, 1, 1), 'reverse');
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1038,19 +1003,23 @@ sub backup_expire
|
||||
|
||||
&log(INFO, 'archive retention starts at ' . $strArchiveLast);
|
||||
|
||||
# Get archive info
|
||||
my $oArchive = new BackRest::Archive();
|
||||
my $strArchiveId = $oArchive->getCheck($oFile);
|
||||
|
||||
# Remove any archive directories or files that are out of date
|
||||
foreach $strPath ($oFile->list(PATH_BACKUP_ARCHIVE, undef, "^[0-F]{16}\$"))
|
||||
foreach $strPath ($oFile->list(PATH_BACKUP_ARCHIVE, $strArchiveId, "^[0-F]{16}\$"))
|
||||
{
|
||||
&log(DEBUG, 'found major archive path ' . $strPath);
|
||||
|
||||
# If less than first 16 characters of current archive file, then remove the directory
|
||||
if ($strPath lt substr($strArchiveLast, 0, 16))
|
||||
{
|
||||
my $strFullPath = $oFile->path_get(PATH_BACKUP_ARCHIVE) . "/${strPath}";
|
||||
my $strFullPath = $oFile->path_get(PATH_BACKUP_ARCHIVE, $strArchiveId) . "/${strPath}";
|
||||
|
||||
remove_tree($strFullPath) > 0 or confess &log(ERROR, "unable to remove ${strFullPath}");
|
||||
|
||||
&log(DEBUG, 'removed major archive path ' . $strFullPath);
|
||||
&log(DEBUG, 'remove major archive path ' . $strFullPath);
|
||||
}
|
||||
# If equals the first 16 characters of the current archive file, then delete individual files instead
|
||||
elsif ($strPath eq substr($strArchiveLast, 0, 16))
|
||||
@ -1058,14 +1027,14 @@ sub backup_expire
|
||||
my $strSubPath;
|
||||
|
||||
# Look for archive files in the archive directory
|
||||
foreach $strSubPath ($oFile->list(PATH_BACKUP_ARCHIVE, $strPath, "^[0-F]{24}.*\$"))
|
||||
foreach $strSubPath ($oFile->list(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strPath}", "^[0-F]{24}.*\$"))
|
||||
{
|
||||
# Delete if the first 24 characters less than the current archive file
|
||||
if ($strSubPath lt substr($strArchiveLast, 0, 24))
|
||||
{
|
||||
unlink($oFile->path_get(PATH_BACKUP_ARCHIVE, $strSubPath))
|
||||
unlink($oFile->path_get(PATH_BACKUP_ARCHIVE, "${strArchiveId}/${strSubPath}"))
|
||||
or confess &log(ERROR, 'unable to remove ' . $strSubPath);
|
||||
&log(DEBUG, 'removed expired archive file ' . $strSubPath);
|
||||
&log(DEBUG, 'remove expired archive file ' . $strSubPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
80
lib/BackRest/BackupCommon.pm
Normal file
80
lib/BackRest/BackupCommon.pm
Normal file
@ -0,0 +1,80 @@
|
||||
####################################################################################################################################
|
||||
# BACKUP COMMON MODULE
|
||||
####################################################################################################################################
|
||||
package BackRest::BackupCommon;
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename;
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# backupRegExpGet - Generate a regexp depending on the backups that need to be found
|
||||
####################################################################################################################################
|
||||
our @EXPORT = qw(backupRegExpGet);
|
||||
|
||||
sub backupRegExpGet
|
||||
{
|
||||
my $bFull = shift;
|
||||
my $bDifferential = shift;
|
||||
my $bIncremental = shift;
|
||||
|
||||
if (!$bFull && !$bDifferential && !$bIncremental)
|
||||
{
|
||||
confess &log(ERROR, 'one parameter must be true');
|
||||
}
|
||||
|
||||
my $strDateTimeRegExp = "[0-9]{8}\\-[0-9]{6}";
|
||||
my $strRegExp = '^';
|
||||
|
||||
if ($bFull || $bDifferential || $bIncremental)
|
||||
{
|
||||
$strRegExp .= $strDateTimeRegExp . 'F';
|
||||
}
|
||||
|
||||
if ($bDifferential || $bIncremental)
|
||||
{
|
||||
if ($bFull)
|
||||
{
|
||||
$strRegExp .= "(\\_";
|
||||
}
|
||||
else
|
||||
{
|
||||
$strRegExp .= "\\_";
|
||||
}
|
||||
|
||||
$strRegExp .= $strDateTimeRegExp;
|
||||
|
||||
if ($bDifferential && $bIncremental)
|
||||
{
|
||||
$strRegExp .= '(D|I)';
|
||||
}
|
||||
elsif ($bDifferential)
|
||||
{
|
||||
$strRegExp .= 'D';
|
||||
}
|
||||
else
|
||||
{
|
||||
$strRegExp .= 'I';
|
||||
}
|
||||
|
||||
if ($bFull)
|
||||
{
|
||||
$strRegExp .= '){0,1}';
|
||||
}
|
||||
}
|
||||
|
||||
$strRegExp .= "\$";
|
||||
|
||||
&log(DEBUG, "BackupCommon::backupRegExpGet:" .
|
||||
" full = ${bFull}, differential = ${bDifferential}, incremental = ${bIncremental}: $strRegExp");
|
||||
|
||||
return $strRegExp;
|
||||
}
|
||||
|
||||
1;
|
@ -4,19 +4,19 @@
|
||||
package BackRest::BackupFile;
|
||||
|
||||
use threads;
|
||||
use strict;
|
||||
use Thread::Queue;
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Utility;
|
||||
use BackRest::Exception;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::File;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# backupFile
|
||||
|
345
lib/BackRest/BackupInfo.pm
Normal file
345
lib/BackRest/BackupInfo.pm
Normal file
@ -0,0 +1,345 @@
|
||||
####################################################################################################################################
|
||||
# BACKUP INFO MODULE
|
||||
####################################################################################################################################
|
||||
package BackRest::BackupInfo;
|
||||
use parent 'BackRest::Ini';
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname basename);
|
||||
use File::stat;
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Config;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
####################################################################################################################################
|
||||
use constant OP_BACKUP_INFO => 'BackupInfo';
|
||||
|
||||
use constant OP_INFO_BACKUP_NEW => OP_BACKUP_INFO . "->new";
|
||||
use constant OP_INFO_BACKUP_BACKUP_ADD => OP_BACKUP_INFO . "->backupAdd";
|
||||
use constant OP_INFO_BACKUP_BACKUP_REMOVE => OP_BACKUP_INFO . "->backupRemove";
|
||||
|
||||
####################################################################################################################################
|
||||
# File/path constants
|
||||
####################################################################################################################################
|
||||
use constant FILE_BACKUP_INFO => 'backup.info'; our @EXPORT = qw(FILE_BACKUP_INFO);
|
||||
|
||||
####################################################################################################################################
|
||||
# Backup info Constants
|
||||
####################################################################################################################################
|
||||
use constant INFO_BACKUP_SECTION_BACKUP => MANIFEST_SECTION_BACKUP;
|
||||
push @EXPORT, qw(INFO_BACKUP_SECTION_BACKUP);
|
||||
use constant INFO_BACKUP_SECTION_BACKUP_CURRENT => INFO_BACKUP_SECTION_BACKUP . ':current';
|
||||
push @EXPORT, qw(INFO_BACKUP_SECTION_BACKUP_CURRENT);
|
||||
use constant INFO_BACKUP_SECTION_BACKUP_HISTORY => INFO_BACKUP_SECTION_BACKUP . ':history';
|
||||
push @EXPORT, qw(INFO_BACKUP_SECTION_BACKUP_HISTORY);
|
||||
use constant INFO_BACKUP_SECTION_DB => 'db';
|
||||
push @EXPORT, qw(INFO_BACKUP_SECTION_DB);
|
||||
use constant INFO_BACKUP_SECTION_DB_HISTORY => INFO_BACKUP_SECTION_DB . ':history';
|
||||
push @EXPORT, qw(INFO_BACKUP_SECTION_DB_HISTORY);
|
||||
|
||||
use constant INFO_BACKUP_KEY_ARCHIVE_CHECK => MANIFEST_KEY_ARCHIVE_CHECK;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_ARCHIVE_CHECK);
|
||||
use constant INFO_BACKUP_KEY_ARCHIVE_COPY => MANIFEST_KEY_ARCHIVE_COPY;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_ARCHIVE_COPY);
|
||||
use constant INFO_BACKUP_KEY_ARCHIVE_START => MANIFEST_KEY_ARCHIVE_START;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_ARCHIVE_START);
|
||||
use constant INFO_BACKUP_KEY_ARCHIVE_STOP => MANIFEST_KEY_ARCHIVE_STOP;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_ARCHIVE_STOP);
|
||||
use constant INFO_BACKUP_KEY_BACKUP_REPO_SIZE => 'backup-info-repo-size';
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_BACKUP_REPO_SIZE);
|
||||
use constant INFO_BACKUP_KEY_BACKUP_REPO_SIZE_DELTA => 'backup-info-repo-size-delta';
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_BACKUP_REPO_SIZE_DELTA);
|
||||
use constant INFO_BACKUP_KEY_BACKUP_SIZE => 'backup-info-size';
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_BACKUP_SIZE);
|
||||
use constant INFO_BACKUP_KEY_BACKUP_SIZE_DELTA => 'backup-info-size-delta';
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_BACKUP_SIZE_DELTA);
|
||||
use constant INFO_BACKUP_KEY_CATALOG => MANIFEST_KEY_CATALOG;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_CATALOG);
|
||||
use constant INFO_BACKUP_KEY_CONTROL => MANIFEST_KEY_CONTROL;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_CONTROL);
|
||||
use constant INFO_BACKUP_KEY_COMPRESS => MANIFEST_KEY_COMPRESS;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_COMPRESS);
|
||||
use constant INFO_BACKUP_KEY_CHECKSUM => INI_KEY_CHECKSUM;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_CHECKSUM);
|
||||
use constant INFO_BACKUP_KEY_DB_VERSION => MANIFEST_KEY_DB_VERSION;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_DB_VERSION);
|
||||
use constant INFO_BACKUP_KEY_FORMAT => INI_KEY_FORMAT;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_FORMAT);
|
||||
use constant INFO_BACKUP_KEY_HARDLINK => MANIFEST_KEY_HARDLINK;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_HARDLINK);
|
||||
use constant INFO_BACKUP_KEY_HISTORY_ID => 'db-id';
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_HISTORY_ID);
|
||||
use constant INFO_BACKUP_KEY_LABEL => MANIFEST_KEY_LABEL;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_LABEL);
|
||||
use constant INFO_BACKUP_KEY_PRIOR => MANIFEST_KEY_PRIOR;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_PRIOR);
|
||||
use constant INFO_BACKUP_KEY_REFERENCE => 'backup-reference';
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_REFERENCE);
|
||||
use constant INFO_BACKUP_KEY_START_STOP => MANIFEST_KEY_START_STOP;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_START_STOP);
|
||||
use constant INFO_BACKUP_KEY_SYSTEM_ID => MANIFEST_KEY_SYSTEM_ID;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_SYSTEM_ID);
|
||||
use constant INFO_BACKUP_KEY_TIMESTAMP_START => MANIFEST_KEY_TIMESTAMP_START;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_TIMESTAMP_START);
|
||||
use constant INFO_BACKUP_KEY_TIMESTAMP_STOP => MANIFEST_KEY_TIMESTAMP_STOP;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_TIMESTAMP_STOP);
|
||||
use constant INFO_BACKUP_KEY_TYPE => MANIFEST_KEY_TYPE;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_TYPE);
|
||||
use constant INFO_BACKUP_KEY_VERSION => INI_KEY_VERSION;
|
||||
push @EXPORT, qw(INFO_BACKUP_KEY_VERSION);
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
####################################################################################################################################
|
||||
sub new
|
||||
{
|
||||
my $class = shift; # Class name
|
||||
my $strBackupClusterPath = shift; # Backup cluster path
|
||||
|
||||
&log(DEBUG, OP_INFO_BACKUP_NEW . ": backupClusterPath = ${strBackupClusterPath}");
|
||||
|
||||
# Build the backup info path/file name
|
||||
my $strBackupInfoFile = "${strBackupClusterPath}/" . FILE_BACKUP_INFO;
|
||||
my $bExists = -e $strBackupInfoFile ? true : false;
|
||||
|
||||
# Init object and store variables
|
||||
my $self = $class->SUPER::new($strBackupInfoFile, $bExists);
|
||||
|
||||
$self->set(INI_SECTION_BACKREST, INI_KEY_VERSION, undef, version_get());
|
||||
|
||||
$self->{bExists} = $bExists;
|
||||
$self->{strBackupClusterPath} = $strBackupClusterPath;
|
||||
|
||||
# Validate the backup info
|
||||
$self->validate();
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# validate
|
||||
#
|
||||
# Compare the backup info against the actual backups on disk.
|
||||
####################################################################################################################################
|
||||
sub validate
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
# Remove backups that no longer exist on disk
|
||||
foreach my $strBackup ($self->keys(INFO_BACKUP_SECTION_BACKUP_CURRENT))
|
||||
{
|
||||
if (!-e "$self->{strBackupClusterPath}/${strBackup}")
|
||||
{
|
||||
&log(WARN, "backup ${strBackup} is missing from the repository - removed from " . FILE_BACKUP_INFO);
|
||||
$self->remove(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# check
|
||||
#
|
||||
# Check db info and make it is compatible.
|
||||
####################################################################################################################################
|
||||
sub check
|
||||
{
|
||||
my $self = shift;
|
||||
my $oBackupManifest = shift;
|
||||
|
||||
my $iCatalogVersion = $oBackupManifest->getNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CATALOG);
|
||||
my $iControlVersion = $oBackupManifest->getNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CONTROL);
|
||||
my $ullDbSysId = $oBackupManifest->getNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_SYSTEM_ID);
|
||||
my $strDbVersion = $oBackupManifest->get(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_DB_VERSION);
|
||||
|
||||
if (!$self->test(INFO_BACKUP_SECTION_DB))
|
||||
{
|
||||
my $iHistoryId = 1;
|
||||
|
||||
# Fill db section
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_CATALOG, undef, $iCatalogVersion);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_CONTROL, undef, $iControlVersion);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_SYSTEM_ID, undef, $ullDbSysId);
|
||||
$self->set(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_DB_VERSION, undef, $strDbVersion);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_HISTORY_ID, undef, $iHistoryId);
|
||||
|
||||
# Fill db history
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_DB_HISTORY, $iHistoryId, INFO_BACKUP_KEY_CATALOG, $iCatalogVersion);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_DB_HISTORY, $iHistoryId, INFO_BACKUP_KEY_CONTROL, $iControlVersion);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_DB_HISTORY, $iHistoryId, INFO_BACKUP_KEY_SYSTEM_ID, $ullDbSysId);
|
||||
$self->set(INFO_BACKUP_SECTION_DB_HISTORY, $iHistoryId, INFO_BACKUP_KEY_DB_VERSION, $strDbVersion);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$self->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_SYSTEM_ID, undef, $ullDbSysId) ||
|
||||
!$self->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_DB_VERSION, undef, $strDbVersion))
|
||||
{
|
||||
confess &log(ERROR, "database version = ${strDbVersion}, system-id ${ullDbSysId} does not match backup version = " .
|
||||
$self->get(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_DB_VERSION) . ", system-id = " .
|
||||
$self->get(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_SYSTEM_ID) .
|
||||
"\nHINT: are you backing up to the correct stanza?", ERROR_BACKUP_MISMATCH);
|
||||
}
|
||||
|
||||
if (!$self->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_CATALOG, undef, $iCatalogVersion) ||
|
||||
!$self->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_CONTROL, undef, $iControlVersion))
|
||||
{
|
||||
confess &log(ERROR, "database control-version = ${iControlVersion}, catalog-version ${iCatalogVersion}" .
|
||||
" does not match backup control-version = " .
|
||||
$self->get(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_CONTROL) . ", catalog-version = " .
|
||||
$self->get(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_CATALOG) .
|
||||
"\nHINT: this may be a symptom of database or repository corruption!", ERROR_BACKUP_MISMATCH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# backupAdd
|
||||
#
|
||||
# Add a backup to the info file.
|
||||
####################################################################################################################################
|
||||
sub backupAdd
|
||||
{
|
||||
my $self = shift;
|
||||
my $oFile = shift;
|
||||
my $oBackupManifest = shift;
|
||||
|
||||
my $strBackupLabel = $oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL);
|
||||
|
||||
&log(DEBUG, OP_INFO_BACKUP_BACKUP_ADD . ": backupLabel = ${strBackupLabel}");
|
||||
|
||||
# Calculate backup sizes and references
|
||||
my $lBackupSize = 0;
|
||||
my $lBackupSizeDelta = 0;
|
||||
my $lBackupRepoSize = 0;
|
||||
my $lBackupRepoSizeDelta = 0;
|
||||
my $oReferenceHash = undef;
|
||||
|
||||
my $bCompress = $oBackupManifest->get(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS);
|
||||
|
||||
foreach my $strPathKey ($oBackupManifest->keys(MANIFEST_SECTION_BACKUP_PATH))
|
||||
{
|
||||
my $strFileSection = "${strPathKey}:" . MANIFEST_FILE;
|
||||
my $strPath = $strPathKey;
|
||||
$strPath =~ s/\:/\//g;
|
||||
|
||||
foreach my $strFileKey ($oBackupManifest->keys($strFileSection))
|
||||
{
|
||||
my $lFileSize = $oBackupManifest->get($strFileSection, $strFileKey, MANIFEST_SUBKEY_SIZE);
|
||||
my $strFileReference = $oBackupManifest->get($strFileSection, $strFileKey, MANIFEST_SUBKEY_REFERENCE, false);
|
||||
|
||||
my $strFile = $oFile->path_get(PATH_BACKUP_CLUSTER,
|
||||
(defined($strFileReference) ? "${strFileReference}" : $strBackupLabel) .
|
||||
"/${strPath}/${strFileKey}" .
|
||||
($bCompress ? '.' . $oFile->{strCompressExtension} : ''));
|
||||
|
||||
my $oStat = lstat($strFile);
|
||||
|
||||
# Check for errors in stat
|
||||
defined($oStat)
|
||||
or confess &log(ERROR, "unable to lstat ${strFile}");
|
||||
|
||||
$lBackupSize += $lFileSize;
|
||||
$lBackupRepoSize += $oStat->size;
|
||||
|
||||
if (defined($strFileReference))
|
||||
{
|
||||
$$oReferenceHash{$strFileReference} = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lBackupSizeDelta += $lFileSize;
|
||||
$lBackupRepoSizeDelta += $oStat->size;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Add the manifest.backup size
|
||||
my $strManifestFile = $oFile->path_get(PATH_BACKUP_CLUSTER, "/${strBackupLabel}/" . FILE_MANIFEST);
|
||||
my $oStat = lstat($strManifestFile);
|
||||
|
||||
# Check for errors in stat
|
||||
defined($oStat)
|
||||
or confess &log(ERROR, "unable to lstat ${strManifestFile}");
|
||||
|
||||
$lBackupRepoSize += $oStat->size;
|
||||
$lBackupRepoSizeDelta += $oStat->size;
|
||||
|
||||
# Set backup size info
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_BACKUP_SIZE, $lBackupSize);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_BACKUP_SIZE_DELTA, $lBackupSizeDelta);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_BACKUP_REPO_SIZE, $lBackupRepoSize);
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_BACKUP_REPO_SIZE_DELTA,
|
||||
$lBackupRepoSizeDelta);
|
||||
|
||||
# Store information about the backup into the backup section
|
||||
$self->setBool(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_ARCHIVE_CHECK,
|
||||
$oBackupManifest->getBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_CHECK));
|
||||
$self->setBool(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_ARCHIVE_COPY,
|
||||
$oBackupManifest->getBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_COPY));
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_ARCHIVE_START,
|
||||
$oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_START, undef, false));
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_ARCHIVE_STOP,
|
||||
$oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_STOP, undef, false));
|
||||
$self->setBool(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_COMPRESS,
|
||||
$oBackupManifest->getBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS));
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_FORMAT,
|
||||
$oBackupManifest->getNumeric(INI_SECTION_BACKREST, INI_KEY_FORMAT));
|
||||
$self->setBool(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_HARDLINK,
|
||||
$oBackupManifest->getBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK));
|
||||
$self->setBool(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_START_STOP,
|
||||
$oBackupManifest->getBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_START_STOP));
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_TIMESTAMP_START,
|
||||
$oBackupManifest->getNumeric(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_START));
|
||||
$self->setNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_TIMESTAMP_STOP,
|
||||
$oBackupManifest->getNumeric(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_STOP));
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_TYPE,
|
||||
$oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE));
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_VERSION,
|
||||
$oBackupManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION));
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_HISTORY_ID,
|
||||
$self->get(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_HISTORY_ID));
|
||||
|
||||
if (!$oBackupManifest->test(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE, undef, BACKUP_TYPE_FULL))
|
||||
{
|
||||
my @stryReference = sort(keys($oReferenceHash));
|
||||
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_PRIOR,
|
||||
$oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_PRIOR));
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel, INFO_BACKUP_KEY_REFERENCE,
|
||||
\@stryReference);
|
||||
}
|
||||
|
||||
# Copy backup info to the history
|
||||
$self->set(INFO_BACKUP_SECTION_BACKUP_HISTORY, $strBackupLabel, undef,
|
||||
$self->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel));
|
||||
|
||||
$self->save();
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# backupRemove
|
||||
#
|
||||
# Remove a backup from the info file.
|
||||
####################################################################################################################################
|
||||
sub backupRemove
|
||||
{
|
||||
my $self = shift;
|
||||
my $strBackupLabel = shift;
|
||||
|
||||
&log(DEBUG, OP_INFO_BACKUP_BACKUP_REMOVE . ": backupLabel = ${strBackupLabel}");
|
||||
|
||||
$self->remove(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackupLabel);
|
||||
$self->save();
|
||||
}
|
||||
|
||||
1;
|
@ -7,12 +7,15 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
use Cwd qw(abs_path);
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname);
|
||||
use Getopt::Long qw(GetOptions);
|
||||
use Pod::Usage;
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Exception;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
@ -42,11 +45,12 @@ use constant
|
||||
OP_ARCHIVE_GET => 'archive-get',
|
||||
OP_ARCHIVE_PUSH => 'archive-push',
|
||||
OP_BACKUP => 'backup',
|
||||
OP_INFO => 'info',
|
||||
OP_RESTORE => 'restore',
|
||||
OP_EXPIRE => 'expire'
|
||||
};
|
||||
|
||||
push @EXPORT, qw(OP_ARCHIVE_GET OP_ARCHIVE_PUSH OP_BACKUP OP_RESTORE OP_EXPIRE);
|
||||
push @EXPORT, qw(OP_ARCHIVE_GET OP_ARCHIVE_PUSH OP_BACKUP OP_INFO OP_RESTORE OP_EXPIRE);
|
||||
|
||||
####################################################################################################################################
|
||||
# BACKUP Type Constants
|
||||
@ -60,6 +64,12 @@ use constant
|
||||
|
||||
push @EXPORT, qw(BACKUP_TYPE_FULL BACKUP_TYPE_DIFF BACKUP_TYPE_INCR);
|
||||
|
||||
####################################################################################################################################
|
||||
# INFO Output Constants
|
||||
####################################################################################################################################
|
||||
use constant INFO_OUTPUT_TEXT => 'text'; push @EXPORT, qw(INFO_OUTPUT_TEXT);
|
||||
use constant INFO_OUTPUT_JSON => 'json'; push @EXPORT, qw(INFO_OUTPUT_JSON);
|
||||
|
||||
####################################################################################################################################
|
||||
# SOURCE Constants
|
||||
####################################################################################################################################
|
||||
@ -127,6 +137,7 @@ use constant
|
||||
OPTION_TARGET_RESUME => 'target-resume',
|
||||
OPTION_TARGET_TIMELINE => 'target-timeline',
|
||||
OPTION_TYPE => 'type',
|
||||
OPTION_OUTPUT => 'output',
|
||||
|
||||
# Command-line/conf file options
|
||||
# GENERAL Section
|
||||
@ -195,7 +206,7 @@ push @EXPORT, qw(OPTION_CONFIG OPTION_DELTA OPTION_FORCE OPTION_NO_START_STOP OP
|
||||
OPTION_ARCHIVE_ASYNC
|
||||
OPTION_BUFFER_SIZE OPTION_COMPRESS OPTION_COMPRESS_LEVEL OPTION_COMPRESS_LEVEL_NETWORK OPTION_HARDLINK
|
||||
OPTION_MANIFEST_SAVE_THRESHOLD OPTION_RESUME OPTION_PATH_ARCHIVE OPTION_REPO_PATH OPTION_REPO_REMOTE_PATH
|
||||
OPTION_DB_PATH
|
||||
OPTION_DB_PATH OPTION_OUTPUT
|
||||
OPTION_LOG_LEVEL_CONSOLE OPTION_LOG_LEVEL_FILE
|
||||
OPTION_RESTORE_RECOVERY_SETTING OPTION_RETENTION_ARCHIVE OPTION_RETENTION_ARCHIVE_TYPE OPTION_RETENTION_FULL
|
||||
OPTION_RETENTION_DIFF OPTION_START_FAST OPTION_THREAD_MAX OPTION_THREAD_TIMEOUT
|
||||
@ -229,7 +240,7 @@ use constant
|
||||
OPTION_DEFAULT_ARCHIVE_ASYNC => false,
|
||||
|
||||
OPTION_DEFAULT_COMMAND_PSQL => '/usr/bin/psql -X',
|
||||
OPTION_DEFAULT_COMMAND_REMOTE => dirname(abs_path($0)) . '/pg_backrest_remote.pl',
|
||||
OPTION_DEFAULT_COMMAND_REMOTE => dirname(abs_path($0)) . '/pg_backrest_remote',
|
||||
|
||||
OPTION_DEFAULT_BACKUP_ARCHIVE_CHECK => true,
|
||||
OPTION_DEFAULT_BACKUP_ARCHIVE_COPY => false,
|
||||
@ -241,6 +252,8 @@ use constant
|
||||
OPTION_DEFAULT_BACKUP_START_FAST => false,
|
||||
OPTION_DEFAULT_BACKUP_TYPE => BACKUP_TYPE_INCR,
|
||||
|
||||
OPTION_DEFAULT_INFO_OUTPUT => INFO_OUTPUT_TEXT,
|
||||
|
||||
OPTION_DEFAULT_REPO_PATH => '/var/lib/backup',
|
||||
|
||||
OPTION_DEFAULT_RESTORE_DELTA => false,
|
||||
@ -386,7 +399,30 @@ my %oOptionRule =
|
||||
|
||||
&OPTION_STANZA =>
|
||||
{
|
||||
&OPTION_RULE_TYPE => OPTION_TYPE_STRING
|
||||
&OPTION_RULE_TYPE => OPTION_TYPE_STRING,
|
||||
&OPTION_RULE_OPERATION =>
|
||||
{
|
||||
&OP_ARCHIVE_GET =>
|
||||
{
|
||||
&OPTION_RULE_REQUIRED => true
|
||||
},
|
||||
&OP_ARCHIVE_PUSH =>
|
||||
{
|
||||
&OPTION_RULE_REQUIRED => true
|
||||
},
|
||||
&OP_BACKUP =>
|
||||
{
|
||||
&OPTION_RULE_REQUIRED => true
|
||||
},
|
||||
&OP_EXPIRE =>
|
||||
{
|
||||
&OPTION_RULE_REQUIRED => true
|
||||
},
|
||||
&OP_RESTORE =>
|
||||
{
|
||||
&OPTION_RULE_REQUIRED => true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
&OPTION_TARGET =>
|
||||
@ -508,6 +544,23 @@ my %oOptionRule =
|
||||
}
|
||||
},
|
||||
|
||||
&OPTION_OUTPUT =>
|
||||
{
|
||||
&OPTION_RULE_TYPE => OPTION_TYPE_STRING,
|
||||
&OPTION_RULE_OPERATION =>
|
||||
{
|
||||
&OP_INFO =>
|
||||
{
|
||||
&OPTION_RULE_DEFAULT => OPTION_DEFAULT_INFO_OUTPUT,
|
||||
&OPTION_RULE_ALLOW_LIST =>
|
||||
{
|
||||
&INFO_OUTPUT_TEXT => true,
|
||||
&INFO_OUTPUT_JSON => true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
# Command-line/conf option rules
|
||||
#-------------------------------------------------------------------------------------------------------------------------------
|
||||
&OPTION_COMMAND_REMOTE =>
|
||||
@ -520,6 +573,7 @@ my %oOptionRule =
|
||||
&OP_ARCHIVE_GET => true,
|
||||
&OP_ARCHIVE_PUSH => true,
|
||||
&OP_BACKUP => true,
|
||||
&OP_INFO => true,
|
||||
&OP_RESTORE => true
|
||||
}
|
||||
},
|
||||
@ -596,6 +650,7 @@ my %oOptionRule =
|
||||
{
|
||||
&OP_ARCHIVE_GET => true,
|
||||
&OP_ARCHIVE_PUSH => true,
|
||||
&OP_INFO => true,
|
||||
&OP_RESTORE => true
|
||||
},
|
||||
},
|
||||
@ -608,6 +663,7 @@ my %oOptionRule =
|
||||
{
|
||||
&OP_ARCHIVE_GET => true,
|
||||
&OP_ARCHIVE_PUSH => true,
|
||||
&OP_INFO => true,
|
||||
&OP_RESTORE => true
|
||||
},
|
||||
&OPTION_RULE_REQUIRED => false,
|
||||
@ -627,6 +683,7 @@ my %oOptionRule =
|
||||
&OP_ARCHIVE_GET => true,
|
||||
&OP_ARCHIVE_PUSH => true,
|
||||
&OP_BACKUP => true,
|
||||
&OP_INFO => true,
|
||||
&OP_RESTORE => true,
|
||||
&OP_EXPIRE => true
|
||||
},
|
||||
@ -641,6 +698,7 @@ my %oOptionRule =
|
||||
{
|
||||
&OP_ARCHIVE_GET => true,
|
||||
&OP_ARCHIVE_PUSH => true,
|
||||
&OP_INFO => true,
|
||||
&OP_RESTORE => true
|
||||
},
|
||||
},
|
||||
@ -691,7 +749,14 @@ my %oOptionRule =
|
||||
&OPTION_RULE_SECTION => true,
|
||||
&OPTION_RULE_OPERATION =>
|
||||
{
|
||||
&OP_BACKUP => true
|
||||
&OP_BACKUP =>
|
||||
{
|
||||
&OPTION_RULE_DEPEND =>
|
||||
{
|
||||
&OPTION_RULE_DEPEND_OPTION => OPTION_NO_START_STOP,
|
||||
&OPTION_RULE_DEPEND_VALUE => false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -740,6 +805,7 @@ my %oOptionRule =
|
||||
&OP_ARCHIVE_GET => true,
|
||||
&OP_ARCHIVE_PUSH => true,
|
||||
&OP_BACKUP => true,
|
||||
&OP_INFO => true,
|
||||
&OP_RESTORE => true
|
||||
}
|
||||
},
|
||||
@ -756,6 +822,7 @@ my %oOptionRule =
|
||||
&OP_ARCHIVE_GET => true,
|
||||
&OP_ARCHIVE_PUSH => true,
|
||||
&OP_BACKUP => true,
|
||||
&OP_INFO => true,
|
||||
&OP_RESTORE => true
|
||||
}
|
||||
},
|
||||
@ -1055,22 +1122,18 @@ sub configLoad
|
||||
$oOptionAllow{'version'} = 'version';
|
||||
|
||||
# Get command-line options
|
||||
use Getopt::Long qw(GetOptions);
|
||||
my %oOptionTest;
|
||||
|
||||
if (!GetOptions(\%oOptionTest, %oOptionAllow))
|
||||
{
|
||||
print "\n";
|
||||
print 'pg_backrest ' . version_get() . "\n";
|
||||
print "\n";
|
||||
use Pod::Usage;
|
||||
syswrite(*STDOUT, "\npg_backrest " . version_get() . "\n\n");
|
||||
pod2usage(2);
|
||||
};
|
||||
|
||||
# Display version and exit if requested
|
||||
if (defined($oOptionTest{&OPTION_VERSION}) || defined($oOptionTest{&OPTION_HELP}))
|
||||
{
|
||||
print 'pg_backrest ' . version_get() . "\n";
|
||||
syswrite(*STDOUT, 'pg_backrest ' . version_get() . "\n");
|
||||
|
||||
if (!defined($oOptionTest{&OPTION_HELP}))
|
||||
{
|
||||
@ -1081,7 +1144,7 @@ sub configLoad
|
||||
# Display help and exit if requested
|
||||
if (defined($oOptionTest{&OPTION_HELP}))
|
||||
{
|
||||
print "\n";
|
||||
syswrite(*STDOUT, "\n");
|
||||
pod2usage();
|
||||
exit 0;
|
||||
}
|
||||
@ -1143,6 +1206,7 @@ sub optionValid
|
||||
if ($strOperation ne OP_ARCHIVE_GET &&
|
||||
$strOperation ne OP_ARCHIVE_PUSH &&
|
||||
$strOperation ne OP_BACKUP &&
|
||||
$strOperation ne OP_INFO &&
|
||||
$strOperation ne OP_RESTORE &&
|
||||
$strOperation ne OP_EXPIRE)
|
||||
{
|
||||
@ -1279,7 +1343,7 @@ sub optionValid
|
||||
confess &log(ERROR, "'${strConfigFile}' is not a file", ERROR_FILE_INVALID);
|
||||
}
|
||||
|
||||
$oConfig = ini_load($strConfigFile);
|
||||
$oConfig = iniLoad($strConfigFile, undef, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1290,16 +1354,22 @@ sub optionValid
|
||||
|
||||
# Only look in the stanza section when $strSection = true
|
||||
if ($strSection eq CONFIG_SECTION_STANZA)
|
||||
{
|
||||
if (optionTest(OPTION_STANZA))
|
||||
{
|
||||
$strValue = $$oConfig{optionGet(OPTION_STANZA)}{$strOption};
|
||||
}
|
||||
}
|
||||
# Else do a full search
|
||||
else
|
||||
{
|
||||
# First check in the stanza section
|
||||
if (optionTest(OPTION_STANZA))
|
||||
{
|
||||
$strValue = $oOptionRule{$strOption}{&OPTION_RULE_TYPE} eq OPTION_TYPE_HASH ?
|
||||
$$oConfig{optionGet(OPTION_STANZA) . ":${strSection}"} :
|
||||
$$oConfig{optionGet(OPTION_STANZA) . ":${strSection}"}{$strOption};
|
||||
}
|
||||
|
||||
# Else check for an inherited stanza section
|
||||
if (!defined($strValue))
|
||||
@ -1309,9 +1379,12 @@ sub optionValid
|
||||
$strInheritedSection = $oOptionRule{$strOption}{&OPTION_RULE_SECTION_INHERIT};
|
||||
|
||||
if (defined($strInheritedSection))
|
||||
{
|
||||
if (optionTest(OPTION_STANZA))
|
||||
{
|
||||
$strValue = $$oConfig{optionGet(OPTION_STANZA) . ":${strInheritedSection}"}{$strOption};
|
||||
}
|
||||
}
|
||||
|
||||
# Else check the global section
|
||||
if (!defined($strValue))
|
||||
@ -1740,7 +1813,7 @@ sub optionRemote
|
||||
optionRemoteTypeTest(DB) ? optionGet(OPTION_DB_HOST) : optionGet(OPTION_BACKUP_HOST),
|
||||
optionRemoteTypeTest(DB) ? optionGet(OPTION_DB_USER) : optionGet(OPTION_BACKUP_USER),
|
||||
optionGet(OPTION_COMMAND_REMOTE),
|
||||
optionGet(OPTION_STANZA),
|
||||
optionGet(OPTION_STANZA, false),
|
||||
optionGet(OPTION_REPO_REMOTE_PATH),
|
||||
optionGet(OPTION_BUFFER_SIZE),
|
||||
operationTest(OP_EXPIRE) ? OPTION_DEFAULT_COMPRESS_LEVEL : optionGet(OPTION_COMPRESS_LEVEL),
|
||||
|
@ -7,21 +7,29 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Net::OpenSSH;
|
||||
use Exporter qw(import);
|
||||
use Fcntl qw(O_RDONLY);
|
||||
use File::Basename;
|
||||
use IPC::System::Simple qw(capture);
|
||||
use Exporter qw(import);
|
||||
use Net::OpenSSH;
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Config;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
####################################################################################################################################
|
||||
use constant OP_DB => 'Db';
|
||||
|
||||
use constant OP_DB_INFO => OP_DB . "->info"; our @EXPORT = qw(OP_DB_INFO);
|
||||
|
||||
####################################################################################################################################
|
||||
# Postmaster process Id file
|
||||
####################################################################################################################################
|
||||
use constant FILE_POSTMASTER_PID => 'postmaster.pid';
|
||||
|
||||
our @EXPORT = qw(FILE_POSTMASTER_PID);
|
||||
use constant FILE_POSTMASTER_PID => 'postmaster.pid'; push @EXPORT, qw(FILE_POSTMASTER_PID);
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
@ -29,6 +37,7 @@ our @EXPORT = qw(FILE_POSTMASTER_PID);
|
||||
sub new
|
||||
{
|
||||
my $class = shift; # Class name
|
||||
my $bStartStop = shift; # Will start/stop be called?
|
||||
my $strDbPath = shift; # Database path
|
||||
my $strCommandPsql = shift; # PSQL command
|
||||
my $strDbHost = shift; # Database host name
|
||||
@ -39,12 +48,14 @@ sub new
|
||||
bless $self, $class;
|
||||
|
||||
# Initialize variables
|
||||
$self->{bStartStop} = $bStartStop;
|
||||
$self->{strDbPath} = $strDbPath;
|
||||
$self->{strCommandPsql} = $strCommandPsql;
|
||||
$self->{strDbHost} = $strDbHost;
|
||||
$self->{strDbUser} = $strDbUser;
|
||||
|
||||
# Connect SSH object if db host is defined
|
||||
if (defined($self->{strDbHost}) && !defined($self->{oDbSSH}))
|
||||
if ($self->{bStartStop} && defined($self->{strDbHost}) && !defined($self->{oDbSSH}))
|
||||
{
|
||||
my $strOptionSSHRequestTTY = 'RequestTTY=yes';
|
||||
|
||||
@ -79,7 +90,7 @@ sub is_remote
|
||||
####################################################################################################################################
|
||||
sub versionSupport
|
||||
{
|
||||
my @strySupportVersion = ('8.3', '8.4', '9.0', '9.1', '9.2', '9.3', '9.4');
|
||||
my @strySupportVersion = ('8.3', '8.4', '9.0', '9.1', '9.2', '9.3', '9.4', '9.5');
|
||||
|
||||
return \@strySupportVersion;
|
||||
}
|
||||
@ -133,6 +144,137 @@ sub tablespace_map_get
|
||||
return $oHashRef;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# info
|
||||
####################################################################################################################################
|
||||
sub info
|
||||
{
|
||||
my $self = shift;
|
||||
my $oFile = shift;
|
||||
my $strDbPath = shift;
|
||||
|
||||
# Set operation and debug strings
|
||||
&log(DEBUG, OP_DB_INFO . "(): isRemote = " . ($oFile->is_remote(PATH_DB_ABSOLUTE) ? 'true' : 'false') .
|
||||
", dbPath = ${strDbPath}");
|
||||
|
||||
# Database info
|
||||
my $iCatalogVersion;
|
||||
my $iControlVersion;
|
||||
my $ullDbSysId;
|
||||
my $strDbVersion;
|
||||
|
||||
if ($oFile->is_remote(PATH_DB_ABSOLUTE))
|
||||
{
|
||||
# Build param hash
|
||||
my %oParamHash;
|
||||
|
||||
$oParamHash{'db-path'} = ${strDbPath};
|
||||
|
||||
# Output remote trace info
|
||||
&log(TRACE, OP_DB_INFO . ": remote (" . $oFile->{oRemote}->command_param_string(\%oParamHash) . ')');
|
||||
|
||||
# Execute the command
|
||||
my $strResult = $oFile->{oRemote}->command_execute(OP_DB_INFO, \%oParamHash, true);
|
||||
|
||||
# Split the result into return values
|
||||
my @stryToken = split(/\t/, $strResult);
|
||||
|
||||
$strDbVersion = $stryToken[0];
|
||||
$iControlVersion = $stryToken[1];
|
||||
$iCatalogVersion = $stryToken[2];
|
||||
$ullDbSysId = $stryToken[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
# Open the control file
|
||||
my $strControlFile = "${strDbPath}/global/pg_control";
|
||||
my $hFile;
|
||||
my $tBlock;
|
||||
|
||||
sysopen($hFile, $strControlFile, O_RDONLY)
|
||||
or confess &log(ERROR, "unable to open ${strControlFile}", ERROR_FILE_OPEN);
|
||||
|
||||
# Read system identifier
|
||||
sysread($hFile, $tBlock, 8) == 8
|
||||
or confess &log(ERROR, "unable to read database system identifier");
|
||||
|
||||
$ullDbSysId = unpack('Q', $tBlock);
|
||||
|
||||
# Read control version
|
||||
sysread($hFile, $tBlock, 4) == 4
|
||||
or confess &log(ERROR, "unable to read control version");
|
||||
|
||||
$iControlVersion = unpack('L', $tBlock);
|
||||
|
||||
# Read catalog version
|
||||
sysread($hFile, $tBlock, 4) == 4
|
||||
or confess &log(ERROR, "unable to read catalog version");
|
||||
|
||||
$iCatalogVersion = unpack('L', $tBlock);
|
||||
|
||||
# Close the control file
|
||||
close($hFile);
|
||||
|
||||
# Make sure the control version is supported
|
||||
if ($iControlVersion == 942 && $iCatalogVersion == 201409291)
|
||||
{
|
||||
$strDbVersion = '9.4';
|
||||
}
|
||||
# Leave 9.5 catalog version out until it stabilizes (then move 9.5 to the top of if list)
|
||||
elsif ($iControlVersion == 942) # && $iCatalogVersion == 201505311)
|
||||
{
|
||||
$strDbVersion = '9.5';
|
||||
}
|
||||
elsif ($iControlVersion == 937 && $iCatalogVersion == 201306121)
|
||||
{
|
||||
$strDbVersion = '9.3';
|
||||
}
|
||||
elsif ($iControlVersion == 922 && $iCatalogVersion == 201204301)
|
||||
{
|
||||
$strDbVersion = '9.2';
|
||||
}
|
||||
elsif ($iControlVersion == 903 && $iCatalogVersion == 201105231)
|
||||
{
|
||||
$strDbVersion = '9.1';
|
||||
}
|
||||
elsif ($iControlVersion == 903 && $iCatalogVersion == 201008051)
|
||||
{
|
||||
$strDbVersion = '9.0';
|
||||
}
|
||||
elsif ($iControlVersion == 843 && $iCatalogVersion == 200904091)
|
||||
{
|
||||
$strDbVersion = '8.4';
|
||||
}
|
||||
elsif ($iControlVersion == 833 && $iCatalogVersion == 200711281)
|
||||
{
|
||||
$strDbVersion = '8.3';
|
||||
}
|
||||
elsif ($iControlVersion == 822 && $iCatalogVersion == 200611241)
|
||||
{
|
||||
$strDbVersion = '8.2';
|
||||
}
|
||||
elsif ($iControlVersion == 812 && $iCatalogVersion == 200510211)
|
||||
{
|
||||
$strDbVersion = '8.1';
|
||||
}
|
||||
elsif ($iControlVersion == 74 && $iCatalogVersion == 200411041)
|
||||
{
|
||||
$strDbVersion = '8.0';
|
||||
}
|
||||
else
|
||||
{
|
||||
confess &log(ERROR, "unexpected control version = ${iControlVersion} and catalog version = ${iCatalogVersion}" .
|
||||
' (unsupported PostgreSQL version?)',
|
||||
ERROR_VERSION_NOT_SUPPORTED);
|
||||
}
|
||||
}
|
||||
|
||||
&log(DEBUG, OP_DB_INFO . "=>: dbVersion = ${strDbVersion}, controlVersion = ${iControlVersion}" .
|
||||
", catalogVersion = ${iCatalogVersion}, dbSysId = ${ullDbSysId}");
|
||||
|
||||
return $strDbVersion, $iControlVersion, $iCatalogVersion, $ullDbSysId;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# DB_VERSION_GET
|
||||
####################################################################################################################################
|
||||
|
@ -5,7 +5,8 @@ package BackRest::Exception;
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
use Carp qw(confess longmess);
|
||||
|
||||
use Exporter qw(import);
|
||||
|
||||
####################################################################################################################################
|
||||
@ -39,6 +40,7 @@ use constant
|
||||
ERROR_OPERATION_INVALID => 123,
|
||||
ERROR_HOST_CONNECT => 124,
|
||||
ERROR_LOCK_ACQUIRE => 125,
|
||||
ERROR_BACKUP_MISMATCH => 126,
|
||||
|
||||
ERROR_UNKNOWN => 199
|
||||
};
|
||||
@ -48,7 +50,7 @@ our @EXPORT = qw(ERROR_ASSERT ERROR_CHECKSUM ERROR_CONFIG ERROR_FILE_INVALID ERR
|
||||
ERROR_OPTION_DUPLICATE_KEY ERROR_OPTION_NEGATE ERROR_OPTION_REQUIRED ERROR_POSTMASTER_RUNNING ERROR_PROTOCOL
|
||||
ERROR_RESTORE_PATH_NOT_EMPTY ERROR_FILE_OPEN ERROR_FILE_READ ERROR_PARAM_REQUIRED ERROR_ARCHIVE_MISMATCH
|
||||
ERROR_ARCHIVE_DUPLICATE ERROR_VERSION_NOT_SUPPORTED ERROR_PATH_CREATE ERROR_OPERATION_INVALID ERROR_HOST_CONNECT
|
||||
ERROR_UNKNOWN ERROR_LOCK_ACQUIRE);
|
||||
ERROR_UNKNOWN ERROR_LOCK_ACQUIRE ERROR_BACKUP_MISMATCH);
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
@ -58,6 +60,7 @@ sub new
|
||||
my $class = shift; # Class name
|
||||
my $iCode = shift; # Error code
|
||||
my $strMessage = shift; # ErrorMessage
|
||||
my $strTrace = shift; # Stack trace
|
||||
|
||||
# Create the class hash
|
||||
my $self = {};
|
||||
@ -66,6 +69,7 @@ sub new
|
||||
# Initialize exception
|
||||
$self->{iCode} = $iCode;
|
||||
$self->{strMessage} = $strMessage;
|
||||
$self->{strTrace} = $strTrace;
|
||||
|
||||
return $self;
|
||||
}
|
||||
@ -90,4 +94,14 @@ sub message
|
||||
return $self->{strMessage};
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# TRACE
|
||||
####################################################################################################################################
|
||||
sub trace
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
return $self->{strTrace};
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -7,20 +7,20 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Net::OpenSSH;
|
||||
use Exporter qw(import);
|
||||
use Digest::SHA;
|
||||
use Fcntl qw(:mode O_RDONLY O_WRONLY O_CREAT O_EXCL);
|
||||
use File::Basename qw(dirname basename);
|
||||
use File::Copy qw(cp);
|
||||
use File::Path qw(make_path remove_tree);
|
||||
use Digest::SHA;
|
||||
use File::stat;
|
||||
use Fcntl qw(:mode O_RDONLY O_WRONLY O_CREAT O_EXCL);
|
||||
use Exporter qw(import);
|
||||
use Net::OpenSSH;
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Exception;
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::Exception;
|
||||
use BackRest::Remote;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# COMMAND Error Constants
|
||||
@ -292,22 +292,29 @@ sub path_get
|
||||
{
|
||||
my $strArchivePath = "$self->{strBackupPath}/archive/$self->{strStanza}";
|
||||
|
||||
if (!defined($strFile))
|
||||
{
|
||||
return $strArchivePath;
|
||||
}
|
||||
|
||||
if ($strType eq PATH_BACKUP_ARCHIVE)
|
||||
{
|
||||
my $strArchive;
|
||||
my $strArchiveId = (split('/', $strFile))[0];
|
||||
my $strArchiveFile = (split('/', $strFile))[1];
|
||||
|
||||
if (defined($strFile))
|
||||
if (!defined($strArchiveFile))
|
||||
{
|
||||
$strArchive = substr(basename($strFile), 0, 24);
|
||||
return "${strArchivePath}/${strFile}";
|
||||
}
|
||||
|
||||
my $strArchive = substr(basename($strArchiveFile), 0, 24);
|
||||
|
||||
if ($strArchive !~ /^([0-F]){24}$/)
|
||||
{
|
||||
return "${strArchivePath}/${strFile}";
|
||||
}
|
||||
}
|
||||
|
||||
$strArchivePath = $strArchivePath . (defined($strArchive) ? '/' . substr($strArchive, 0, 16) : '') .
|
||||
(defined($strFile) ? '/' . $strFile : '');
|
||||
$strArchivePath = "${strArchivePath}/${strArchiveId}/" . substr($strArchive, 0, 16) . "/${strArchiveFile}";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
334
lib/BackRest/Info.pm
Normal file
334
lib/BackRest/Info.pm
Normal file
@ -0,0 +1,334 @@
|
||||
####################################################################################################################################
|
||||
# INFO MODULE
|
||||
####################################################################################################################################
|
||||
package BackRest::Info;
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::BackupCommon;
|
||||
use BackRest::BackupInfo;
|
||||
use BackRest::Config;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
####################################################################################################################################
|
||||
use constant OP_INFO_LIST_STANZA => 'Info->listStanza';
|
||||
our @EXPORT = qw(OP_INFO_LIST_STANZA);
|
||||
|
||||
####################################################################################################################################
|
||||
# Info constants
|
||||
####################################################################################################################################
|
||||
use constant INFO_SECTION_BACKREST => 'backrest';
|
||||
use constant INFO_SECTION_ARCHIVE => 'archive';
|
||||
use constant INFO_SECTION_DB => 'database';
|
||||
use constant INFO_SECTION_INFO => 'info';
|
||||
use constant INFO_SECTION_REPO => 'repository';
|
||||
use constant INFO_SECTION_TIMESTAMP => 'timestamp';
|
||||
use constant INFO_SECTION_STATUS => 'status';
|
||||
|
||||
use constant INFO_STANZA_NAME => 'name';
|
||||
|
||||
use constant INFO_STANZA_STATUS_OK => 'ok';
|
||||
use constant INFO_STANZA_STATUS_ERROR => 'error';
|
||||
|
||||
use constant INFO_STANZA_STATUS_OK_CODE => 0;
|
||||
use constant INFO_STANZA_STATUS_OK_MESSAGE => INFO_STANZA_STATUS_OK;
|
||||
use constant INFO_STANZA_STATUS_MISSING_STANZA_CODE => 1;
|
||||
use constant INFO_STANZA_STATUS_MISSING_STANZA_MESSAGE => 'missing stanza path';
|
||||
use constant INFO_STANZA_STATUS_NO_BACKUP_CODE => 2;
|
||||
use constant INFO_STANZA_STATUS_NO_BACKUP_MESSAGE => 'no valid backups';
|
||||
|
||||
use constant INFO_KEY_CODE => 'code';
|
||||
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_MESSAGE => 'message';
|
||||
use constant INFO_KEY_PRIOR => 'prior';
|
||||
use constant INFO_KEY_REFERENCE => 'reference';
|
||||
use constant INFO_KEY_SIZE => 'size';
|
||||
use constant INFO_KEY_START => 'start';
|
||||
use constant INFO_KEY_STOP => 'stop';
|
||||
use constant INFO_KEY_SYSTEM_ID => 'system-id';
|
||||
use constant INFO_KEY_TYPE => 'type';
|
||||
use constant INFO_KEY_VERSION => 'version';
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
####################################################################################################################################
|
||||
sub new
|
||||
{
|
||||
my $class = shift; # Class name
|
||||
my $oFile = shift; # Remote object
|
||||
|
||||
# Create the class hash
|
||||
my $self = {};
|
||||
bless $self, $class;
|
||||
|
||||
# Set variables
|
||||
$self->{oFile} = $oFile;
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# info
|
||||
####################################################################################################################################
|
||||
sub info
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
# Get stanza if specified
|
||||
my $strStanza = optionTest(OPTION_STANZA) ? optionGet(OPTION_STANZA) : undef;
|
||||
|
||||
# Create the file object
|
||||
my $oFile = new BackRest::File
|
||||
(
|
||||
$strStanza,
|
||||
optionRemoteTypeTest(BACKUP) ? optionGet(OPTION_REPO_REMOTE_PATH) : optionGet(OPTION_REPO_PATH),
|
||||
optionRemoteTypeTest(BACKUP) ? BACKUP : NONE,
|
||||
optionRemote(!optionRemoteTypeTest(BACKUP))
|
||||
);
|
||||
|
||||
# Get the stanza list with all info
|
||||
my $oStanzaList = $self->listStanza($oFile, $strStanza);
|
||||
|
||||
if (optionTest(OPTION_OUTPUT, INFO_OUTPUT_TEXT))
|
||||
{
|
||||
my $strOutput;
|
||||
|
||||
foreach my $oStanzaInfo (@{$oStanzaList})
|
||||
{
|
||||
$strOutput = defined($strOutput) ? $strOutput .= "\n" : '';
|
||||
|
||||
$strOutput .= 'stanza ' . $$oStanzaInfo{&INFO_STANZA_NAME} . "\n";
|
||||
$strOutput .= ' 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";
|
||||
|
||||
if (@{$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}} > 0)
|
||||
{
|
||||
my $oOldestBackup = $$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}[0];
|
||||
|
||||
$strOutput .= ' oldest backup label: ' . $$oOldestBackup{&INFO_KEY_LABEL} . "\n";
|
||||
$strOutput .= ' oldest backup timestamp: ' .
|
||||
timestamp_string_get(undef, $$oOldestBackup{&INFO_BACKUP_KEY_TIMESTAMP_STOP}) . "\n";
|
||||
|
||||
my $oLatestBackup = $$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}[@{$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}} - 1];
|
||||
|
||||
$strOutput .= ' latest backup label: ' . $$oLatestBackup{&INFO_KEY_LABEL} . "\n";
|
||||
$strOutput .= ' latest backup timestamp: ' .
|
||||
timestamp_string_get(undef, $$oLatestBackup{&INFO_BACKUP_KEY_TIMESTAMP_STOP}) . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
syswrite(*STDOUT, $strOutput);
|
||||
}
|
||||
elsif (optionTest(OPTION_OUTPUT, INFO_OUTPUT_JSON))
|
||||
{
|
||||
my $oJSON = JSON::PP->new()->canonical()->pretty()->indent_length(4);
|
||||
syswrite(*STDOUT, $oJSON->encode($oStanzaList));
|
||||
}
|
||||
else
|
||||
{
|
||||
confess &log(ASSERT, "invalid info output option '" . optionGet(OPTION_OUTPUT) . "'");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# listStanza
|
||||
####################################################################################################################################
|
||||
sub listStanza
|
||||
{
|
||||
my $self = shift;
|
||||
my $oFile = shift;
|
||||
my $strStanza = shift;
|
||||
|
||||
# Set operation and debug strings
|
||||
my $strOperation = OP_INFO_LIST_STANZA;
|
||||
&log(DEBUG, "${strOperation}". (defined($strStanza) ? ": stanza = ${strStanza}" : ''));
|
||||
my @oStanzaList;
|
||||
|
||||
if ($oFile->is_remote(PATH_BACKUP))
|
||||
{
|
||||
# Build param hash
|
||||
my $oParamHash = undef;
|
||||
|
||||
if (defined($strStanza))
|
||||
{
|
||||
$$oParamHash{'stanza'} = $strStanza;
|
||||
}
|
||||
|
||||
# Trace the remote parameters
|
||||
&log(TRACE, "${strOperation}: remote (" . $oFile->{oRemote}->command_param_string($oParamHash) . ')');
|
||||
|
||||
# Execute the command
|
||||
my $strStanzaList = $oFile->{oRemote}->command_execute($strOperation, $oParamHash, true);
|
||||
|
||||
# Trace the remote response
|
||||
&log(TRACE, "${strOperation}: remote json response (${strStanzaList})");
|
||||
|
||||
my $oJSON = JSON::PP->new();
|
||||
return $oJSON->decode($strStanzaList);
|
||||
}
|
||||
else
|
||||
{
|
||||
my @stryStanza = $oFile->list(PATH_BACKUP, OP_BACKUP, undef, undef, true);
|
||||
|
||||
foreach my $strStanzaFound (@stryStanza)
|
||||
{
|
||||
if (defined($strStanza) && $strStanza ne $strStanzaFound)
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
my $oStanzaInfo = {};
|
||||
$$oStanzaInfo{&INFO_STANZA_NAME} = $strStanzaFound;
|
||||
($$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}, $$oStanzaInfo{&INFO_BACKUP_SECTION_DB}) =
|
||||
$self->listBackup($oFile, $strStanzaFound);
|
||||
|
||||
if (@{$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP}} == 0)
|
||||
{
|
||||
$$oStanzaInfo{&INFO_SECTION_STATUS} =
|
||||
{
|
||||
&INFO_KEY_CODE => INFO_STANZA_STATUS_NO_BACKUP_CODE,
|
||||
&INFO_KEY_MESSAGE => INFO_STANZA_STATUS_NO_BACKUP_MESSAGE
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
$$oStanzaInfo{&INFO_SECTION_STATUS} =
|
||||
{
|
||||
&INFO_KEY_CODE => INFO_STANZA_STATUS_OK_CODE,
|
||||
&INFO_KEY_MESSAGE => INFO_STANZA_STATUS_OK_MESSAGE
|
||||
};
|
||||
}
|
||||
|
||||
push @oStanzaList, $oStanzaInfo;
|
||||
}
|
||||
|
||||
if (defined($strStanza) && @oStanzaList == 0)
|
||||
{
|
||||
my $oStanzaInfo = {};
|
||||
|
||||
$$oStanzaInfo{&INFO_STANZA_NAME} = $strStanza;
|
||||
|
||||
$$oStanzaInfo{&INFO_SECTION_STATUS} =
|
||||
{
|
||||
&INFO_KEY_CODE => INFO_STANZA_STATUS_MISSING_STANZA_CODE,
|
||||
&INFO_KEY_MESSAGE => INFO_STANZA_STATUS_MISSING_STANZA_MESSAGE
|
||||
};
|
||||
|
||||
$$oStanzaInfo{&INFO_BACKUP_SECTION_BACKUP} = [];
|
||||
$$oStanzaInfo{&INFO_BACKUP_SECTION_DB} = [];
|
||||
|
||||
push @oStanzaList, $oStanzaInfo;
|
||||
}
|
||||
}
|
||||
|
||||
return \@oStanzaList;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# listBackup
|
||||
###################################################################################################################################
|
||||
sub listBackup
|
||||
{
|
||||
my $self = shift;
|
||||
my $oFile = shift;
|
||||
my $strStanza = shift;
|
||||
|
||||
# Load or build backup.info
|
||||
my $oBackupInfo = new BackRest::BackupInfo($oFile->path_get(PATH_BACKUP, OP_BACKUP . "/${strStanza}"));
|
||||
|
||||
# Build the db list
|
||||
my @oyDbList;
|
||||
|
||||
foreach my $iHistoryId ($oBackupInfo->keys(INFO_BACKUP_SECTION_DB_HISTORY))
|
||||
{
|
||||
my $oDbHash =
|
||||
{
|
||||
&INFO_KEY_ID => $iHistoryId,
|
||||
&INFO_KEY_VERSION =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_DB_HISTORY, $iHistoryId, INFO_BACKUP_KEY_DB_VERSION),
|
||||
&INFO_KEY_SYSTEM_ID =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_DB_HISTORY, $iHistoryId, INFO_BACKUP_KEY_SYSTEM_ID)
|
||||
};
|
||||
|
||||
push(@oyDbList, $oDbHash);
|
||||
}
|
||||
|
||||
# Build the backup list
|
||||
my @oyBackupList;
|
||||
|
||||
foreach my $strBackup ($oBackupInfo->keys(INFO_BACKUP_SECTION_BACKUP_CURRENT))
|
||||
{
|
||||
my $oBackupHash =
|
||||
{
|
||||
&INFO_SECTION_ARCHIVE =>
|
||||
{
|
||||
&INFO_KEY_START =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_ARCHIVE_START, false),
|
||||
&INFO_KEY_STOP =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_ARCHIVE_STOP, false),
|
||||
},
|
||||
&INFO_SECTION_BACKREST =>
|
||||
{
|
||||
&INFO_KEY_FORMAT =>
|
||||
$oBackupInfo->getNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INI_KEY_FORMAT),
|
||||
&INFO_KEY_VERSION =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INI_KEY_VERSION)
|
||||
},
|
||||
&INFO_SECTION_DB =>
|
||||
{
|
||||
&INFO_KEY_ID =>
|
||||
$oBackupInfo->getNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_HISTORY_ID)
|
||||
},
|
||||
&INFO_SECTION_INFO =>
|
||||
{
|
||||
&INFO_SECTION_REPO =>
|
||||
{
|
||||
&INFO_KEY_SIZE =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_BACKUP_REPO_SIZE),
|
||||
&INFO_KEY_DELTA =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_BACKUP_REPO_SIZE_DELTA),
|
||||
},
|
||||
&INFO_KEY_SIZE =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_BACKUP_SIZE),
|
||||
&INFO_KEY_DELTA =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_BACKUP_SIZE_DELTA),
|
||||
},
|
||||
&INFO_SECTION_TIMESTAMP =>
|
||||
{
|
||||
&INFO_KEY_START =>
|
||||
$oBackupInfo->getNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_TIMESTAMP_START),
|
||||
&INFO_KEY_STOP =>
|
||||
$oBackupInfo->getNumeric(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_TIMESTAMP_STOP),
|
||||
},
|
||||
&INFO_KEY_LABEL => $strBackup,
|
||||
&INFO_KEY_PRIOR =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_PRIOR, false),
|
||||
&INFO_KEY_REFERENCE =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_REFERENCE, false),
|
||||
&INFO_KEY_TYPE =>
|
||||
$oBackupInfo->get(INFO_BACKUP_SECTION_BACKUP_CURRENT, $strBackup, INFO_BACKUP_KEY_TYPE)
|
||||
};
|
||||
|
||||
push(@oyBackupList, $oBackupHash);
|
||||
}
|
||||
|
||||
return \@oyBackupList, \@oyDbList;
|
||||
}
|
||||
|
||||
1;
|
579
lib/BackRest/Ini.pm
Normal file
579
lib/BackRest/Ini.pm
Normal file
@ -0,0 +1,579 @@
|
||||
####################################################################################################################################
|
||||
# INI MODULE
|
||||
####################################################################################################################################
|
||||
package BackRest::Ini;
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname basename);
|
||||
use JSON::PP;
|
||||
use Storable qw(dclone);
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Exception;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
####################################################################################################################################
|
||||
use constant OP_INI => 'Ini';
|
||||
|
||||
use constant OP_INI_SET => OP_INI . "->set";
|
||||
|
||||
####################################################################################################################################
|
||||
# Boolean constants
|
||||
####################################################################################################################################
|
||||
use constant INI_TRUE => JSON::PP::true;
|
||||
use constant INI_FALSE => JSON::PP::false;
|
||||
|
||||
####################################################################################################################################
|
||||
# Ini control constants
|
||||
####################################################################################################################################
|
||||
use constant INI_SECTION_BACKREST => 'backrest';
|
||||
our @EXPORT = qw(INI_SECTION_BACKREST);
|
||||
|
||||
use constant INI_KEY_CHECKSUM => 'backrest-checksum';
|
||||
push @EXPORT, qw(INI_KEY_CHECKSUM);
|
||||
use constant INI_KEY_FORMAT => 'backrest-format';
|
||||
push @EXPORT, qw(INI_KEY_FORMAT);
|
||||
use constant INI_KEY_VERSION => 'backrest-version';
|
||||
push @EXPORT, qw(INI_KEY_VERSION);
|
||||
|
||||
use constant INI_COMMENT => '[comment]';
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
####################################################################################################################################
|
||||
sub new
|
||||
{
|
||||
my $class = shift; # Class name
|
||||
my $strFileName = shift; # Manifest filename
|
||||
my $bLoad = shift; # Load the ini?
|
||||
|
||||
# Create the class hash
|
||||
my $self = {};
|
||||
bless $self, $class;
|
||||
|
||||
# Filename must be specified
|
||||
if (!defined($strFileName))
|
||||
{
|
||||
confess &log(ASSERT, 'filename must be provided');
|
||||
}
|
||||
|
||||
# Set variables
|
||||
my $oContent = {};
|
||||
$self->{oContent} = $oContent;
|
||||
$self->{strFileName} = $strFileName;
|
||||
|
||||
# Load the ini if specified
|
||||
if (!defined($bLoad) || $bLoad)
|
||||
{
|
||||
$self->load();
|
||||
|
||||
# Make sure the ini is valid by testing checksum
|
||||
my $strChecksum = $self->get(INI_SECTION_BACKREST, INI_KEY_CHECKSUM);
|
||||
my $strTestChecksum = $self->hash();
|
||||
|
||||
if ($strChecksum ne $strTestChecksum)
|
||||
{
|
||||
confess &log(ERROR, "${strFileName} checksum is invalid, should be ${strTestChecksum} but found ${strChecksum}",
|
||||
ERROR_CHECKSUM);
|
||||
}
|
||||
|
||||
# Make sure that the format is current, otherwise error
|
||||
my $iFormat = $self->get(INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, false, 0);
|
||||
|
||||
if ($iFormat != FORMAT)
|
||||
{
|
||||
confess &log(ERROR, "format of ${strFileName} is ${iFormat} but " . FORMAT . ' is required by this version of ' .
|
||||
'PgBackRest.', ERROR_FORMAT);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$self->setNumeric(INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, FORMAT);
|
||||
$self->set(INI_SECTION_BACKREST, INI_KEY_VERSION, undef, version_get());
|
||||
}
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# load
|
||||
#
|
||||
# Load the ini.
|
||||
####################################################################################################################################
|
||||
sub load
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
iniLoad($self->{strFileName}, $self->{oContent});
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# iniLoad
|
||||
#
|
||||
# Load file from standard INI format to a hash.
|
||||
####################################################################################################################################
|
||||
push @EXPORT, qw(iniLoad);
|
||||
|
||||
sub iniLoad
|
||||
{
|
||||
my $strFileName = shift;
|
||||
my $oContent = shift;
|
||||
my $bRelaxed = shift;
|
||||
|
||||
# Open the ini file for reading
|
||||
my $hFile;
|
||||
my $strSection;
|
||||
|
||||
open($hFile, '<', $strFileName)
|
||||
or confess &log(ERROR, "unable to open ${strFileName}");
|
||||
|
||||
# Create the JSON object
|
||||
my $oJSON = JSON::PP->new()->allow_nonref();
|
||||
|
||||
# Read the INI file
|
||||
while (my $strLine = readline($hFile))
|
||||
{
|
||||
$strLine = trim($strLine);
|
||||
|
||||
# Skip lines that are blank or comments
|
||||
if ($strLine ne '' && $strLine !~ '^[ ]*#.*')
|
||||
{
|
||||
# Get the section
|
||||
if (index($strLine, '[') == 0)
|
||||
{
|
||||
$strSection = substr($strLine, 1, length($strLine) - 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
# Get key and value
|
||||
my $iIndex = index($strLine, '=');
|
||||
|
||||
if ($iIndex == -1)
|
||||
{
|
||||
confess &log(ERROR, "unable to read from ${strFileName}: ${strLine}");
|
||||
}
|
||||
|
||||
my $strKey = substr($strLine, 0, $iIndex);
|
||||
my $strValue = substr($strLine, $iIndex + 1);
|
||||
|
||||
# If relaxed then read the value directly
|
||||
if ($bRelaxed)
|
||||
{
|
||||
${$oContent}{$strSection}{$strKey} = $strValue;
|
||||
}
|
||||
# Else read the value as stricter JSON
|
||||
else
|
||||
{
|
||||
${$oContent}{$strSection}{$strKey} = $oJSON->decode($strValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
close($hFile);
|
||||
return($oContent);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# save
|
||||
#
|
||||
# Save the manifest.
|
||||
####################################################################################################################################
|
||||
sub save
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
$self->hash();
|
||||
iniSave($self->{strFileName}, $self->{oContent});
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# iniSave
|
||||
#
|
||||
# Save from a hash to standard INI format.
|
||||
####################################################################################################################################
|
||||
push @EXPORT, qw(iniSave);
|
||||
|
||||
sub iniSave
|
||||
{
|
||||
my $strFileName = shift;
|
||||
my $oContent = shift;
|
||||
my $bRelaxed = shift;
|
||||
|
||||
# Open the ini file for writing
|
||||
my $hFile;
|
||||
my $bFirst = true;
|
||||
|
||||
open($hFile, '>', $strFileName)
|
||||
or confess &log(ERROR, "unable to open ${strFileName}");
|
||||
|
||||
# Create the JSON object canonical so that fields are alpha ordered to pass unit tests
|
||||
my $oJSON = JSON::PP->new()->canonical()->allow_nonref();
|
||||
$bRelaxed = defined($bRelaxed) ? $bRelaxed : false;
|
||||
|
||||
# Write the INI file
|
||||
foreach my $strSection (sort(keys $oContent))
|
||||
{
|
||||
# Add a linefeed between sections
|
||||
if (!$bFirst)
|
||||
{
|
||||
syswrite($hFile, "\n")
|
||||
or confess "unable to write lf: $!";
|
||||
}
|
||||
|
||||
# Write the section comment if present
|
||||
if (defined(${$oContent}{$strSection}{&INI_COMMENT}))
|
||||
{
|
||||
my $strComment = trim(${$oContent}{$strSection}{&INI_COMMENT});
|
||||
$strComment =~ s/\n/\n# /g;
|
||||
|
||||
# syswrite($hFile, ('#' x 80) . "\n# ${strComment}\n" . ('#' x 80) . "\n")
|
||||
# or confess "unable to comment for section ${strSection}: $!";
|
||||
syswrite($hFile, "# ${strComment}\n")
|
||||
or confess "unable to comment for section ${strSection}: $!";
|
||||
}
|
||||
|
||||
# Write the section
|
||||
syswrite($hFile, "[${strSection}]\n")
|
||||
or confess "unable to write section ${strSection}: $!";
|
||||
|
||||
# Iterate through all keys in the section
|
||||
foreach my $strKey (sort(keys ${$oContent}{"${strSection}"}))
|
||||
{
|
||||
# Skip comments
|
||||
if ($strKey eq INI_COMMENT)
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
# If the value is a hash then convert it to JSON, otherwise store as is
|
||||
my $strValue = ${$oContent}{"${strSection}"}{"${strKey}"};
|
||||
|
||||
# If relaxed then store as old-style config
|
||||
if ($bRelaxed)
|
||||
{
|
||||
syswrite($hFile, "${strKey}=${strValue}\n")
|
||||
or confess "unable to write relaxed key ${strKey}: $!";
|
||||
}
|
||||
# Else write as stricter JSON
|
||||
else
|
||||
{
|
||||
syswrite($hFile, "${strKey}=" . $oJSON->encode($strValue) . "\n")
|
||||
or confess "unable to write json key ${strKey}: $!";
|
||||
}
|
||||
}
|
||||
|
||||
$bFirst = false;
|
||||
}
|
||||
|
||||
close($hFile);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# hash
|
||||
#
|
||||
# Generate hash for the manifest.
|
||||
####################################################################################################################################
|
||||
sub hash
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
# Remove the old checksum
|
||||
$self->remove(INI_SECTION_BACKREST, INI_KEY_CHECKSUM);
|
||||
|
||||
# Caculate the checksum
|
||||
my $oChecksumContent = dclone($self->{oContent});
|
||||
|
||||
foreach my $strSection (keys($oChecksumContent))
|
||||
{
|
||||
delete(${$oChecksumContent}{$strSection}{&INI_COMMENT});
|
||||
}
|
||||
|
||||
my $oSHA = Digest::SHA->new('sha1');
|
||||
my $oJSON = JSON::PP->new()->canonical()->allow_nonref();
|
||||
$oSHA->add($oJSON->encode($oChecksumContent));
|
||||
|
||||
# Set the new checksum
|
||||
my $strHash = $oSHA->hexdigest();
|
||||
|
||||
$self->set(INI_SECTION_BACKREST, INI_KEY_CHECKSUM, undef, $strHash);
|
||||
|
||||
return $strHash;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# getBool
|
||||
#
|
||||
# Get a numeric value.
|
||||
####################################################################################################################################
|
||||
sub getBool
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strValue = shift;
|
||||
my $strSubValue = shift;
|
||||
my $bRequired = shift;
|
||||
my $bDefault = shift;
|
||||
|
||||
return $self->get($strSection, $strValue, $strSubValue, $bRequired,
|
||||
defined($bDefault) ? ($bDefault ? INI_TRUE : INI_FALSE) : undef) ? true : false;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# getNumeric
|
||||
#
|
||||
# Get a numeric value.
|
||||
####################################################################################################################################
|
||||
sub getNumeric
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strValue = shift;
|
||||
my $strSubValue = shift;
|
||||
my $bRequired = shift;
|
||||
my $nDefault = shift;
|
||||
|
||||
return $self->get($strSection, $strValue, $strSubValue, $bRequired,
|
||||
defined($nDefault) ? $nDefault + 0 : undef) + 0;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# get
|
||||
#
|
||||
# Get a value.
|
||||
####################################################################################################################################
|
||||
sub get
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strValue = shift;
|
||||
my $strSubValue = shift;
|
||||
my $bRequired = shift;
|
||||
my $oDefault = shift;
|
||||
|
||||
my $oContent = $self->{oContent};
|
||||
|
||||
# Section must always be defined
|
||||
if (!defined($strSection))
|
||||
{
|
||||
confess &log(ASSERT, 'section is not defined');
|
||||
}
|
||||
|
||||
# Set default for required
|
||||
$bRequired = defined($bRequired) ? $bRequired : true;
|
||||
|
||||
# Store the result
|
||||
my $oResult = undef;
|
||||
|
||||
if (defined($strSubValue))
|
||||
{
|
||||
if (!defined($strValue))
|
||||
{
|
||||
confess &log(ASSERT, "subvalue '${strSubValue}' requested but value is not defined");
|
||||
}
|
||||
|
||||
if (defined(${$oContent}{$strSection}{$strValue}))
|
||||
{
|
||||
$oResult = ${$oContent}{$strSection}{$strValue}{$strSubValue};
|
||||
}
|
||||
}
|
||||
elsif (defined($strValue))
|
||||
{
|
||||
if (defined(${$oContent}{$strSection}))
|
||||
{
|
||||
$oResult = ${$oContent}{$strSection}{$strValue};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$oResult = ${$oContent}{$strSection};
|
||||
}
|
||||
|
||||
if (!defined($oResult) && $bRequired)
|
||||
{
|
||||
confess &log(ASSERT, "manifest section '$strSection'" . (defined($strValue) ? ", value '$strValue'" : '') .
|
||||
(defined($strSubValue) ? ", subvalue '$strSubValue'" : '') . ' is required but not defined');
|
||||
}
|
||||
|
||||
if (!defined($oResult) && defined($oDefault))
|
||||
{
|
||||
$oResult = $oDefault;
|
||||
}
|
||||
|
||||
return $oResult
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# setBool
|
||||
#
|
||||
# Set a boolean value.
|
||||
####################################################################################################################################
|
||||
sub setBool
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strKey = shift;
|
||||
my $strSubKey = shift;
|
||||
my $bValue = shift;
|
||||
|
||||
$self->set($strSection, $strKey, $strSubKey, $bValue ? INI_TRUE : INI_FALSE);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# setNumeric
|
||||
#
|
||||
# Set a numeric value.
|
||||
####################################################################################################################################
|
||||
sub setNumeric
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strKey = shift;
|
||||
my $strSubKey = shift;
|
||||
my $nValue = shift;
|
||||
|
||||
$self->set($strSection, $strKey, $strSubKey, $nValue + 0);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# set
|
||||
#
|
||||
# Set a value.
|
||||
####################################################################################################################################
|
||||
sub set
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strKey = shift;
|
||||
my $strSubKey = shift;
|
||||
my $strValue = shift;
|
||||
|
||||
my $oContent = $self->{oContent};
|
||||
|
||||
if (defined($strSubKey))
|
||||
{
|
||||
${$oContent}{$strSection}{$strKey}{$strSubKey} = $strValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
${$oContent}{$strSection}{$strKey} = $strValue;
|
||||
}
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# setComment
|
||||
#
|
||||
# Set a section comment.
|
||||
####################################################################################################################################
|
||||
sub setComment
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strComment = shift;
|
||||
|
||||
my $oContent = $self->{oContent};
|
||||
|
||||
${$oContent}{$strSection}{&INI_COMMENT} = $strComment;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# remove
|
||||
#
|
||||
# Remove a value.
|
||||
####################################################################################################################################
|
||||
sub remove
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strKey = shift;
|
||||
my $strSubKey = shift;
|
||||
my $strValue = shift;
|
||||
|
||||
my $oContent = $self->{oContent};
|
||||
|
||||
if (defined($strSubKey))
|
||||
{
|
||||
delete(${$oContent}{$strSection}{$strKey}{$strSubKey});
|
||||
}
|
||||
else
|
||||
{
|
||||
delete(${$oContent}{$strSection}{$strKey});
|
||||
}
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# keys
|
||||
#
|
||||
# Get a list of keys.
|
||||
####################################################################################################################################
|
||||
sub keys
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strKey = shift;
|
||||
|
||||
if (defined($strSection))
|
||||
{
|
||||
if ($self->test($strSection, $strKey))
|
||||
{
|
||||
return sort(keys $self->get($strSection, $strKey));
|
||||
}
|
||||
|
||||
my @stryEmptyArray;
|
||||
return @stryEmptyArray;
|
||||
}
|
||||
|
||||
return sort(keys $self->{oContent});
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# testBool
|
||||
#
|
||||
# Test a value to see if it equals the supplied test boolean value. If no test value is given, tests that it is defined.
|
||||
####################################################################################################################################
|
||||
sub testBool
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strValue = shift;
|
||||
my $strSubValue = shift;
|
||||
my $bTest = shift;
|
||||
|
||||
return $self->test($strSection, $strValue, $strSubValue, defined($bTest) ? ($bTest ? INI_TRUE : INI_FALSE) : undef);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# test
|
||||
#
|
||||
# Test a value to see if it equals the supplied test value. If no test value is given, tests that it is defined.
|
||||
####################################################################################################################################
|
||||
sub test
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strValue = shift;
|
||||
my $strSubValue = shift;
|
||||
my $strTest = shift;
|
||||
|
||||
my $strResult = $self->get($strSection, $strValue, $strSubValue, false);
|
||||
|
||||
if (defined($strResult))
|
||||
{
|
||||
if (defined($strTest))
|
||||
{
|
||||
return $strResult eq $strTest ? true : false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
1;
|
@ -7,13 +7,13 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use Fcntl qw(:DEFAULT :flock);
|
||||
use File::Basename qw(dirname);
|
||||
use Exporter qw(import);
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Exception;
|
||||
use BackRest::Config;
|
||||
use BackRest::Exception;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
|
@ -2,87 +2,132 @@
|
||||
# MANIFEST MODULE
|
||||
####################################################################################################################################
|
||||
package BackRest::Manifest;
|
||||
use parent 'BackRest::Ini';
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname basename);
|
||||
use Time::Local qw(timelocal);
|
||||
use Digest::SHA;
|
||||
use Time::Local qw(timelocal);
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Exception qw(ERROR_CHECKSUM ERROR_FORMAT);
|
||||
use BackRest::Utility;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Utility;
|
||||
|
||||
# Exports
|
||||
use Exporter qw(import);
|
||||
our @EXPORT = qw(MANIFEST_PATH MANIFEST_FILE MANIFEST_LINK
|
||||
|
||||
MANIFEST_SECTION_BACKUP MANIFEST_SECTION_BACKUP_OPTION MANIFEST_SECTION_BACKUP_PATH
|
||||
MANIFEST_SECTION_BACKUP_TABLESPACE
|
||||
|
||||
MANIFEST_KEY_ARCHIVE_START MANIFEST_KEY_ARCHIVE_STOP MANIFEST_KEY_BASE MANIFEST_KEY_CHECKSUM MANIFEST_KEY_COMPRESS
|
||||
MANIFEST_KEY_HARDLINK MANIFEST_KEY_LABEL MANIFEST_KEY_PRIOR MANIFEST_KEY_REFERENCE MANIFEST_KEY_TIMESTAMP_COPY_START
|
||||
MANIFEST_KEY_TIMESTAMP_START MANIFEST_KEY_TIMESTAMP_STOP MANIFEST_KEY_TYPE MANIFEST_KEY_VERSION
|
||||
|
||||
MANIFEST_SUBKEY_CHECKSUM MANIFEST_SUBKEY_DESTINATION MANIFEST_SUBKEY_FUTURE MANIFEST_SUBKEY_GROUP
|
||||
MANIFEST_SUBKEY_LINK MANIFEST_SUBKEY_MODE MANIFEST_SUBKEY_MODIFICATION_TIME MANIFEST_SUBKEY_PATH
|
||||
MANIFEST_SUBKEY_REFERENCE MANIFEST_SUBKEY_SIZE MANIFEST_SUBKEY_USER);
|
||||
####################################################################################################################################
|
||||
# Operation constants
|
||||
####################################################################################################################################
|
||||
use constant OP_MANIFEST => 'Manifest';
|
||||
our @EXPORT = qw(OP_MANIFEST);
|
||||
use constant OP_MANIFEST_SAVE => OP_MANIFEST . '->save';
|
||||
push @EXPORT, qw(OP_MANIFEST_SAVE);
|
||||
|
||||
####################################################################################################################################
|
||||
# File/path constants
|
||||
####################################################################################################################################
|
||||
use constant FILE_MANIFEST => 'backup.manifest';
|
||||
|
||||
push @EXPORT, qw(FILE_MANIFEST);
|
||||
use constant PATH_PG_TBLSPC => 'pg_tblspc';
|
||||
push @EXPORT, qw(PATH_PG_TBLSPC);
|
||||
|
||||
####################################################################################################################################
|
||||
# MANIFEST Constants
|
||||
####################################################################################################################################
|
||||
use constant
|
||||
{
|
||||
MANIFEST_PATH => 'path',
|
||||
MANIFEST_FILE => 'file',
|
||||
MANIFEST_LINK => 'link',
|
||||
use constant MANIFEST_PATH => 'path';
|
||||
push @EXPORT, qw(MANIFEST_PATH);
|
||||
use constant MANIFEST_FILE => 'file';
|
||||
push @EXPORT, qw(MANIFEST_FILE);
|
||||
use constant MANIFEST_LINK => 'link';
|
||||
push @EXPORT, qw(MANIFEST_LINK);
|
||||
use constant MANIFEST_TABLESPACE => 'tablespace';
|
||||
push @EXPORT, qw(MANIFEST_TABLESPACE);
|
||||
|
||||
MANIFEST_SECTION_BACKUP => 'backup',
|
||||
MANIFEST_SECTION_BACKUP_OPTION => 'backup:option',
|
||||
MANIFEST_SECTION_BACKUP_PATH => 'backup:path',
|
||||
MANIFEST_SECTION_BACKUP_TABLESPACE => 'backup:tablespace',
|
||||
use constant MANIFEST_KEY_BASE => 'base';
|
||||
push @EXPORT, qw(MANIFEST_KEY_BASE);
|
||||
|
||||
MANIFEST_KEY_ARCHIVE_START => 'archive-start',
|
||||
MANIFEST_KEY_ARCHIVE_STOP => 'archive-stop',
|
||||
MANIFEST_KEY_BASE => 'base',
|
||||
MANIFEST_KEY_CHECKSUM => 'checksum',
|
||||
MANIFEST_KEY_COMPRESS => 'compress',
|
||||
MANIFEST_KEY_FORMAT => 'format',
|
||||
MANIFEST_KEY_HARDLINK => 'hardlink',
|
||||
MANIFEST_KEY_LABEL => 'label',
|
||||
MANIFEST_KEY_PRIOR => 'prior',
|
||||
MANIFEST_KEY_REFERENCE => 'reference',
|
||||
MANIFEST_KEY_TIMESTAMP_COPY_START => 'timestamp-copy-start',
|
||||
MANIFEST_KEY_TIMESTAMP_START => 'timestamp-start',
|
||||
MANIFEST_KEY_TIMESTAMP_STOP => 'timestamp-stop',
|
||||
MANIFEST_KEY_TYPE => 'type',
|
||||
MANIFEST_KEY_VERSION => 'version',
|
||||
# Manifest sections
|
||||
use constant MANIFEST_SECTION_BACKUP => 'backup';
|
||||
push @EXPORT, qw(MANIFEST_SECTION_BACKUP);
|
||||
use constant MANIFEST_SECTION_BACKUP_DB => 'backup:db';
|
||||
push @EXPORT, qw(MANIFEST_SECTION_BACKUP_DB);
|
||||
use constant MANIFEST_SECTION_BACKUP_INFO => 'backup:info';
|
||||
push @EXPORT, qw(MANIFEST_SECTION_BACKUP_INFO);
|
||||
use constant MANIFEST_SECTION_BACKUP_OPTION => 'backup:option';
|
||||
push @EXPORT, qw(MANIFEST_SECTION_BACKUP_OPTION);
|
||||
use constant MANIFEST_SECTION_BACKUP_PATH => 'backup:path';
|
||||
push @EXPORT, qw(MANIFEST_SECTION_BACKUP_PATH);
|
||||
|
||||
MANIFEST_SUBKEY_CHECKSUM => 'checksum',
|
||||
MANIFEST_SUBKEY_DESTINATION => 'link_destination',
|
||||
MANIFEST_SUBKEY_FUTURE => 'future',
|
||||
MANIFEST_SUBKEY_GROUP => 'group',
|
||||
MANIFEST_SUBKEY_LINK => 'link',
|
||||
MANIFEST_SUBKEY_MODE => 'mode',
|
||||
MANIFEST_SUBKEY_MODIFICATION_TIME => 'modification_time',
|
||||
MANIFEST_SUBKEY_PATH => 'path',
|
||||
MANIFEST_SUBKEY_REFERENCE => 'reference',
|
||||
MANIFEST_SUBKEY_SIZE => 'size',
|
||||
MANIFEST_SUBKEY_USER => 'user'
|
||||
};
|
||||
# Backup metadata required for restores
|
||||
use constant MANIFEST_KEY_ARCHIVE_START => 'backup-archive-start';
|
||||
push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_START);
|
||||
use constant MANIFEST_KEY_ARCHIVE_STOP => 'backup-archive-stop';
|
||||
push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_STOP);
|
||||
use constant MANIFEST_KEY_LABEL => 'backup-label';
|
||||
push @EXPORT, qw(MANIFEST_KEY_LABEL);
|
||||
use constant MANIFEST_KEY_PRIOR => 'backup-prior';
|
||||
push @EXPORT, qw(MANIFEST_KEY_PRIOR);
|
||||
use constant MANIFEST_KEY_TIMESTAMP_COPY_START => 'backup-timestamp-copy-start';
|
||||
push @EXPORT, qw(MANIFEST_KEY_TIMESTAMP_COPY_START);
|
||||
use constant MANIFEST_KEY_TIMESTAMP_START => 'backup-timestamp-start';
|
||||
push @EXPORT, qw(MANIFEST_KEY_TIMESTAMP_START);
|
||||
use constant MANIFEST_KEY_TIMESTAMP_STOP => 'backup-timestamp-stop';
|
||||
push @EXPORT, qw(MANIFEST_KEY_TIMESTAMP_STOP);
|
||||
use constant MANIFEST_KEY_TYPE => 'backup-type';
|
||||
push @EXPORT, qw(MANIFEST_KEY_TYPE);
|
||||
|
||||
# Options that were set when the backup was made
|
||||
use constant MANIFEST_KEY_HARDLINK => 'option-hardlink';
|
||||
push @EXPORT, qw(MANIFEST_KEY_HARDLINK);
|
||||
use constant MANIFEST_KEY_ARCHIVE_CHECK => 'option-archive-check';
|
||||
push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_CHECK);
|
||||
use constant MANIFEST_KEY_ARCHIVE_COPY => 'option-archive-copy';
|
||||
push @EXPORT, qw(MANIFEST_KEY_ARCHIVE_COPY);
|
||||
use constant MANIFEST_KEY_COMPRESS => 'option-compress';
|
||||
push @EXPORT, qw(MANIFEST_KEY_COMPRESS);
|
||||
use constant MANIFEST_KEY_START_STOP => 'option-start-stop';
|
||||
push @EXPORT, qw(MANIFEST_KEY_START_STOP);
|
||||
|
||||
# Information about the database that was backed up
|
||||
use constant MANIFEST_KEY_SYSTEM_ID => 'db-system-id';
|
||||
push @EXPORT, qw(MANIFEST_KEY_SYSTEM_ID);
|
||||
use constant MANIFEST_KEY_CATALOG => 'db-catalog-version';
|
||||
push @EXPORT, qw(MANIFEST_KEY_CATALOG);
|
||||
use constant MANIFEST_KEY_CONTROL => 'db-control-version';
|
||||
push @EXPORT, qw(MANIFEST_KEY_CONTROL);
|
||||
use constant MANIFEST_KEY_DB_VERSION => 'db-version';
|
||||
push @EXPORT, qw(MANIFEST_KEY_DB_VERSION);
|
||||
|
||||
# Subkeys used for path/file/link info
|
||||
use constant MANIFEST_SUBKEY_CHECKSUM => 'checksum';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_CHECKSUM);
|
||||
use constant MANIFEST_SUBKEY_DESTINATION => 'destination';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_DESTINATION);
|
||||
use constant MANIFEST_SUBKEY_FUTURE => 'future';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_FUTURE);
|
||||
use constant MANIFEST_SUBKEY_GROUP => 'group';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_GROUP);
|
||||
use constant MANIFEST_SUBKEY_LINK => 'link';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_LINK);
|
||||
use constant MANIFEST_SUBKEY_MODE => 'mode';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_MODE);
|
||||
use constant MANIFEST_SUBKEY_TIMESTAMP => 'timestamp';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_TIMESTAMP);
|
||||
use constant MANIFEST_SUBKEY_PATH => 'path';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_PATH);
|
||||
use constant MANIFEST_SUBKEY_REFERENCE => 'reference';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_REFERENCE);
|
||||
use constant MANIFEST_SUBKEY_SIZE => 'size';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_SIZE);
|
||||
use constant MANIFEST_SUBKEY_USER => 'user';
|
||||
push @EXPORT, qw(MANIFEST_SUBKEY_USER);
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
# new
|
||||
####################################################################################################################################
|
||||
sub new
|
||||
{
|
||||
@ -90,56 +135,17 @@ sub new
|
||||
my $strFileName = shift; # Manifest filename
|
||||
my $bLoad = shift; # Load the manifest?
|
||||
|
||||
# Create the class hash
|
||||
my $self = {};
|
||||
bless $self, $class;
|
||||
# Set defaults
|
||||
$bLoad = defined($bLoad) ? $bLoad : true;
|
||||
|
||||
# Filename must be specified
|
||||
if (!defined($strFileName))
|
||||
{
|
||||
confess &log(ASSERT, 'filename must be provided');
|
||||
}
|
||||
|
||||
# Set variables
|
||||
my $oManifest = {};
|
||||
$self->{oManifest} = $oManifest;
|
||||
$self->{strFileName} = $strFileName;
|
||||
|
||||
# Load the manifest if specified
|
||||
if (!(defined($bLoad) && $bLoad == false))
|
||||
{
|
||||
ini_load($strFileName, $oManifest);
|
||||
|
||||
# Make sure the manifest is valid by testing checksum
|
||||
my $strChecksum = $self->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_CHECKSUM);
|
||||
my $strTestChecksum = $self->hash();
|
||||
|
||||
if ($strChecksum ne $strTestChecksum)
|
||||
{
|
||||
confess &log(ERROR, "backup.manifest checksum is invalid, should be ${strTestChecksum}", ERROR_CHECKSUM);
|
||||
}
|
||||
|
||||
# Make sure that the format is current, otherwise error
|
||||
my $iFormat = $self->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_FORMAT, undef, false, 0);
|
||||
|
||||
if ($iFormat != FORMAT)
|
||||
{
|
||||
confess &log(ERROR, "backup format of ${strFileName} is ${iFormat} but " . FORMAT . ' is required by this version of ' .
|
||||
'PgBackRest. If you are attempting an incr/diff backup you will need to take a new full backup. ' .
|
||||
"If you are trying to restore, you''ll need to use a version that supports format ${iFormat}." ,
|
||||
ERROR_FORMAT);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$self->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_FORMAT, undef, FORMAT);
|
||||
}
|
||||
# Init object and store variables
|
||||
my $self = $class->SUPER::new($strFileName, $bLoad);
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# SAVE
|
||||
# save
|
||||
#
|
||||
# Save the manifest.
|
||||
####################################################################################################################################
|
||||
@ -147,144 +153,29 @@ sub save
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
# Create the checksum
|
||||
$self->hash();
|
||||
# !!! Add section comments here
|
||||
# $self->setComment(MANIFEST_SECTION_BACKUP_INFO,
|
||||
# #################################################################################
|
||||
# "Information about the backup:\n" .
|
||||
# " backup-size = total size of original files.\n" .
|
||||
# " backup-size-delta = difference in total file size from the prior backup.\n".
|
||||
# " backup-size-delta will be equal to backup-size when\n" .
|
||||
# " backup-type = full, otherwise this is not possible\n" .
|
||||
# " unless option-start-stop = true.\n" .
|
||||
# "\n" .
|
||||
# "Human-readable output:\n" .
|
||||
# " backup-repo-size = " . file_size_format($lBackupRepoSize) . "\n" .
|
||||
# " backup-repo-size-delta = " . file_size_format($lBackupRepoSizeDelta) . "\n" .
|
||||
# " backup-size = " . file_size_format($lBackupSize) . "\n" .
|
||||
# " backup-size-delta = " . file_size_format($lBackupSizeDelta)
|
||||
# );
|
||||
|
||||
# Save the config file
|
||||
ini_save($self->{strFileName}, $self->{oManifest});
|
||||
# Call inherited save
|
||||
$self->SUPER::save();
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# HASH
|
||||
#
|
||||
# Generate hash for the manifest.
|
||||
####################################################################################################################################
|
||||
sub hash
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
my $oManifest = $self->{oManifest};
|
||||
|
||||
# Remove the old checksum
|
||||
$self->remove(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_CHECKSUM);
|
||||
|
||||
my $oSHA = Digest::SHA->new('sha1');
|
||||
|
||||
# Calculate the checksum from section values
|
||||
foreach my $strSection ($self->keys())
|
||||
{
|
||||
$oSHA->add($strSection);
|
||||
|
||||
# Calculate the checksum from key values
|
||||
foreach my $strKey ($self->keys($strSection))
|
||||
{
|
||||
$oSHA->add($strKey);
|
||||
|
||||
my $strValue = $self->get($strSection, $strKey);
|
||||
|
||||
if (!defined($strValue))
|
||||
{
|
||||
confess &log(ASSERT, "section ${strSection}, key ${$strKey} has undef value");
|
||||
}
|
||||
|
||||
# Calculate the checksum from subkey values
|
||||
if (ref($strValue) eq "HASH")
|
||||
{
|
||||
foreach my $strSubKey ($self->keys($strSection, $strKey))
|
||||
{
|
||||
my $strSubValue = $self->get($strSection, $strKey, $strSubKey);
|
||||
|
||||
if (!defined($strSubValue))
|
||||
{
|
||||
confess &log(ASSERT, "section ${strSection}, key ${strKey}, subkey ${strSubKey} has undef value");
|
||||
}
|
||||
|
||||
$oSHA->add($strSubValue);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$oSHA->add($strValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Set the new checksum
|
||||
my $strHash = $oSHA->hexdigest();
|
||||
|
||||
$self->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_CHECKSUM, undef, $strHash);
|
||||
|
||||
return $strHash;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# GET
|
||||
#
|
||||
# Get a value.
|
||||
####################################################################################################################################
|
||||
sub get
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strValue = shift;
|
||||
my $strSubValue = shift;
|
||||
my $bRequired = shift;
|
||||
my $oDefault = shift;
|
||||
|
||||
my $oManifest = $self->{oManifest};
|
||||
|
||||
# Section must always be defined
|
||||
if (!defined($strSection))
|
||||
{
|
||||
confess &log(ASSERT, 'section is not defined');
|
||||
}
|
||||
|
||||
# Set default for required
|
||||
$bRequired = defined($bRequired) ? $bRequired : true;
|
||||
|
||||
# Store the result
|
||||
my $oResult = undef;
|
||||
|
||||
if (defined($strSubValue))
|
||||
{
|
||||
if (!defined($strValue))
|
||||
{
|
||||
confess &log(ASSERT, 'subvalue requested bu value is not defined');
|
||||
}
|
||||
|
||||
if (defined(${$oManifest}{$strSection}{$strValue}))
|
||||
{
|
||||
$oResult = ${$oManifest}{$strSection}{$strValue}{$strSubValue};
|
||||
}
|
||||
}
|
||||
elsif (defined($strValue))
|
||||
{
|
||||
if (defined(${$oManifest}{$strSection}))
|
||||
{
|
||||
$oResult = ${$oManifest}{$strSection}{$strValue};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$oResult = ${$oManifest}{$strSection};
|
||||
}
|
||||
|
||||
if (!defined($oResult) && $bRequired)
|
||||
{
|
||||
confess &log(ASSERT, "manifest section '$strSection'" . (defined($strValue) ? ", value '$strValue'" : '') .
|
||||
(defined($strSubValue) ? ", subvalue '$strSubValue'" : '') . ' is required but not defined');
|
||||
}
|
||||
|
||||
if (!defined($oResult) && defined($oDefault))
|
||||
{
|
||||
$oResult = $oDefault;
|
||||
}
|
||||
|
||||
return $oResult
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# SET
|
||||
# set
|
||||
#
|
||||
# Set a value.
|
||||
####################################################################################################################################
|
||||
@ -296,23 +187,15 @@ sub set
|
||||
my $strSubKey = shift;
|
||||
my $strValue = shift;
|
||||
|
||||
my $oManifest = $self->{oManifest};
|
||||
|
||||
# Make sure the keys are valid
|
||||
$self->valid($strSection, $strKey, $strSubKey);
|
||||
|
||||
if (defined($strSubKey))
|
||||
{
|
||||
${$oManifest}{$strSection}{$strKey}{$strSubKey} = $strValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
${$oManifest}{$strSection}{$strKey} = $strValue;
|
||||
}
|
||||
# Call inherited set
|
||||
$self->SUPER::set($strSection, $strKey, $strSubKey, $strValue);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# REMOVE
|
||||
# remove
|
||||
#
|
||||
# Remove a value.
|
||||
####################################################################################################################################
|
||||
@ -324,23 +207,15 @@ sub remove
|
||||
my $strSubKey = shift;
|
||||
my $strValue = shift;
|
||||
|
||||
my $oManifest = $self->{oManifest};
|
||||
|
||||
# Make sure the keys are valid
|
||||
$self->valid($strSection, $strKey, $strSubKey, undef, true);
|
||||
|
||||
if (defined($strSubKey))
|
||||
{
|
||||
delete(${$oManifest}{$strSection}{$strKey}{$strSubKey});
|
||||
}
|
||||
else
|
||||
{
|
||||
delete(${$oManifest}{$strSection}{$strKey});
|
||||
}
|
||||
# Call inherited remove
|
||||
$self->SUPER::remove($strSection, $strKey, $strSubKey, $strValue);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# VALID
|
||||
# valid
|
||||
#
|
||||
# Determine if section, key, subkey combination is valid.
|
||||
####################################################################################################################################
|
||||
@ -372,7 +247,7 @@ sub valid
|
||||
my $strPath = (split(':', $strSection))[0];
|
||||
my $strType = (split(':', $strSection))[1];
|
||||
|
||||
if ($strPath eq 'tablespace')
|
||||
if ($strPath eq MANIFEST_TABLESPACE)
|
||||
{
|
||||
$strPath = (split(':', $strSection))[1];
|
||||
$strType = (split(':', $strSection))[2];
|
||||
@ -392,7 +267,7 @@ sub valid
|
||||
elsif ($strType eq 'file' &&
|
||||
($strSubKey eq MANIFEST_SUBKEY_CHECKSUM ||
|
||||
$strSubKey eq MANIFEST_SUBKEY_FUTURE ||
|
||||
$strSubKey eq MANIFEST_SUBKEY_MODIFICATION_TIME ||
|
||||
$strSubKey eq MANIFEST_SUBKEY_TIMESTAMP ||
|
||||
$strSubKey eq MANIFEST_SUBKEY_REFERENCE ||
|
||||
$strSubKey eq MANIFEST_SUBKEY_SIZE))
|
||||
{
|
||||
@ -404,47 +279,60 @@ sub valid
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if ($strSection eq MANIFEST_SECTION_BACKUP)
|
||||
elsif ($strSection eq INI_SECTION_BACKREST)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
elsif ($strSection eq MANIFEST_SECTION_BACKUP)
|
||||
{
|
||||
if ($strKey eq MANIFEST_KEY_ARCHIVE_START ||
|
||||
$strKey eq MANIFEST_KEY_ARCHIVE_STOP ||
|
||||
$strKey eq MANIFEST_KEY_CHECKSUM ||
|
||||
$strKey eq MANIFEST_KEY_FORMAT ||
|
||||
$strKey eq MANIFEST_KEY_LABEL ||
|
||||
$strKey eq MANIFEST_KEY_PRIOR ||
|
||||
$strKey eq MANIFEST_KEY_REFERENCE ||
|
||||
$strKey eq MANIFEST_KEY_TIMESTAMP_COPY_START ||
|
||||
$strKey eq MANIFEST_KEY_TIMESTAMP_START ||
|
||||
$strKey eq MANIFEST_KEY_TIMESTAMP_STOP ||
|
||||
$strKey eq MANIFEST_KEY_TYPE ||
|
||||
$strKey eq MANIFEST_KEY_VERSION)
|
||||
$strKey eq MANIFEST_KEY_TYPE)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
elsif ($strSection eq MANIFEST_SECTION_BACKUP_DB)
|
||||
{
|
||||
if ($strKey eq MANIFEST_KEY_CATALOG ||
|
||||
$strKey eq MANIFEST_KEY_CONTROL ||
|
||||
$strKey eq MANIFEST_KEY_SYSTEM_ID ||
|
||||
$strKey eq MANIFEST_KEY_DB_VERSION)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
elsif ($strSection eq MANIFEST_SECTION_BACKUP_OPTION)
|
||||
{
|
||||
if ($strKey eq MANIFEST_KEY_CHECKSUM ||
|
||||
if ($strKey eq MANIFEST_KEY_ARCHIVE_CHECK ||
|
||||
$strKey eq MANIFEST_KEY_ARCHIVE_COPY ||
|
||||
$strKey eq MANIFEST_KEY_COMPRESS ||
|
||||
$strKey eq MANIFEST_KEY_HARDLINK)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
elsif ($strSection eq MANIFEST_SECTION_BACKUP_TABLESPACE)
|
||||
{
|
||||
if ($strSubKey eq 'link' ||
|
||||
$strSubKey eq 'path')
|
||||
$strKey eq MANIFEST_KEY_HARDLINK ||
|
||||
$strKey eq MANIFEST_KEY_START_STOP)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
elsif ($strSection eq MANIFEST_SECTION_BACKUP_PATH)
|
||||
{
|
||||
if ($strKey eq 'base' || $strKey =~ /^tablespace\:.*$/)
|
||||
if ($strKey eq MANIFEST_KEY_BASE &&
|
||||
$strSubKey eq MANIFEST_SUBKEY_PATH)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($strKey =~ /^tablespace\// &&
|
||||
($strSubKey eq MANIFEST_SUBKEY_LINK ||
|
||||
$strSubKey eq MANIFEST_SUBKEY_PATH))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
confess &log(ASSERT, "manifest section '${strSection}', key '${strKey}'" .
|
||||
@ -452,78 +340,7 @@ sub valid
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# epoch
|
||||
#
|
||||
# Retrieves a value in the format YYYY-MM-DD HH24:MI:SS and converts to epoch time.
|
||||
####################################################################################################################################
|
||||
sub epoch
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strKey = shift;
|
||||
my $strSubKey = shift;
|
||||
|
||||
my $strValue = $self->get($strSection, $strKey, $strSubKey);
|
||||
|
||||
my ($iYear, $iMonth, $iDay, $iHour, $iMinute, $iSecond) = split(/[\s\-\:]+/, $strValue);
|
||||
|
||||
return timelocal($iSecond, $iMinute, $iHour, $iDay , $iMonth - 1, $iYear);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# KEYS
|
||||
#
|
||||
# Get a list of keys.
|
||||
####################################################################################################################################
|
||||
sub keys
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strKey = shift;
|
||||
|
||||
if (defined($strSection))
|
||||
{
|
||||
if ($self->test($strSection, $strKey))
|
||||
{
|
||||
return sort(keys $self->get($strSection, $strKey));
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
return sort(keys $self->{oManifest});
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# TEST
|
||||
#
|
||||
# Test a value to see if it equals the supplied test value. If no test value is given, tests that it is defined.
|
||||
####################################################################################################################################
|
||||
sub test
|
||||
{
|
||||
my $self = shift;
|
||||
my $strSection = shift;
|
||||
my $strValue = shift;
|
||||
my $strSubValue = shift;
|
||||
my $strTest = shift;
|
||||
|
||||
my $strResult = $self->get($strSection, $strValue, $strSubValue, false);
|
||||
|
||||
if (defined($strResult))
|
||||
{
|
||||
if (defined($strTest))
|
||||
{
|
||||
return $strResult eq $strTest ? true : false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# BUILD
|
||||
# build
|
||||
#
|
||||
# Build the manifest object.
|
||||
####################################################################################################################################
|
||||
@ -542,7 +359,7 @@ sub build
|
||||
# If no level is defined then it must be base
|
||||
if (!defined($strLevel))
|
||||
{
|
||||
$strLevel = 'base';
|
||||
$strLevel = MANIFEST_KEY_BASE;
|
||||
|
||||
if (defined($oLastManifest))
|
||||
{
|
||||
@ -556,7 +373,7 @@ sub build
|
||||
$oTablespaceMapRef = {};
|
||||
|
||||
my %oTablespaceManifestHash;
|
||||
$oFile->manifest(PATH_DB_ABSOLUTE, $strDbClusterPath . '/pg_tblspc', \%oTablespaceManifestHash);
|
||||
$oFile->manifest(PATH_DB_ABSOLUTE, $strDbClusterPath . '/' . PATH_PG_TBLSPC, \%oTablespaceManifestHash);
|
||||
|
||||
foreach my $strName (sort(CORE::keys $oTablespaceManifestHash{name}))
|
||||
{
|
||||
@ -567,7 +384,7 @@ sub build
|
||||
|
||||
if ($oTablespaceManifestHash{name}{$strName}{type} ne 'l')
|
||||
{
|
||||
confess &log(ERROR, "pg_tblspc/${strName} is not a link");
|
||||
confess &log(ERROR, PATH_PG_TBLSPC . "/${strName} is not a link");
|
||||
}
|
||||
|
||||
&log(DEBUG, "Found tablespace ${strName}");
|
||||
@ -581,7 +398,7 @@ sub build
|
||||
my %oManifestHash;
|
||||
$oFile->manifest(PATH_DB_ABSOLUTE, $strDbClusterPath, \%oManifestHash);
|
||||
|
||||
$self->set(MANIFEST_SECTION_BACKUP_PATH, $strLevel, undef, $strDbClusterPath);
|
||||
$self->set(MANIFEST_SECTION_BACKUP_PATH, $strLevel, MANIFEST_SUBKEY_PATH, $strDbClusterPath);
|
||||
|
||||
# Loop though all paths/files/links in the manifest
|
||||
foreach my $strName (sort(CORE::keys $oManifestHash{name}))
|
||||
@ -624,7 +441,7 @@ sub build
|
||||
# Modification time and size required for file type only
|
||||
if ($cType eq 'f')
|
||||
{
|
||||
$self->set($strSection, $strName, MANIFEST_SUBKEY_MODIFICATION_TIME,
|
||||
$self->set($strSection, $strName, MANIFEST_SUBKEY_TIMESTAMP,
|
||||
$oManifestHash{name}{"${strName}"}{modification_time} + 0);
|
||||
$self->set($strSection, $strName, MANIFEST_SUBKEY_SIZE, $oManifestHash{name}{"${strName}"}{size} + 0);
|
||||
}
|
||||
@ -636,24 +453,24 @@ sub build
|
||||
$oManifestHash{name}{"${strName}"}{link_destination});
|
||||
|
||||
# If this is a tablespace then follow the link
|
||||
if (index($strName, 'pg_tblspc/') == 0 && $strLevel eq 'base')
|
||||
if (index($strName, PATH_PG_TBLSPC . '/') == 0 && $strLevel eq MANIFEST_KEY_BASE)
|
||||
{
|
||||
my $strTablespaceOid = basename($strName);
|
||||
my $strTablespaceName = ${$oTablespaceMapRef}{oid}{$strTablespaceOid}{name};
|
||||
my $strTablespaceName = MANIFEST_TABLESPACE . '/' . ${$oTablespaceMapRef}{oid}{$strTablespaceOid}{name};
|
||||
|
||||
$self->set(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName,
|
||||
$self->set(MANIFEST_SECTION_BACKUP_PATH, $strTablespaceName,
|
||||
MANIFEST_SUBKEY_LINK, $strTablespaceOid);
|
||||
$self->set(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName,
|
||||
$self->set(MANIFEST_SECTION_BACKUP_PATH, $strTablespaceName,
|
||||
MANIFEST_SUBKEY_PATH, $strLinkDestination);
|
||||
|
||||
$self->build($oFile, $strLinkDestination, $oLastManifest, $bNoStartStop, $oTablespaceMapRef,
|
||||
"tablespace:${strTablespaceName}");
|
||||
$strTablespaceName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# If this is the base level then do post-processing
|
||||
if ($strLevel eq 'base')
|
||||
if ($strLevel eq MANIFEST_KEY_BASE)
|
||||
{
|
||||
my $bTimeInFuture = false;
|
||||
|
||||
@ -672,23 +489,23 @@ sub build
|
||||
{
|
||||
# If modification time is in the future (in this backup OR the last backup) set warning flag and do not
|
||||
# allow a reference
|
||||
if ($self->get($strSection, $strName, MANIFEST_SUBKEY_MODIFICATION_TIME) > $lTimeBegin ||
|
||||
if ($self->getNumeric($strSection, $strName, MANIFEST_SUBKEY_TIMESTAMP) > $lTimeBegin ||
|
||||
(defined($oLastManifest) && $oLastManifest->test($strSection, $strName, MANIFEST_SUBKEY_FUTURE, 'y')))
|
||||
{
|
||||
$bTimeInFuture = true;
|
||||
|
||||
# Only mark as future if still in the future in the current backup
|
||||
if ($self->get($strSection, $strName, MANIFEST_SUBKEY_MODIFICATION_TIME) > $lTimeBegin)
|
||||
if ($self->getNumeric($strSection, $strName, MANIFEST_SUBKEY_TIMESTAMP) > $lTimeBegin)
|
||||
{
|
||||
$self->set($strSection, $strName, MANIFEST_SUBKEY_FUTURE, 'y');
|
||||
}
|
||||
}
|
||||
# Else check if modification time and size are unchanged since last backup
|
||||
elsif (defined($oLastManifest) && $oLastManifest->test($strSection, $strName) &&
|
||||
$self->get($strSection, $strName, MANIFEST_SUBKEY_SIZE) ==
|
||||
$self->getNumeric($strSection, $strName, MANIFEST_SUBKEY_SIZE) ==
|
||||
$oLastManifest->get($strSection, $strName, MANIFEST_SUBKEY_SIZE) &&
|
||||
$self->get($strSection, $strName, MANIFEST_SUBKEY_MODIFICATION_TIME) ==
|
||||
$oLastManifest->get($strSection, $strName, MANIFEST_SUBKEY_MODIFICATION_TIME))
|
||||
$self->getNumeric($strSection, $strName, MANIFEST_SUBKEY_TIMESTAMP) ==
|
||||
$oLastManifest->get($strSection, $strName, MANIFEST_SUBKEY_TIMESTAMP))
|
||||
{
|
||||
# Copy reference from previous backup if possible
|
||||
if ($oLastManifest->test($strSection, $strName, MANIFEST_SUBKEY_REFERENCE))
|
||||
@ -709,25 +526,6 @@ sub build
|
||||
$self->set($strSection, $strName, MANIFEST_SUBKEY_CHECKSUM,
|
||||
$oLastManifest->get($strSection, $strName, MANIFEST_SUBKEY_CHECKSUM));
|
||||
}
|
||||
|
||||
# Build the manifest reference list - not used for processing but is useful for debugging
|
||||
my $strFileReference = $self->get($strSection, $strName, MANIFEST_SUBKEY_REFERENCE);
|
||||
|
||||
my $strManifestReference = $self->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_REFERENCE,
|
||||
undef, false);
|
||||
|
||||
if (!defined($strManifestReference))
|
||||
{
|
||||
$self->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_REFERENCE, undef, $strFileReference);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($strManifestReference !~ /^$strFileReference|,$strFileReference/)
|
||||
{
|
||||
$self->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_REFERENCE, undef,
|
||||
$strManifestReference . ",${strFileReference}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -740,8 +538,7 @@ sub build
|
||||
}
|
||||
|
||||
# Record the time when copying will start
|
||||
$self->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_COPY_START, undef,
|
||||
timestamp_string_get(undef, $lTimeBegin + 1));
|
||||
$self->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_COPY_START, undef, $lTimeBegin + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,17 +7,17 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Net::OpenSSH qw();
|
||||
use Compress::Raw::Zlib qw(WANT_GZIP Z_OK Z_BUF_ERROR Z_STREAM_END);
|
||||
use File::Basename qw(dirname);
|
||||
use IO::String qw();
|
||||
use Net::OpenSSH qw();
|
||||
use POSIX qw(:sys_wait_h);
|
||||
use Scalar::Util qw(blessed);
|
||||
use Compress::Raw::Zlib qw(WANT_GZIP Z_OK Z_BUF_ERROR Z_STREAM_END);
|
||||
use IO::String qw();
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Exception qw(ERROR_PROTOCOL ERROR_HOST_CONNECT);
|
||||
use BackRest::Utility qw(log version_get trim TRACE ERROR ASSERT true false waitInit waitMore);
|
||||
use BackRest::Config qw(optionGet OPTION_STANZA OPTION_REPO_REMOTE_PATH);
|
||||
use BackRest::Exception qw(ERROR_PROTOCOL ERROR_HOST_CONNECT);
|
||||
use BackRest::Utility qw(log version_get trim TRACE ERROR ASSERT DEBUG true false waitInit waitMore);
|
||||
|
||||
####################################################################################################################################
|
||||
# CONSTRUCTOR
|
||||
@ -34,6 +34,14 @@ sub new
|
||||
my $iCompressLevel = shift; # Set compression level
|
||||
my $iCompressLevelNetwork = shift; # Set compression level for network only compression
|
||||
|
||||
# Debug
|
||||
&log(defined($strHost) ? DEBUG : TRACE, 'Remote->new: ' .
|
||||
'host = ' . (defined($strHost) ? $strHost : '[undef]') .
|
||||
', user = ' . (defined($strUser) ? $strUser : '[undef]') .
|
||||
', stanza = ' . (defined($strStanza) ? $strStanza : '[undef]') .
|
||||
', remote-repo-path = ' . (defined($strRepoPath) ? $strRepoPath : '[undef]') .
|
||||
', command = ' . (defined($strCommand) ? $strCommand : '[undef]'));
|
||||
|
||||
# Create the class hash
|
||||
my $self = {};
|
||||
bless $self, $class;
|
||||
@ -397,9 +405,9 @@ sub write_line
|
||||
my $hOut = shift;
|
||||
my $strBuffer = shift;
|
||||
|
||||
my $iLineOut = syswrite($hOut, $strBuffer . "\n");
|
||||
my $iLineOut = syswrite($hOut, (defined($strBuffer) ? $strBuffer : '') . "\n");
|
||||
|
||||
if (!defined($iLineOut) || $iLineOut != length($strBuffer) + 1)
|
||||
if (!defined($iLineOut) || $iLineOut != (defined($strBuffer) ? length($strBuffer) : 0) + 1)
|
||||
{
|
||||
confess &log(ERROR, "unable to write ${strBuffer}: $!", ERROR_PROTOCOL);
|
||||
}
|
||||
@ -1133,7 +1141,7 @@ sub command_param_string
|
||||
my $self = shift;
|
||||
my $oParamHashRef = shift;
|
||||
|
||||
my $strParamList;
|
||||
my $strParamList = '';
|
||||
|
||||
if (defined($oParamHashRef))
|
||||
{
|
||||
|
@ -14,14 +14,14 @@ use File::Basename qw(dirname);
|
||||
use File::stat qw(lstat);
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Exception;
|
||||
use BackRest::Utility;
|
||||
use BackRest::ThreadGroup;
|
||||
use BackRest::RestoreFile;
|
||||
use BackRest::Config;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::File;
|
||||
use BackRest::Db;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::RestoreFile;
|
||||
use BackRest::ThreadGroup;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# Recovery.conf file
|
||||
@ -204,25 +204,27 @@ sub manifest_load
|
||||
' - this indicates some sort of corruption (at the very least paths have been renamed.');
|
||||
}
|
||||
|
||||
if ($self->{strDbClusterPath} ne $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE))
|
||||
if ($self->{strDbClusterPath} ne $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE, MANIFEST_SUBKEY_PATH))
|
||||
{
|
||||
&log(INFO, 'base path remapped to ' . $self->{strDbClusterPath});
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE, undef, $self->{strDbClusterPath});
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE, MANIFEST_SUBKEY_PATH, $self->{strDbClusterPath});
|
||||
}
|
||||
|
||||
# If no tablespaces are requested
|
||||
if (!optionGet(OPTION_TABLESPACE))
|
||||
{
|
||||
foreach my $strTablespaceName ($oManifest->keys(MANIFEST_SECTION_BACKUP_TABLESPACE))
|
||||
foreach my $strPathKey ($oManifest->keys(MANIFEST_SECTION_BACKUP_PATH))
|
||||
{
|
||||
if ($oManifest->test(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_LINK))
|
||||
{
|
||||
my $strTablespaceKey =
|
||||
$oManifest->get(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName, MANIFEST_SUBKEY_LINK);
|
||||
$oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_LINK);
|
||||
my $strTablespaceLink = "pg_tblspc/${strTablespaceKey}";
|
||||
my $strTablespacePath =
|
||||
$oManifest->get(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE) . "/${strTablespaceLink}";
|
||||
$oManifest->get(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE, MANIFEST_SUBKEY_PATH) .
|
||||
"/${strTablespaceLink}";
|
||||
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_PATH, "tablespace:${strTablespaceName}", undef, $strTablespacePath);
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName, MANIFEST_SUBKEY_PATH, $strTablespacePath);
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_PATH, $strTablespacePath);
|
||||
|
||||
$oManifest->remove('base:link', $strTablespaceLink);
|
||||
$oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_GROUP,
|
||||
@ -235,26 +237,27 @@ sub manifest_load
|
||||
&log(INFO, "remapping tablespace ${strTablespaceKey} to ${strTablespacePath}");
|
||||
}
|
||||
}
|
||||
}
|
||||
# If tablespaces have been remapped, update the manifest
|
||||
elsif (defined($self->{oRemapRef}))
|
||||
{
|
||||
foreach my $strPathKey (sort(keys $self->{oRemapRef}))
|
||||
foreach my $strTablespaceKey (sort(keys $self->{oRemapRef}))
|
||||
{
|
||||
my $strRemapPath = ${$self->{oRemapRef}}{$strPathKey};
|
||||
my $strRemapPath = ${$self->{oRemapRef}}{$strTablespaceKey};
|
||||
my $strPathKey = "tablespace/${strTablespaceKey}";
|
||||
|
||||
# Make sure that the tablespace exists in the manifest
|
||||
if (!$oManifest->test(MANIFEST_SECTION_BACKUP_TABLESPACE, $strPathKey))
|
||||
if (!$oManifest->test(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_LINK))
|
||||
{
|
||||
confess &log(ERROR, "cannot remap invalid tablespace ${strPathKey} to ${strRemapPath}");
|
||||
confess &log(ERROR, "cannot remap invalid tablespace ${strTablespaceKey} to ${strRemapPath}");
|
||||
}
|
||||
|
||||
# Remap the tablespace in the manifest
|
||||
&log(INFO, "remapping tablespace ${strPathKey} to ${strRemapPath}");
|
||||
&log(INFO, "remapping tablespace ${strTablespaceKey} to ${strRemapPath}");
|
||||
|
||||
my $strTablespaceLink = $oManifest->get(MANIFEST_SECTION_BACKUP_TABLESPACE, $strPathKey, MANIFEST_SUBKEY_LINK);
|
||||
my $strTablespaceLink = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_LINK);
|
||||
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_PATH, "tablespace:${strPathKey}", undef, $strRemapPath);
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_TABLESPACE, $strPathKey, MANIFEST_SUBKEY_PATH, $strRemapPath);
|
||||
$oManifest->set(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_PATH, $strRemapPath);
|
||||
$oManifest->set('base:link', "pg_tblspc/${strTablespaceLink}", MANIFEST_SUBKEY_DESTINATION, $strRemapPath);
|
||||
}
|
||||
}
|
||||
@ -285,7 +288,7 @@ sub clean
|
||||
# The --force option can be used to override the empty requirement.
|
||||
foreach my $strPathKey ($oManifest->keys(MANIFEST_SECTION_BACKUP_PATH))
|
||||
{
|
||||
my $strPath = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey);
|
||||
my $strPath = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_PATH);
|
||||
|
||||
&log(INFO, "checking/cleaning db path ${strPath}");
|
||||
|
||||
@ -418,7 +421,7 @@ sub build
|
||||
# Build paths/links in each restore path
|
||||
foreach my $strSectionPathKey ($oManifest->keys(MANIFEST_SECTION_BACKUP_PATH))
|
||||
{
|
||||
my $strSectionPath = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strSectionPathKey);
|
||||
my $strSectionPath = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strSectionPathKey, MANIFEST_SUBKEY_PATH);
|
||||
|
||||
# Create all paths in the manifest that do not already exist
|
||||
my $strSection = "${strSectionPathKey}:path";
|
||||
@ -463,7 +466,7 @@ sub build
|
||||
# Make sure that all paths required for the restore now exist
|
||||
foreach my $strPathKey ($oManifest->keys(MANIFEST_SECTION_BACKUP_PATH))
|
||||
{
|
||||
my $strPath = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey);
|
||||
my $strPath = $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_PATH);
|
||||
|
||||
if (!$self->{oFile}->exists(PATH_DB_ABSOLUTE, $strPath))
|
||||
{
|
||||
@ -604,8 +607,8 @@ sub restore
|
||||
$self->build($oManifest);
|
||||
|
||||
# Get variables required for restore
|
||||
my $lCopyTimeBegin = $oManifest->epoch(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_COPY_START);
|
||||
my $bSourceCompression = $oManifest->get(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS) eq 'y' ? true : false;
|
||||
my $lCopyTimeBegin = $oManifest->getNumeric(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_COPY_START);
|
||||
my $bSourceCompression = $oManifest->getBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS);
|
||||
my $strCurrentUser = getpwuid($<);
|
||||
my $strCurrentGroup = getgrgid($();
|
||||
|
||||
@ -622,7 +625,7 @@ sub restore
|
||||
{
|
||||
foreach my $strFile ($oManifest->keys($strSection))
|
||||
{
|
||||
my $lSize = $oManifest->get($strSection, $strFile, MANIFEST_SUBKEY_SIZE);
|
||||
my $lSize = $oManifest->getNumeric($strSection, $strFile, MANIFEST_SUBKEY_SIZE);
|
||||
$lSizeTotal += $lSize;
|
||||
|
||||
# Preface the file key with the size. This allows for sorting the files to restore by size
|
||||
@ -632,14 +635,13 @@ sub restore
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{file} = $strFile;
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{size} = $lSize;
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{source_path} = $strPathKey;
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{source_path} =~ s/\:/\//g;
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{destination_path} =
|
||||
$oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey);
|
||||
$oManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_PATH);
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{reference} =
|
||||
$oManifest->test(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, 'y') ? undef :
|
||||
$oManifest->testBool(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, true) ? undef :
|
||||
$oManifest->get($strSection, $strFile, MANIFEST_SUBKEY_REFERENCE, false);
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{modification_time} =
|
||||
$oManifest->get($strSection, $strFile, MANIFEST_SUBKEY_MODIFICATION_TIME);
|
||||
$oManifest->getNumeric($strSection, $strFile, MANIFEST_SUBKEY_TIMESTAMP);
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{mode} =
|
||||
$oManifest->get($strSection, $strFile, MANIFEST_SUBKEY_MODE);
|
||||
$oRestoreHash{$strPathKey}{$strFileKey}{user} =
|
||||
|
@ -10,16 +10,16 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname);
|
||||
use File::stat qw(lstat);
|
||||
use Exporter qw(import);
|
||||
|
||||
use lib dirname($0);
|
||||
use BackRest::Exception;
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Exception;
|
||||
use BackRest::File;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# restoreFile
|
||||
|
@ -8,19 +8,18 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use Exporter qw(import);
|
||||
use File::Basename;
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::RestoreFile;
|
||||
use BackRest::BackupFile;
|
||||
use BackRest::RestoreFile;
|
||||
use BackRest::Utility;
|
||||
|
||||
####################################################################################################################################
|
||||
# MODULE EXPORTS
|
||||
####################################################################################################################################
|
||||
use Exporter qw(import);
|
||||
|
||||
our @EXPORT = qw(threadGroupCreate threadGroupRun threadGroupComplete threadGroupDestroy);
|
||||
|
||||
my @oyThread;
|
||||
|
@ -8,24 +8,23 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess longmess);
|
||||
|
||||
use Fcntl qw(:DEFAULT :flock);
|
||||
use File::Path qw(remove_tree);
|
||||
use Time::HiRes qw(gettimeofday usleep);
|
||||
use POSIX qw(ceil);
|
||||
use File::Basename;
|
||||
use Cwd qw(abs_path);
|
||||
use Exporter qw(import);
|
||||
use Fcntl qw(:DEFAULT :flock);
|
||||
use File::Basename;
|
||||
use File::Path qw(remove_tree);
|
||||
use JSON::PP;
|
||||
use POSIX qw(ceil);
|
||||
use Time::HiRes qw(gettimeofday usleep);
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Exception;
|
||||
|
||||
use Exporter qw(import);
|
||||
|
||||
our @EXPORT = qw(version_get
|
||||
data_hash_build trim common_prefix file_size_format execute
|
||||
log log_file_set log_level_set test_set test_get test_check
|
||||
hsleep wait_remainder
|
||||
ini_save ini_load timestamp_string_get timestamp_file_string_get
|
||||
timestamp_string_get timestamp_file_string_get
|
||||
TRACE DEBUG ERROR ASSERT WARN INFO OFF true false
|
||||
TEST TEST_ENCLOSE TEST_MANIFEST_BUILD TEST_BACKUP_RESUME TEST_BACKUP_NORESUME FORMAT);
|
||||
|
||||
@ -68,7 +67,7 @@ $oLogLevelRank{OFF}{rank} = 0;
|
||||
#
|
||||
# Identified the format of the manifest and file structure. The format is used to determine compatability between versions.
|
||||
####################################################################################################################################
|
||||
use constant FORMAT => 3;
|
||||
use constant FORMAT => 4;
|
||||
|
||||
####################################################################################################################################
|
||||
# TEST Constants and Variables
|
||||
@ -339,10 +338,10 @@ sub log_file_set
|
||||
|
||||
if ($bExists)
|
||||
{
|
||||
print $hLogFile "\n";
|
||||
syswrite($hLogFile, "\n");
|
||||
}
|
||||
|
||||
print $hLogFile "-------------------PROCESS START-------------------\n";
|
||||
syswrite($hLogFile, "-------------------PROCESS START-------------------\n");
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
@ -491,19 +490,15 @@ sub log
|
||||
{
|
||||
if (!$bSuppressLog)
|
||||
{
|
||||
print $strMessageFormat;
|
||||
syswrite(*STDOUT, $strMessageFormat);
|
||||
}
|
||||
|
||||
if ($bTest && $strLevel eq TEST)
|
||||
{
|
||||
*STDOUT->flush();
|
||||
|
||||
if ($fTestDelay > 0)
|
||||
# If in test mode and this is a test messsage then delay so the calling process has time to read the message
|
||||
if ($bTest && $strLevel eq TEST && $fTestDelay > 0)
|
||||
{
|
||||
hsleep($fTestDelay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Output to file depending on log level and test flag
|
||||
if ($iLogLevelRank <= $oLogLevelRank{"${strLogLevelFile}"}{rank})
|
||||
@ -512,7 +507,7 @@ sub log
|
||||
{
|
||||
if (!$bSuppressLog)
|
||||
{
|
||||
print $hLogFile $strMessageFormat;
|
||||
syswrite($hLogFile, $strMessageFormat);
|
||||
|
||||
if ($strLevel eq ASSERT ||
|
||||
($strLevel eq ERROR && ($strLogLevelFile eq DEBUG || $strLogLevelFile eq TRACE)))
|
||||
@ -520,7 +515,7 @@ sub log
|
||||
my $strStackTrace = longmess() . "\n";
|
||||
$strStackTrace =~ s/\n/\n /g;
|
||||
|
||||
print $hLogFile $strStackTrace;
|
||||
syswrite($hLogFile, $strStackTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -529,153 +524,13 @@ sub log
|
||||
# Throw a typed exception if code is defined
|
||||
if (defined($iCode))
|
||||
{
|
||||
return new BackRest::Exception($iCode, $strMessage);
|
||||
return new BackRest::Exception($iCode, $strMessage, longmess());
|
||||
}
|
||||
|
||||
# Return the message test so it can be used in a confess
|
||||
return $strMessage;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# INI_LOAD
|
||||
#
|
||||
# Load file from standard INI format to a hash.
|
||||
####################################################################################################################################
|
||||
sub ini_load
|
||||
{
|
||||
my $strFile = shift; # Full path to ini file to load from
|
||||
my $oConfig = shift; # Reference to the hash where ini data will be stored
|
||||
|
||||
# Open the ini file for reading
|
||||
my $hFile;
|
||||
my $strSection;
|
||||
|
||||
open($hFile, '<', $strFile)
|
||||
or confess &log(ERROR, "unable to open ${strFile}");
|
||||
|
||||
# Create the JSON object
|
||||
my $oJSON = JSON::PP->new();
|
||||
|
||||
# Read the INI file
|
||||
while (my $strLine = readline($hFile))
|
||||
{
|
||||
$strLine = trim($strLine);
|
||||
|
||||
# Skip lines that are blank or comments
|
||||
if ($strLine ne '' && $strLine !~ '^#.*')
|
||||
{
|
||||
# Get the section
|
||||
if (index($strLine, '[') == 0)
|
||||
{
|
||||
$strSection = substr($strLine, 1, length($strLine) - 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
# Get key and value
|
||||
my $iIndex = index($strLine, '=');
|
||||
|
||||
if ($iIndex == -1)
|
||||
{
|
||||
confess &log(ERROR, "unable to read from ${strFile}: ${strLine}");
|
||||
}
|
||||
|
||||
my $strKey = substr($strLine, 0, $iIndex);
|
||||
my $strValue = substr($strLine, $iIndex + 1);
|
||||
|
||||
# Try to store value as JSON
|
||||
eval
|
||||
{
|
||||
${$oConfig}{"${strSection}"}{"${strKey}"} = $oJSON->decode($strValue);
|
||||
};
|
||||
|
||||
# On error store value as a scalar
|
||||
if ($@)
|
||||
{
|
||||
${$oConfig}{"${strSection}"}{"${strKey}"} = $strValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
close($hFile);
|
||||
|
||||
return($oConfig);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# INI_SAVE
|
||||
#
|
||||
# Save from a hash to standard INI format.
|
||||
####################################################################################################################################
|
||||
sub ini_save
|
||||
{
|
||||
my $strFile = shift; # Full path to ini file to save to
|
||||
my $oConfig = shift; # Reference to the hash where ini data is stored
|
||||
|
||||
# Open the ini file for writing
|
||||
my $hFile;
|
||||
my $bFirst = true;
|
||||
|
||||
open($hFile, '>', $strFile)
|
||||
or confess &log(ERROR, "unable to open ${strFile}");
|
||||
|
||||
# Create the JSON object canonical so that fields are alpha ordered to pass unit tests
|
||||
my $oJSON = JSON::PP->new()->canonical();
|
||||
|
||||
# Write the INI file
|
||||
foreach my $strSection (sort(keys $oConfig))
|
||||
{
|
||||
# Add a linefeed between sections
|
||||
if (!$bFirst)
|
||||
{
|
||||
syswrite($hFile, "\n")
|
||||
or confess "unable to write lf: $!";
|
||||
}
|
||||
|
||||
# Write the section comment if present
|
||||
if (defined(${$oConfig}{$strSection}{'[comment]'}))
|
||||
{
|
||||
syswrite($hFile, "# " . ${$oConfig}{$strSection}{'[comment]'} . "\n")
|
||||
or confess "unable to comment for section ${strSection}: $!";
|
||||
}
|
||||
|
||||
# Write the section
|
||||
syswrite($hFile, "[${strSection}]\n")
|
||||
or confess "unable to write section ${strSection}: $!";
|
||||
|
||||
# Iterate through all keys in the section
|
||||
foreach my $strKey (sort(keys ${$oConfig}{"${strSection}"}))
|
||||
{
|
||||
# Skip comments
|
||||
if ($strKey eq '[comment]')
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
# If the value is a hash then convert it to JSON, otherwise store as is
|
||||
my $strValue = ${$oConfig}{"${strSection}"}{"${strKey}"};
|
||||
|
||||
if (defined($strValue))
|
||||
{
|
||||
if (ref($strValue) eq "HASH")
|
||||
{
|
||||
syswrite($hFile, "${strKey}=" . $oJSON->encode($strValue) . "\n")
|
||||
or confess "unable to write key ${strKey}: $!";
|
||||
}
|
||||
else
|
||||
{
|
||||
syswrite($hFile, "${strKey}=${strValue}\n")
|
||||
or confess "unable to write key ${strKey}: $!";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$bFirst = false;
|
||||
}
|
||||
|
||||
close($hFile);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
####################################################################################################################################
|
||||
# Wait Functions
|
||||
|
BIN
test/data/pg_control
Normal file
BIN
test/data/pg_control
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -11,23 +11,24 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename;
|
||||
use File::Path qw(remove_tree);
|
||||
use Cwd 'abs_path';
|
||||
use Exporter qw(import);
|
||||
use File::Basename;
|
||||
use File::Copy qw(move);
|
||||
use File::Path qw(remove_tree);
|
||||
use IO::Select;
|
||||
use IPC::Open3;
|
||||
use POSIX ':sys_wait_h';
|
||||
use IO::Select;
|
||||
use File::Copy qw(move);
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::Remote;
|
||||
use BackRest::File;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Db;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Manifest;
|
||||
use BackRest::Remote;
|
||||
use BackRest::Utility;
|
||||
|
||||
use Exporter qw(import);
|
||||
our @EXPORT = qw(BackRestTestCommon_Create BackRestTestCommon_Drop BackRestTestCommon_Setup BackRestTestCommon_ExecuteBegin
|
||||
BackRestTestCommon_ExecuteEnd BackRestTestCommon_Execute BackRestTestCommon_ExecuteBackRest
|
||||
BackRestTestCommon_PathCreate BackRestTestCommon_PathMode BackRestTestCommon_PathRemove
|
||||
@ -41,7 +42,8 @@ our @EXPORT = qw(BackRestTestCommon_Create BackRestTestCommon_Drop BackRestTestC
|
||||
BackRestTestCommon_DbCommonPathGet BackRestTestCommon_ClusterStop BackRestTestCommon_DbTablespacePathGet
|
||||
BackRestTestCommon_DbPortGet BackRestTestCommon_iniLoad BackRestTestCommon_iniSave BackRestTestCommon_DbVersion
|
||||
BackRestTestCommon_CommandPsqlGet BackRestTestCommon_DropRepo BackRestTestCommon_CreateRepo
|
||||
BackRestTestCommon_manifestLoad BackRestTestCommon_manifestSave BackRestTestCommon_CommandMainAbsGet);
|
||||
BackRestTestCommon_manifestLoad BackRestTestCommon_manifestSave BackRestTestCommon_CommandMainAbsGet
|
||||
BackRestTestCommon_TestLogAppendFile);
|
||||
|
||||
my $strPgSqlBin;
|
||||
my $strCommonStanza;
|
||||
@ -68,6 +70,7 @@ my $bNoCleanup;
|
||||
my $bLogForce;
|
||||
|
||||
# Execution globals
|
||||
my $bExecuteRemote;
|
||||
my $strErrorLog;
|
||||
my $hError;
|
||||
my $strOutLog;
|
||||
@ -83,6 +86,7 @@ my $strTestLog;
|
||||
my $strModule;
|
||||
my $strModuleTest;
|
||||
my $iModuleTestRun;
|
||||
my $bValidWalChecksum;
|
||||
|
||||
####################################################################################################################################
|
||||
# BackRestTestCommon_ClusterStop
|
||||
@ -172,6 +176,7 @@ sub BackRestTestCommon_Run
|
||||
my $strLog = shift;
|
||||
my $strModuleParam = shift;
|
||||
my $strModuleTestParam = shift;
|
||||
my $bValidWalChecksumParam = shift;
|
||||
|
||||
# &log(INFO, "module " . (defined($strModule) ? $strModule : ''));
|
||||
BackRestTestCommon_TestLog();
|
||||
@ -196,6 +201,7 @@ sub BackRestTestCommon_Run
|
||||
$strModule = $strModuleParam;
|
||||
$strModuleTest = $strModuleTestParam;
|
||||
$iModuleTestRun = $iRun;
|
||||
$bValidWalChecksum = defined($bValidWalChecksumParam) ? $bValidWalChecksumParam : true;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -210,6 +216,45 @@ sub BackRestTestCommon_Cleanup
|
||||
return !$bNoCleanup && !$bDryRun;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# BackRestTestCommon_TestLogAppendFile
|
||||
####################################################################################################################################
|
||||
sub BackRestTestCommon_TestLogAppendFile
|
||||
{
|
||||
my $strFileName = shift;
|
||||
my $bRemote = shift;
|
||||
|
||||
if (defined($strModule))
|
||||
{
|
||||
my $hFile;
|
||||
|
||||
if ($bRemote)
|
||||
{
|
||||
BackRestTestCommon_Execute("chmod g+x " . BackRestTestCommon_RepoPathGet(), $bRemote);
|
||||
}
|
||||
|
||||
open($hFile, '<', $strFileName)
|
||||
or confess &log(ERROR, "unable to open ${strFileName} for appending to test log");
|
||||
|
||||
my $strHeader = "+ supplemental file: " . BackRestTestCommon_ExecuteRegAll($strFileName);
|
||||
|
||||
$strFullLog .= "\n${strHeader}\n" . ('-' x length($strHeader)) . "\n";
|
||||
|
||||
while (my $strLine = readline($hFile))
|
||||
{
|
||||
$strLine = BackRestTestCommon_ExecuteRegAll($strLine);
|
||||
$strFullLog .= $strLine;
|
||||
}
|
||||
|
||||
close($hFile);
|
||||
|
||||
if ($bRemote)
|
||||
{
|
||||
BackRestTestCommon_Execute("chmod g-x " . BackRestTestCommon_RepoPathGet(), $bRemote);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# BackRestTestCommon_TestLog
|
||||
####################################################################################################################################
|
||||
@ -259,9 +304,9 @@ sub BackRestTestCommon_ExecuteBegin
|
||||
my $strComment = shift;
|
||||
|
||||
# Set defaults
|
||||
$bRemote = defined($bRemote) ? $bRemote : false;
|
||||
$bExecuteRemote = defined($bRemote) ? $bRemote : false;
|
||||
|
||||
if ($bRemote)
|
||||
if ($bExecuteRemote)
|
||||
{
|
||||
$strCommand = "ssh ${strCommonUserBackRest}\@${strCommonHost} '${strCommandParam}'";
|
||||
}
|
||||
@ -277,7 +322,7 @@ sub BackRestTestCommon_ExecuteBegin
|
||||
|
||||
$bFullLog = false;
|
||||
|
||||
if (defined($strModule) && $strCommandParam =~ /\/bin\/pg_backrest\.pl/)
|
||||
if (defined($strModule) && $strCommandParam =~ /\/bin\/pg_backrest/)
|
||||
{
|
||||
$strCommandParam = BackRestTestCommon_ExecuteRegAll($strCommandParam);
|
||||
|
||||
@ -314,12 +359,29 @@ sub BackRestTestCommon_ExecuteRegExp
|
||||
{
|
||||
my $iIndex;
|
||||
my $strTypeReplacement;
|
||||
my $strReplacement;
|
||||
|
||||
if (!defined($bIndex) || $bIndex)
|
||||
{
|
||||
if (defined($$oReplaceHash{$strType}{$strReplace}))
|
||||
if (defined($strToken))
|
||||
{
|
||||
$iIndex = $$oReplaceHash{$strType}{$strReplace}{index};
|
||||
my @stryReplacement = ($strReplace =~ /$strToken/g);
|
||||
|
||||
if (@stryReplacement != 1)
|
||||
{
|
||||
confess &log(ASSERT, "'${strToken}' is not a sub-regexp of '${strExpression}' or matches multiple times on '${strReplace}'");
|
||||
}
|
||||
|
||||
$strReplacement = $stryReplacement[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
$strReplacement = $strReplace;
|
||||
}
|
||||
|
||||
if (defined($$oReplaceHash{$strType}{$strReplacement}))
|
||||
{
|
||||
$iIndex = $$oReplaceHash{$strType}{$strReplacement}{index};
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -329,14 +391,12 @@ sub BackRestTestCommon_ExecuteRegExp
|
||||
}
|
||||
|
||||
$iIndex = $$oReplaceHash{$strType}{index}++;
|
||||
$$oReplaceHash{$strType}{$strReplace}{index} = $iIndex;
|
||||
$$oReplaceHash{$strType}{$strReplacement}{index} = $iIndex;
|
||||
}
|
||||
}
|
||||
|
||||
$strTypeReplacement = "[${strType}" . (defined($iIndex) ? "-${iIndex}" : '') . ']';
|
||||
|
||||
my $strReplacement;
|
||||
|
||||
if (defined($strToken))
|
||||
{
|
||||
$strReplacement = $strReplace;
|
||||
@ -363,6 +423,7 @@ sub BackRestTestCommon_ExecuteRegAll
|
||||
my $strBinPath = dirname(dirname(abs_path($0))) . '/bin';
|
||||
|
||||
$strLine =~ s/$strBinPath/[BACKREST_BIN_PATH]/g;
|
||||
$strLine =~ s/$strPgSqlBin/[PGSQL_BIN_PATH]/g;
|
||||
|
||||
my $strTestPath = BackRestTestCommon_TestPathGet();
|
||||
|
||||
@ -372,27 +433,45 @@ sub BackRestTestCommon_ExecuteRegAll
|
||||
}
|
||||
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'MODIFICATION-TIME', 'modification_time = [0-9]+', '[0-9]+$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP', 'timestamp"[ ]{0,1}:[ ]{0,1}[0-9]+','[0-9]+$');
|
||||
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'BACKUP-INCR', '[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}I');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'BACKUP-DIFF', '[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'BACKUP-FULL', '[0-9]{8}\-[0-9]{6}F');
|
||||
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'GROUP', 'group = [^ \n,\[\]]+', '[^ \n,\[\]]+$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'GROUP', 'group"[ ]{0,1}:[ ]{0,1}"[^"]+', '[^"]+$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'USER', 'user = [^ \n,\[\]]+', '[^ \n,\[\]]+$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'USER', 'user"[ ]{0,1}:[ ]{0,1}"[^"]+', '[^"]+$');
|
||||
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'VERSION', 'version = ' . version_get(), version_get . '$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'VERSION', '"version" : ' . version_get(), version_get . '$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'VERSION', 'version[ ]{0,1}=[ ]{0,1}\"' . version_get(), version_get . '$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'VERSION', '"version"[ ]{0,1}:[ ]{0,1}\"' . version_get(), version_get . '$');
|
||||
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'FORMAT', '"format" : ' . FORMAT, FORMAT . '$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'FORMAT', 'format=' . FORMAT, FORMAT . '$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'FORMAT', '"format"[ ]{0,1}:[ ]{0,1}' . FORMAT, FORMAT . '$');
|
||||
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'PORT', '--port=[0-9]+', '[0-9]+$');
|
||||
|
||||
my $strTimestampRegExp = "[0-9]{4}-[0-1][0-9]-[0-3][0-9] [0-2][0-9]:[0-6][0-9]:[0-6][0-9]";
|
||||
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP', "\"timestamp-copy-start\" : \"$strTimestampRegExp\"",
|
||||
$strTimestampRegExp, false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP', "\"timestamp-start\" : \"$strTimestampRegExp\"",
|
||||
$strTimestampRegExp, false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP', "\"timestamp-stop\" : \"$strTimestampRegExp\"",
|
||||
$strTimestampRegExp, false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP',
|
||||
"timestamp-[a-z-]+[\"]{0,1}[ ]{0,1}[\:\=)]{1}[ ]{0,1}[\"]{0,1}[0-9]+", '[0-9]+$', false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP',
|
||||
"start\" : [0-9]{10}", '[0-9]{10}$', false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP',
|
||||
"stop\" : [0-9]{10}", '[0-9]{10}$', false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'TIMESTAMP-STR', "est backup timestamp: $strTimestampRegExp",
|
||||
"${strTimestampRegExp}\$", false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'CHECKSUM', 'checksum=[\"]{0,1}[0-f]{40}', '[0-f]{40}$', false);
|
||||
|
||||
if (!$bValidWalChecksum)
|
||||
{
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'CHECKSUM', '[0-F]{24}-[0-f]{40}', '[0-f]{40}$', false);
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'DB-SYSTEM-ID',
|
||||
"db-system-id[\"]{0,1}[ ]{0,1}[\:\=)]{1}[ ]{0,1}[0-9]+", '[0-9]+$');
|
||||
$strLine = BackRestTestCommon_ExecuteRegExp($strLine, 'BACKUP-INFO',
|
||||
"backup-info-[a-z-]+[\"]{0,1}[ ]{0,1}[\:\=)]{1}[ ]{0,1}[0-9]+", '[0-9]+$', false);
|
||||
}
|
||||
|
||||
return $strLine;
|
||||
}
|
||||
@ -446,7 +525,7 @@ sub BackRestTestCommon_ExecuteEnd
|
||||
{
|
||||
$strLine =~ s/^[0-9]{4}-[0-1][0-9]-[0-3][0-9] [0-2][0-9]:[0-6][0-9]:[0-6][0-9]\.[0-9]{3} T[0-9]{2} //;
|
||||
|
||||
if ($strLine !~ /^ TEST/ && $strLine =~ /^ /)
|
||||
if ($strLine !~ /^ TEST/ && $strLine !~ /\r$/)
|
||||
{
|
||||
$strLine =~ s/^ //;
|
||||
$strLine =~ s/^ //;
|
||||
@ -462,7 +541,7 @@ sub BackRestTestCommon_ExecuteEnd
|
||||
# Check the exit status and output an error if needed
|
||||
my $iExitStatus = ${^CHILD_ERROR_NATIVE} >> 8;
|
||||
|
||||
if (defined($iExpectedExitStatus) && $iExitStatus == $iExpectedExitStatus)
|
||||
if (defined($iExpectedExitStatus) && ($iExitStatus == $iExpectedExitStatus || $bExecuteRemote && $iExitStatus != 0))
|
||||
{
|
||||
return $iExitStatus;
|
||||
}
|
||||
@ -693,8 +772,8 @@ sub BackRestTestCommon_Setup
|
||||
$strCommonDbCommonPath = "${strCommonTestPath}/db/common";
|
||||
$strCommonDbTablespacePath = "${strCommonTestPath}/db/tablespace";
|
||||
|
||||
$strCommonCommandMain = "../bin/pg_backrest.pl";
|
||||
$strCommonCommandRemote = "${strCommonBasePath}/bin/pg_backrest_remote.pl";
|
||||
$strCommonCommandMain = "../bin/pg_backrest";
|
||||
$strCommonCommandRemote = "${strCommonBasePath}/bin/pg_backrest_remote";
|
||||
$strCommonCommandPsql = "${strPgSqlBin}/psql -X %option% -h ${strCommonDbPath}";
|
||||
|
||||
$iCommonDbPort = 6543;
|
||||
@ -708,7 +787,13 @@ sub BackRestTestCommon_Setup
|
||||
# Get the Postgres version
|
||||
my @stryVersionToken = split(/ /, $strOutLog);
|
||||
@stryVersionToken = split(/\./, $stryVersionToken[2]);
|
||||
$strCommonDbVersion = $stryVersionToken[0] . '.' . $stryVersionToken[1];
|
||||
$strCommonDbVersion = $stryVersionToken[0] . '.' . trim($stryVersionToken[1]);
|
||||
|
||||
if ($strCommonDbVersion =~ /devel$/)
|
||||
{
|
||||
$strCommonDbVersion =~ s/devel$//;
|
||||
&log(INFO, "Testing against ${strCommonDbVersion} development version");
|
||||
}
|
||||
|
||||
# Don't run unit tests for unsupported versions
|
||||
my $strVersionSupport = versionSupport();
|
||||
@ -717,6 +802,14 @@ sub BackRestTestCommon_Setup
|
||||
{
|
||||
confess "currently only version ${$strVersionSupport}[0] and up are supported";
|
||||
}
|
||||
|
||||
if ($strCommonDbVersion eq '9.5')
|
||||
{
|
||||
&log(WARN, "unit tests do not currently work with version 9.5");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
@ -789,7 +882,7 @@ sub BackRestTestCommon_iniLoad
|
||||
BackRestTestCommon_Execute("chmod g+x " . BackRestTestCommon_RepoPathGet(), $bRemote);
|
||||
}
|
||||
|
||||
ini_load($strFileName, $oIniRef);
|
||||
iniLoad($strFileName, $oIniRef);
|
||||
|
||||
if ($bRemote)
|
||||
{
|
||||
@ -805,6 +898,7 @@ sub BackRestTestCommon_iniSave
|
||||
my $strFileName = shift;
|
||||
my $oIniRef = shift;
|
||||
my $bRemote = shift;
|
||||
my $bChecksum = shift;
|
||||
|
||||
# Defaults
|
||||
$bRemote = defined($bRemote) ? $bRemote : false;
|
||||
@ -815,7 +909,19 @@ sub BackRestTestCommon_iniSave
|
||||
BackRestTestCommon_Execute("chmod g+w " . $strFileName, $bRemote);
|
||||
}
|
||||
|
||||
ini_save($strFileName, $oIniRef);
|
||||
# Calculate a new checksum if requested
|
||||
if (defined($bChecksum) && $bChecksum)
|
||||
{
|
||||
delete($$oIniRef{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM});
|
||||
|
||||
my $oSHA = Digest::SHA->new('sha1');
|
||||
my $oJSON = JSON::PP->new()->canonical()->allow_nonref();
|
||||
$oSHA->add($oJSON->encode($oIniRef));
|
||||
|
||||
$$oIniRef{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = $oSHA->hexdigest();
|
||||
}
|
||||
|
||||
iniSave($strFileName, $oIniRef);
|
||||
|
||||
if ($bRemote)
|
||||
{
|
||||
@ -839,7 +945,7 @@ sub BackRestTestCommon_ConfigRemap
|
||||
|
||||
# Load Config file
|
||||
my %oConfig;
|
||||
ini_load($strConfigFile, \%oConfig);
|
||||
iniLoad($strConfigFile, \%oConfig, true);
|
||||
|
||||
# Load remote config file
|
||||
my %oRemoteConfig;
|
||||
@ -848,7 +954,7 @@ sub BackRestTestCommon_ConfigRemap
|
||||
if ($bRemote)
|
||||
{
|
||||
BackRestTestCommon_Execute("mv " . BackRestTestCommon_RepoPathGet() . "/pg_backrest.conf ${strRemoteConfigFile}", true);
|
||||
ini_load($strRemoteConfigFile, \%oRemoteConfig);
|
||||
iniLoad($strRemoteConfigFile, \%oRemoteConfig, true);
|
||||
}
|
||||
|
||||
# Rewrite remap section
|
||||
@ -861,7 +967,7 @@ sub BackRestTestCommon_ConfigRemap
|
||||
if ($strRemap eq 'base')
|
||||
{
|
||||
$oConfig{$strStanza}{'db-path'} = $strRemapPath;
|
||||
${$oManifestRef}{'backup:path'}{base} = $strRemapPath;
|
||||
${$oManifestRef}{'backup:path'}{base}{&MANIFEST_SUBKEY_PATH} = $strRemapPath;
|
||||
|
||||
if ($bRemote)
|
||||
{
|
||||
@ -872,19 +978,18 @@ sub BackRestTestCommon_ConfigRemap
|
||||
{
|
||||
$oConfig{"${strStanza}:restore:tablespace-map"}{$strRemap} = $strRemapPath;
|
||||
|
||||
${$oManifestRef}{'backup:path'}{"tablespace:${strRemap}"} = $strRemapPath;
|
||||
${$oManifestRef}{'backup:tablespace'}{$strRemap}{'path'} = $strRemapPath;
|
||||
${$oManifestRef}{'base:link'}{"pg_tblspc/${strRemap}"}{'link_destination'} = $strRemapPath;
|
||||
${$oManifestRef}{'backup:path'}{"tablespace/${strRemap}"}{&MANIFEST_SUBKEY_PATH} = $strRemapPath;
|
||||
${$oManifestRef}{'base:link'}{"pg_tblspc/${strRemap}"}{destination} = $strRemapPath;
|
||||
}
|
||||
}
|
||||
|
||||
# Resave the config file
|
||||
ini_save($strConfigFile, \%oConfig);
|
||||
iniSave($strConfigFile, \%oConfig, true);
|
||||
|
||||
# Load remote config file
|
||||
if ($bRemote)
|
||||
{
|
||||
ini_save($strRemoteConfigFile, \%oRemoteConfig);
|
||||
iniSave($strRemoteConfigFile, \%oRemoteConfig, true);
|
||||
BackRestTestCommon_Execute("mv ${strRemoteConfigFile} " . BackRestTestCommon_RepoPathGet() . '/pg_backrest.conf', true);
|
||||
}
|
||||
}
|
||||
@ -903,7 +1008,7 @@ sub BackRestTestCommon_ConfigRecovery
|
||||
|
||||
# Load Config file
|
||||
my %oConfig;
|
||||
ini_load($strConfigFile, \%oConfig);
|
||||
iniLoad($strConfigFile, \%oConfig, true);
|
||||
|
||||
# Load remote config file
|
||||
my %oRemoteConfig;
|
||||
@ -912,7 +1017,7 @@ sub BackRestTestCommon_ConfigRecovery
|
||||
if ($bRemote)
|
||||
{
|
||||
BackRestTestCommon_Execute("mv " . BackRestTestCommon_RepoPathGet() . "/pg_backrest.conf ${strRemoteConfigFile}", true);
|
||||
ini_load($strRemoteConfigFile, \%oRemoteConfig);
|
||||
iniLoad($strRemoteConfigFile, \%oRemoteConfig, true);
|
||||
}
|
||||
|
||||
# Rewrite remap section
|
||||
@ -924,12 +1029,12 @@ sub BackRestTestCommon_ConfigRecovery
|
||||
}
|
||||
|
||||
# Resave the config file
|
||||
ini_save($strConfigFile, \%oConfig);
|
||||
iniSave($strConfigFile, \%oConfig, true);
|
||||
|
||||
# Load remote config file
|
||||
if ($bRemote)
|
||||
{
|
||||
ini_save($strRemoteConfigFile, \%oRemoteConfig);
|
||||
iniSave($strRemoteConfigFile, \%oRemoteConfig, true);
|
||||
BackRestTestCommon_Execute("mv ${strRemoteConfigFile} " . BackRestTestCommon_RepoPathGet() . '/pg_backrest.conf', true);
|
||||
}
|
||||
}
|
||||
@ -1039,7 +1144,7 @@ sub BackRestTestCommon_ConfigCreate
|
||||
|
||||
# Write out the configuration file
|
||||
my $strFile = BackRestTestCommon_TestPathGet() . '/pg_backrest.conf';
|
||||
ini_save($strFile, \%oParamHash);
|
||||
iniSave($strFile, \%oParamHash, true);
|
||||
|
||||
# Move the configuration file based on local
|
||||
if ($strLocal eq 'db')
|
||||
|
@ -11,15 +11,16 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
use Time::HiRes qw(gettimeofday);
|
||||
use File::stat;
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname);
|
||||
use File::stat;
|
||||
use Time::HiRes qw(gettimeofday);
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Utility;
|
||||
use BackRestTest::CommonTest;
|
||||
|
||||
use BackRestTest::BackupTest;
|
||||
use BackRestTest::CommonTest;
|
||||
|
||||
####################################################################################################################################
|
||||
# Exports
|
||||
|
@ -11,8 +11,9 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
use Cwd qw(abs_path);
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname);
|
||||
use Scalar::Util 'blessed';
|
||||
#use Data::Dumper qw(Dumper);
|
||||
#use Scalar::Util qw(blessed);
|
||||
@ -20,15 +21,13 @@ use Scalar::Util 'blessed';
|
||||
# use Test::Deep;
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Exception;
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::Exception;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Utility;
|
||||
|
||||
use BackRestTest::CommonTest;
|
||||
|
||||
use Exporter qw(import);
|
||||
our @EXPORT = qw(BackRestTestConfig_Test);
|
||||
|
||||
sub optionSetTest
|
||||
{
|
||||
my $oOption = shift;
|
||||
@ -240,6 +239,8 @@ sub optionTestExpect
|
||||
####################################################################################################################################
|
||||
# BackRestTestConfig_Test
|
||||
####################################################################################################################################
|
||||
our @EXPORT = qw(BackRestTestConfig_Test);
|
||||
|
||||
sub BackRestTestConfig_Test
|
||||
{
|
||||
my $strTest = shift;
|
||||
@ -546,7 +547,7 @@ sub BackRestTestConfig_Test
|
||||
optionSetTest($oOption, OPTION_COMMAND_PSQL_OPTION, '--port 5432');
|
||||
|
||||
configLoadExpect($oOption, OP_BACKUP);
|
||||
optionTestExpect(OPTION_COMMAND_REMOTE, dirname(abs_path($0)) . '/pg_backrest_remote.pl');
|
||||
optionTestExpect(OPTION_COMMAND_REMOTE, dirname(abs_path($0)) . '/pg_backrest_remote');
|
||||
}
|
||||
|
||||
if (BackRestTestCommon_Run(++$iRun, OP_BACKUP . ' missing option ' . OPTION_DB_PATH))
|
||||
@ -608,8 +609,8 @@ sub BackRestTestConfig_Test
|
||||
if (BackRestTestCommon_Run(++$iRun, 'load from config stanza section - option ' . OPTION_THREAD_MAX))
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{"$strStanza:" . &OP_BACKUP}{&OPTION_THREAD_MAX} = 2;
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
$$oConfig{"${strStanza}:" . &OP_BACKUP}{&OPTION_THREAD_MAX} = 2;
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -623,7 +624,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{"$strStanza:" . &CONFIG_SECTION_GENERAL}{&OPTION_THREAD_MAX} = 3;
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -638,7 +639,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &OP_BACKUP}{&OPTION_THREAD_MAX} = 2;
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -652,7 +653,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_GENERAL}{&OPTION_THREAD_MAX} = 5;
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -665,7 +666,7 @@ sub BackRestTestConfig_Test
|
||||
if (BackRestTestCommon_Run(++$iRun, 'default - option ' . OPTION_THREAD_MAX))
|
||||
{
|
||||
$oConfig = {};
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -679,7 +680,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_GENERAL}{&OPTION_THREAD_MAX} = 9;
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -694,7 +695,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &OP_BACKUP}{&OPTION_HARDLINK} = 'Y';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -707,7 +708,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_LOG}{&OPTION_LOG_LEVEL_CONSOLE} = BOGUS;
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -720,7 +721,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_LOG}{&OPTION_LOG_LEVEL_CONSOLE} = lc(INFO);
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_CONFIG, $strConfigFile);
|
||||
@ -740,7 +741,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_EXPIRE}{&OPTION_RETENTION_FULL} = 2;
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_CONFIG, $strConfigFile);
|
||||
@ -753,7 +754,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_BACKUP}{&OPTION_COMPRESS} = 'n';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -766,21 +767,21 @@ sub BackRestTestConfig_Test
|
||||
if (BackRestTestCommon_Run(++$iRun, OP_RESTORE . ' option ' . OPTION_RESTORE_RECOVERY_SETTING))
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_RESTORE_RECOVERY_SETTING}{'archive-command'} = '/path/to/pg_backrest.pl';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_RESTORE_RECOVERY_SETTING}{'archive-command'} = '/path/to/pg_backrest';
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_CONFIG, $strConfigFile);
|
||||
|
||||
configLoadExpect($oOption, OP_RESTORE);
|
||||
optionTestExpect(OPTION_RESTORE_RECOVERY_SETTING, '/path/to/pg_backrest.pl', 'archive-command');
|
||||
optionTestExpect(OPTION_RESTORE_RECOVERY_SETTING, '/path/to/pg_backrest', 'archive-command');
|
||||
}
|
||||
|
||||
if (BackRestTestCommon_Run(++$iRun, OP_RESTORE . ' option ' . OPTION_RESTORE_RECOVERY_SETTING))
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{$strStanza . ':' . &CONFIG_SECTION_RESTORE_RECOVERY_SETTING}{'standby-mode'} = 'on';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_CONFIG, $strConfigFile);
|
||||
@ -792,7 +793,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{$strStanza}{&OPTION_DB_PATH} = '/path/to/db';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_CONFIG, $strConfigFile);
|
||||
@ -805,7 +806,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{$strStanza}{&OPTION_DB_PATH} = '/path/to/db';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_CONFIG, $strConfigFile);
|
||||
@ -818,7 +819,7 @@ sub BackRestTestConfig_Test
|
||||
{
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_GENERAL}{&OPTION_REPO_PATH} = '/repo';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
@ -833,7 +834,7 @@ sub BackRestTestConfig_Test
|
||||
$oConfig = {};
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_COMMAND}{&OPTION_COMMAND_PSQL} = '/psql -X %option%';
|
||||
$$oConfig{&CONFIG_GLOBAL . ':' . &CONFIG_SECTION_COMMAND}{&OPTION_COMMAND_PSQL_OPTION} = '--port=5432';
|
||||
ini_save($strConfigFile, $oConfig);
|
||||
iniSave($strConfigFile, $oConfig, true);
|
||||
|
||||
optionSetTest($oOption, OPTION_STANZA, $strStanza);
|
||||
optionSetTest($oOption, OPTION_DB_PATH, '/db');
|
||||
|
@ -11,25 +11,23 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename;
|
||||
use Cwd 'abs_path';
|
||||
use File::stat;
|
||||
use Exporter qw(import);
|
||||
use Fcntl ':mode';
|
||||
use File::Basename;
|
||||
use File::stat;
|
||||
use POSIX qw(ceil);
|
||||
use Scalar::Util 'blessed';
|
||||
use Time::HiRes qw(gettimeofday usleep);
|
||||
use POSIX qw(ceil);
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::File;
|
||||
use BackRest::Remote;
|
||||
use BackRest::Utility;
|
||||
|
||||
use BackRestTest::CommonTest;
|
||||
|
||||
use Exporter qw(import);
|
||||
our @EXPORT = qw(BackRestTestFile_Test);
|
||||
|
||||
my $strTestPath;
|
||||
my $strHost;
|
||||
my $strUserBackRest;
|
||||
@ -67,6 +65,8 @@ sub BackRestTestFile_Setup
|
||||
####################################################################################################################################
|
||||
# BackRestTestFile_Test
|
||||
####################################################################################################################################
|
||||
our @EXPORT = qw(BackRestTestFile_Test);
|
||||
|
||||
sub BackRestTestFile_Test
|
||||
{
|
||||
my $strTest = shift;
|
||||
|
@ -11,21 +11,22 @@ use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
|
||||
use File::Basename;
|
||||
use Exporter qw(import);
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use lib dirname($0) . '/../lib';
|
||||
use BackRest::Utility;
|
||||
use BackRest::Config;
|
||||
use BackRest::File;
|
||||
use BackRest::Ini;
|
||||
use BackRest::Utility;
|
||||
|
||||
use BackRestTest::CommonTest;
|
||||
|
||||
use Exporter qw(import);
|
||||
our @EXPORT = qw(BackRestTestUtility_Test);
|
||||
|
||||
####################################################################################################################################
|
||||
# BackRestTestUtility_Test
|
||||
####################################################################################################################################
|
||||
our @EXPORT = qw(BackRestTestUtility_Test);
|
||||
|
||||
sub BackRestTestUtility_Test
|
||||
{
|
||||
my $strTest = shift;
|
||||
@ -97,18 +98,18 @@ sub BackRestTestUtility_Test
|
||||
|
||||
# Save the test config
|
||||
my $strFile = "${strTestPath}/config.cfg";
|
||||
ini_save($strFile, \%oConfig);
|
||||
iniSave($strFile, \%oConfig);
|
||||
|
||||
my $strConfigHash = $oFile->hash(PATH_ABSOLUTE, $strFile);
|
||||
|
||||
# Reload the test config
|
||||
my %oConfigTest;
|
||||
|
||||
ini_load($strFile, \%oConfigTest);
|
||||
iniLoad($strFile, \%oConfigTest);
|
||||
|
||||
# Resave the test config and compare hashes
|
||||
my $strFileTest = "${strTestPath}/config-test.cfg";
|
||||
ini_save($strFileTest, \%oConfigTest);
|
||||
iniSave($strFileTest, \%oConfigTest);
|
||||
|
||||
my $strConfigTestHash = $oFile->hash(PATH_ABSOLUTE, $strFileTest);
|
||||
|
||||
|
@ -1,10 +1,27 @@
|
||||
run 001 - rmt 0, cmp 0, exists 0
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000090000000900000009
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000900000009
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000900000009
|
||||
INFO: 000000090000000900000009 was not found in the archive repository
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,29 +1,50 @@
|
||||
run 002 - rmt 0, cmp 0, exists 1
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000001
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000002
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000003
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,10 +1,27 @@
|
||||
run 003 - rmt 0, cmp 1, exists 0
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000090000000900000009
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000900000009
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000900000009
|
||||
INFO: 000000090000000900000009 was not found in the archive repository
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,29 +1,50 @@
|
||||
run 004 - rmt 0, cmp 1, exists 1
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000001
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000002
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000003
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,9 +1,26 @@
|
||||
run 005 - rmt 1, cmp 0, exists 0
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000090000000900000009
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
INFO: 000000090000000900000009 was not found in the archive repository
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,29 +1,50 @@
|
||||
run 006 - rmt 1, cmp 0, exists 1
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000001
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000002
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000003
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,9 +1,26 @@
|
||||
run 007 - rmt 1, cmp 1, exists 0
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000090000000900000009 [TEST_PATH]/db/common/pg_xlog/RECOVERYXLOG
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000090000000900000009
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000900000009, expression ^000000090000000900000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
INFO: 000000090000000900000009 was not found in the archive repository
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,29 +1,50 @@
|
||||
run 008 - rmt 1, cmp 1, exists 1
|
||||
================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=6969
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":6969,"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000001 [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000001
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000002 [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000002
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db archive-get 000000010000000100000003 [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: getting WAL segment 000000010000000100000003
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: archive_get: cp 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz to local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003.backrest.tmp to absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003, destination_path_create = false
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
@ -1,240 +1,249 @@
|
||||
run 001 - rmt 0, cmp 0, arc_async 0
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->path_create: backup:archive:[TEST_PATH]/backrest/archive/db, mode [undef]
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 002 - rmt 0, cmp 0, arc_async 1
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -15,20 +15,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -40,12 +40,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -57,12 +57,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -74,20 +74,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -99,13 +97,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -117,17 +115,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -139,17 +137,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -161,17 +159,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -183,17 +181,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -205,12 +203,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -222,12 +220,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -239,20 +237,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -264,13 +260,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -282,17 +278,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -304,17 +300,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -326,17 +322,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -348,17 +344,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -370,12 +366,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -387,12 +383,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -404,20 +400,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -429,8 +423,23 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,240 +1,249 @@
|
||||
run 003 - rmt 0, cmp 1, arc_async 0
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->path_create: backup:archive:[TEST_PATH]/backrest/archive/db, mode [undef]
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 004 - rmt 0, cmp 1, arc_async 1
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -15,20 +15,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -40,12 +40,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -57,12 +57,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -74,20 +74,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -99,13 +97,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -117,17 +115,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -139,17 +137,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -161,17 +159,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000004(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -183,17 +181,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -205,12 +203,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -222,12 +220,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -239,20 +237,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -264,13 +260,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000005-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -282,17 +278,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -304,17 +300,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000007(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -326,17 +322,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000008(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -348,17 +344,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -370,12 +366,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -387,12 +383,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -404,20 +400,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -429,8 +423,23 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000009(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,167 +1,200 @@
|
||||
run 005 - rmt 1, cmp 0, arc_async 0
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 006 - rmt 1, cmp 0, arc_async 1
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -11,17 +11,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -29,6 +30,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
@ -36,7 +38,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -44,6 +46,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
@ -51,7 +54,7 @@ ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive s
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -59,20 +62,20 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -80,6 +83,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
@ -87,7 +91,7 @@ DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -95,17 +99,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -113,17 +118,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -131,17 +137,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -149,17 +156,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -167,6 +175,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
@ -174,7 +183,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -182,6 +191,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
@ -189,7 +199,7 @@ ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive s
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -197,20 +207,20 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -218,6 +228,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
@ -225,7 +236,7 @@ DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -233,17 +244,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -251,17 +263,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -269,17 +282,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -287,17 +301,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -305,6 +320,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
@ -312,7 +328,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -320,6 +336,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
@ -327,7 +344,7 @@ ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive s
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -335,20 +352,20 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -356,9 +373,25 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,167 +1,200 @@
|
||||
run 007 - rmt 1, cmp 1, arc_async 0
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive system-id 5000900090001855000
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 008 - rmt 1, cmp 1, arc_async 1
|
||||
===================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -11,17 +11,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -29,6 +30,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
@ -36,7 +38,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -44,6 +46,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
@ -51,7 +54,7 @@ ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive s
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -59,20 +62,20 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000001 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -80,6 +83,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
@ -87,7 +91,7 @@ DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000
|
||||
ERROR: [120]: WAL segment 000000010000000100000001 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -95,17 +99,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -113,17 +118,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000004 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000004 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000004, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -131,17 +137,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000004
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000004-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -149,17 +156,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -167,6 +175,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
@ -174,7 +183,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -182,6 +191,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
@ -189,7 +199,7 @@ ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive s
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -197,20 +207,20 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000005 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -218,6 +228,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000005-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
@ -225,7 +236,7 @@ DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000
|
||||
ERROR: [120]: WAL segment 000000010000000100000005 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -233,17 +244,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000007
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000007 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000007 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000007, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -251,17 +263,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000007
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000007-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000008
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000008 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000008 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000008, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -269,17 +282,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000008
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000008-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -287,17 +301,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -305,6 +320,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
@ -312,7 +328,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -320,6 +336,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
@ -327,7 +344,7 @@ ERROR: [119]: WAL segment system-id 5947969990501855219 does not match archive s
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -335,20 +352,20 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031, compressed = false, hash_type = sha1
|
||||
WARN: WAL segment 000000010000000100000009 already exists in the archive with the same checksum
|
||||
HINT: this is valid in some recovery scenarios but may also indicate a problem
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000009-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000009
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000009 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000009 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000009, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -356,9 +373,25 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000009
|
||||
DEBUG: File->hash: db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000009-4518a0fdf41d796760b384a358270d4682589820, compressed = false, hash_type = sha1
|
||||
ERROR: [120]: WAL segment 000000010000000100000009 already exists in the archive
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/archive/db/archive.info
|
||||
-----------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[db]
|
||||
db-id=1
|
||||
db-system-id=5947969990501855219
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-id":5947969990501855219,"db-version":"9.3"}
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 001 - rmt 0, cmp 0, error version
|
||||
=====================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -15,20 +15,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -40,12 +40,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -57,18 +57,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
ERROR: local archive store max size has exceeded limit of 24MB - WAL segments will be discarded until the stop file ([TEST_PATH]/backrest/lock/db-archive.stop) is removed
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
ERROR: discarding 000000010000000100000004 due to the archive store max size exceeded - remove the archive stop file ([TEST_PATH]/backrest/lock/db-archive.stop) to resume archiving and be sure to take a new backup as soon as possible
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -80,31 +80,31 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 3 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -116,10 +116,10 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 002 - rmt 0, cmp 1, error version
|
||||
=====================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -15,20 +15,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000001(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->exists: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, mode [undef]
|
||||
DEBUG: File->exists: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -40,12 +40,12 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -57,18 +57,18 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
ERROR: local archive store max size has exceeded limit of 24MB - WAL segments will be discarded until the stop file ([TEST_PATH]/backrest/lock/db-archive.stop) is removed
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
ERROR: discarding 000000010000000100000004 due to the archive store max size exceeded - remove the archive stop file ([TEST_PATH]/backrest/lock/db-archive.stop) to resume archiving and be sure to take a new backup as soon as possible
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -80,31 +80,31 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000002(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000003(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000005(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 3 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -116,10 +116,10 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->exists: backup:archive:[TEST_PATH]/backrest/archive/db/archive.info
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: File->list: backup:absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001, expression ^000000010000000100000006(-[0-f]+){0,1}(\.gz){0,1}$, sort forward
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/backrest/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to local backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->move: absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz.tmp to absolute:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, destination_path_create = true
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/backrest/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 003 - rmt 1, cmp 0, error version
|
||||
=====================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -11,17 +11,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -29,6 +30,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
@ -36,7 +38,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -44,6 +46,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 2, size 32MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
@ -52,12 +55,12 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
ERROR: local archive store max size has exceeded limit of 24MB - WAL segments will be discarded until the stop file ([TEST_PATH]/local/lock/db-archive.stop) is removed
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
ERROR: discarding 000000010000000100000004 due to the archive store max size exceeded - remove the archive stop file ([TEST_PATH]/local/lock/db-archive.stop) to resume archiving and be sure to take a new backup as soon as possible
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -65,23 +68,24 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 3, size 48MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 3 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -89,10 +93,11 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 004 - rmt 1, cmp 0, error connect
|
||||
=====================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -11,17 +11,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -29,10 +30,11 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = bogus, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
ERROR: [124]: unable to connect to bogus: unable to establish master SSH connection: master process exited unexpectedly
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -40,16 +42,17 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = bogus, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
ERROR: [124]: unable to connect to bogus: unable to establish master SSH connection: master process exited unexpectedly
|
||||
ERROR: local archive store max size has exceeded limit of 24MB - WAL segments will be discarded until the stop file ([TEST_PATH]/local/lock/db-archive.stop) is removed
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
ERROR: discarding 000000010000000100000004 due to the archive store max size exceeded - remove the archive stop file ([TEST_PATH]/local/lock/db-archive.stop) to resume archiving and be sure to take a new backup as soon as possible
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -57,23 +60,24 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 3, size 48MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 3 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -81,10 +85,11 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 0, default_compress = 0
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 005 - rmt 1, cmp 1, error version
|
||||
=====================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -11,17 +11,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -29,6 +30,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
@ -36,7 +38,7 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
HINT: are you archiving to the correct stanza?
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -44,6 +46,7 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 2, size 32MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
@ -52,12 +55,12 @@ ERROR: [119]: WAL segment version 9.3 does not match archive version 8.0
|
||||
ERROR: local archive store max size has exceeded limit of 24MB - WAL segments will be discarded until the stop file ([TEST_PATH]/local/lock/db-archive.stop) is removed
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
ERROR: discarding 000000010000000100000004 due to the archive store max size exceeded - remove the archive stop file ([TEST_PATH]/local/lock/db-archive.stop) to resume archiving and be sure to take a new backup as soon as possible
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -65,23 +68,24 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 3, size 48MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 3 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -89,10 +93,11 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
|
@ -1,7 +1,7 @@
|
||||
run 006 - rmt 1, cmp 1, error connect
|
||||
=====================================
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000001
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000001 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000001 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000001, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -11,17 +11,18 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000001
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000001-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000002
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000002 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000002 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000002, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -29,10 +30,11 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = bogus, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
ERROR: [124]: unable to connect to bogus: unable to establish master SSH connection: master process exited unexpectedly
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push --backup-host=bogus [TEST_PATH]/db/common/pg_xlog/000000010000000100000003
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000003 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000003 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000003, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -40,16 +42,17 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = bogus, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
ERROR: [124]: unable to connect to bogus: unable to establish master SSH connection: master process exited unexpectedly
|
||||
ERROR: local archive store max size has exceeded limit of 24MB - WAL segments will be discarded until the stop file ([TEST_PATH]/local/lock/db-archive.stop) is removed
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000004
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
ERROR: discarding 000000010000000100000004 due to the archive store max size exceeded - remove the archive stop file ([TEST_PATH]/local/lock/db-archive.stop) to resume archiving and be sure to take a new backup as soon as possible
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000005
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000005 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000005 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000005, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -57,23 +60,24 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 3, size 48MB
|
||||
DEBUG: archive 000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000002
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000002-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000003
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000003-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: archive 000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000005
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000005-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 3 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
DEBUG: transfer found 0 WAL segments - exiting
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --archive-max-mb=24 --no-fork --stanza=db archive-push [TEST_PATH]/db/common/pg_xlog/000000010000000100000006
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
INFO: pushing WAL segment [TEST_PATH]/db/common/pg_xlog/000000010000000100000006 asynchronously
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/pg_xlog/000000010000000100000006 to local backup:archive:out:[TEST_PATH]/local/archive/db/out/000000010000000100000006, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
@ -81,10 +85,11 @@ DEBUG: File->move: absolute:[TEST_PATH]/local/archive/db/out/000000010000000
|
||||
DEBUG: No fork on archive local for TESTING
|
||||
DEBUG: starting async archive-push
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: Remote->new: host = 127.0.0.1, user = [USER-1], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote
|
||||
INFO: archive to be copied to backup total 1, size 16MB
|
||||
DEBUG: archive 000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031, is WAL 1, source_compressed = 0, destination_compress 1, default_compress = 1
|
||||
DEBUG: Archive->pushCheck: backup:archive:000000010000000100000006
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: File->copy: local db:absolute:[TEST_PATH]/local/archive/db/out/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031 to remote backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000001/000000010000000100000006-1c7e00fd09b9dd11fc2966590b3e3274645dd031.gz, source_compressed = false, destination_compress = true, ignore_missing_source = false, destination_path_create = true, modification_time = [undef], mode = [undef], user = [undef], group = [undef]
|
||||
DEBUG: transferred 1 WAL segment(s), calling Archive->xfer() again
|
||||
DEBUG: File->manifest: db:absolute:[TEST_PATH]/local/archive/db/out
|
||||
DEBUG: no archive logs to be copied to backup
|
||||
|
683
test/log/backup-expire-001.log
Normal file
683
test/log/backup-expire-001.log
Normal file
@ -0,0 +1,683 @@
|
||||
run 001 - local
|
||||
===============
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=2
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[BACKUP-FULL-1].*, sort reverse
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-INCR-1]
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-DIFF-1]
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-FULL-1]
|
||||
INFO: remove expired full backup: [BACKUP-FULL-1]
|
||||
INFO: archive rentention type not set - archive logs will not be expired
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-diff=3
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-4]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-4] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-3] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-4] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-3] for differential expiration
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-DIFF-3]
|
||||
INFO: remove expired diff/incr backup [BACKUP-DIFF-3]
|
||||
DEBUG: checking [BACKUP-INCR-2] for differential expiration
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-INCR-2]
|
||||
INFO: remove expired diff/incr backup [BACKUP-INCR-2]
|
||||
DEBUG: checking [BACKUP-DIFF-2] for differential expiration
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-DIFF-2]
|
||||
INFO: remove expired diff/incr backup [BACKUP-DIFF-2]
|
||||
INFO: archive rentention type not set - archive logs will not be expired
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=2 --retention-diff=3
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-4]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-4] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-3] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-4] for differential expiration
|
||||
INFO: archive rentention type not set - archive logs will not be expired
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=2 --retention-diff=3 --retention-archive-type=full --retention-archive=2
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-4]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-4] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-3] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-4] for differential expiration
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
INFO: archive retention based on backup [BACKUP-FULL-2]
|
||||
INFO: archive retention starts at 000000010000000000000008
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1, expression ^[0-F]{16}$, sort forward
|
||||
DEBUG: found major archive path 0000000000000000
|
||||
DEBUG: remove major archive path [TEST_PATH]/backrest/archive/db/9.3-1/0000000000000000
|
||||
DEBUG: found major archive path 0000000100000000
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000000, expression ^[0-F]{24}.*$, sort forward
|
||||
DEBUG: remove expired archive file 000000010000000000000001-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000002-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000002.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000003-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000004-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000004.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000005-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000006-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000006.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000007-[CHECKSUM]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=2 --retention-diff=3 --retention-archive-type=diff --retention-archive=2
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-4]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-4] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-3] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-4] for differential expiration
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}D){0,1}$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}D){0,1}$, sort reverse
|
||||
INFO: archive retention based on backup [BACKUP-DIFF-5]
|
||||
INFO: archive retention starts at 000000010000000000000014
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1, expression ^[0-F]{16}$, sort forward
|
||||
DEBUG: found major archive path 0000000100000000
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000000, expression ^[0-F]{24}.*$, sort forward
|
||||
DEBUG: remove expired archive file 000000010000000000000008-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000008.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000009-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 00000001000000000000000A-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 00000001000000000000000A.00000028.backup
|
||||
DEBUG: remove expired archive file 00000001000000000000000B-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 00000001000000000000000C-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 00000001000000000000000C.00000028.backup
|
||||
DEBUG: remove expired archive file 00000001000000000000000D-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 00000001000000000000000E-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 00000001000000000000000E.00000028.backup
|
||||
DEBUG: remove expired archive file 00000001000000000000000F-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000010-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000010.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000011-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000012-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000012.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000013-[CHECKSUM]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=1 --retention-diff=2 --retention-archive-type=incr --retention-archive=2
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[BACKUP-FULL-2].*, sort reverse
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-DIFF-4]
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-FULL-2]
|
||||
INFO: remove expired full backup: [BACKUP-FULL-2]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-5]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-5] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-4] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-3] for differential expiration
|
||||
DEBUG: checking [BACKUP-DIFF-5] for differential expiration
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, sort reverse
|
||||
INFO: archive retention based on backup [BACKUP-INCR-5]
|
||||
INFO: archive retention starts at 00000001000000000000001A
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1, expression ^[0-F]{16}$, sort forward
|
||||
DEBUG: found major archive path 0000000100000000
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000000, expression ^[0-F]{24}.*$, sort forward
|
||||
DEBUG: remove expired archive file 000000010000000000000014-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000014.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000015-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000016-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000016.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000017-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000018-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 000000010000000000000018.00000028.backup
|
||||
DEBUG: remove expired archive file 000000010000000000000019-[CHECKSUM]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=1 --retention-diff=1 --retention-archive-type=incr --retention-archive=2
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-6]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: checking [BACKUP-INCR-5] for differential expiration
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-INCR-5]
|
||||
INFO: remove expired diff/incr backup [BACKUP-INCR-5]
|
||||
DEBUG: checking [BACKUP-INCR-4] for differential expiration
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-INCR-4]
|
||||
INFO: remove expired diff/incr backup [BACKUP-INCR-4]
|
||||
DEBUG: checking [BACKUP-INCR-3] for differential expiration
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-INCR-3]
|
||||
INFO: remove expired diff/incr backup [BACKUP-INCR-3]
|
||||
DEBUG: checking [BACKUP-DIFF-5] for differential expiration
|
||||
DEBUG: BackupInfo->backupRemove: backupLabel = [BACKUP-DIFF-5]
|
||||
INFO: remove expired diff/incr backup [BACKUP-DIFF-5]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$, sort reverse
|
||||
INFO: archive retention based on backup [BACKUP-FULL-3]
|
||||
INFO: archive retention starts at 000000010000000000000012
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1, expression ^[0-F]{16}$, sort forward
|
||||
DEBUG: found major archive path 0000000100000000
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000000, expression ^[0-F]{24}.*$, sort forward
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=1 --retention-diff=1 --retention-archive-type=diff --retention-archive=2
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-6]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}D){0,1}$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}D){0,1}$, sort reverse
|
||||
INFO: archive retention based on backup [BACKUP-FULL-3]
|
||||
INFO: archive retention starts at 000000010000000000000012
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1, expression ^[0-F]{16}$, sort forward
|
||||
DEBUG: found major archive path 0000000100000000
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000000, expression ^[0-F]{24}.*$, sort forward
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
||||
|
||||
> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db expire --retention-full=1 --retention-diff=1 --retention-archive-type=diff --retention-archive=1
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 0, incremental = 0: ^[0-9]{8}\-[0-9]{6}F$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F$, sort reverse
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}D$, sort reverse
|
||||
DEBUG: differential expiration based on [BACKUP-DIFF-6]
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 0, differential = 1, incremental = 1: ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F\_[0-9]{8}\-[0-9]{6}(D|I)$, sort reverse
|
||||
DEBUG: checking [BACKUP-DIFF-6] for differential expiration
|
||||
DEBUG: BackupCommon::backupRegExpGet: full = 1, differential = 1, incremental = 0: ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}D){0,1}$
|
||||
DEBUG: File->list: backup:cluster:[TEST_PATH]/backrest/backup/db, expression ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}D){0,1}$, sort reverse
|
||||
INFO: archive retention based on backup [BACKUP-DIFF-6]
|
||||
INFO: archive retention starts at 00000001000000000000001C
|
||||
DEBUG: ArchiveInfo->new(): archiveClusterPath = [TEST_PATH]/backrest/archive/db
|
||||
DEBUG: Archive->getCheck=>: archiveId = 9.3-1
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1, expression ^[0-F]{16}$, sort forward
|
||||
DEBUG: found major archive path 0000000100000000
|
||||
DEBUG: File->list: backup:archive:[TEST_PATH]/backrest/archive/db/9.3-1/0000000100000000, expression ^[0-F]{24}.*$, sort forward
|
||||
DEBUG: remove expired archive file 00000001000000000000001A-[CHECKSUM]
|
||||
DEBUG: remove expired archive file 00000001000000000000001A.00000028.backup
|
||||
DEBUG: remove expired archive file 00000001000000000000001B-[CHECKSUM]
|
||||
DEBUG: safe exit called, terminating threads
|
||||
|
||||
+ supplemental file: [TEST_PATH]/backrest/backup/db/backup.info
|
||||
---------------------------------------------------------------
|
||||
[backrest]
|
||||
backrest-checksum="[CHECKSUM]"
|
||||
backrest-format=[FORMAT-1]
|
||||
backrest-version="[VERSION-1]"
|
||||
|
||||
[backup:current]
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[backup:history]
|
||||
[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000002","backup-archive-stop":"000000010000000000000002","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000004","backup-archive-stop":"000000010000000000000004","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000006","backup-archive-stop":"000000010000000000000006","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-1]","backup-reference":["[BACKUP-FULL-1]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000008","backup-archive-stop":"000000010000000000000008","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000A","backup-archive-stop":"00000001000000000000000A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000C","backup-archive-stop":"00000001000000000000000C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000000E","backup-archive-stop":"00000001000000000000000E","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000010","backup-archive-stop":"000000010000000000000010","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000012","backup-archive-stop":"000000010000000000000012","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000014","backup-archive-stop":"000000010000000000000014","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000016","backup-archive-stop":"000000010000000000000016","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-DIFF-5]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"000000010000000000000018","backup-archive-stop":"000000010000000000000018","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001A","backup-archive-stop":"00000001000000000000001A","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-INCR-4]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
[BACKUP-DIFF-6]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":"00000001000000000000001C","backup-archive-stop":"00000001000000000000001C","backup-info-repo-size":[BACKUP-INFO],"backup-info-repo-size-delta":[BACKUP-INFO],"backup-info-size":[BACKUP-INFO],"backup-info-size-delta":[BACKUP-INFO],"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":true}
|
||||
|
||||
[db]
|
||||
db-catalog-version=201306121
|
||||
db-control-version=937
|
||||
db-id=1
|
||||
db-system-id=[DB-SYSTEM-ID-1]
|
||||
db-version="9.3"
|
||||
|
||||
[db:history]
|
||||
1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":[DB-SYSTEM-ID-1],"db-version":"9.3"}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
32
test/test.pl
32
test/test.pl
@ -8,7 +8,9 @@
|
||||
####################################################################################################################################
|
||||
use strict;
|
||||
use warnings FATAL => qw(all);
|
||||
use Carp qw(confess);
|
||||
use Carp qw(confess longmess);
|
||||
|
||||
$SIG{__DIE__} = sub { Carp::confess @_ };
|
||||
|
||||
use File::Basename;
|
||||
use Getopt::Long;
|
||||
@ -246,10 +248,12 @@ if (-e './test.pl' && -e '../bin/pg_backrest.pl' && open($hVersion, '<', '../VER
|
||||
|
||||
my $iRun = 0;
|
||||
|
||||
eval
|
||||
{
|
||||
do
|
||||
{
|
||||
BackRestTestCommon_Setup($strTestPath, $stryTestVersion[0], $iModuleTestRun, $bDryRun, $bNoCleanup, $bLogForce);
|
||||
|
||||
if (BackRestTestCommon_Setup($strTestPath, $stryTestVersion[0], $iModuleTestRun, $bDryRun, $bNoCleanup, $bLogForce))
|
||||
{
|
||||
&log(INFO, "TESTING psql-bin = $stryTestVersion[0]\n");
|
||||
|
||||
if ($bInfinite)
|
||||
@ -281,7 +285,8 @@ do
|
||||
{
|
||||
for (my $iVersionIdx = 1; $iVersionIdx < @stryTestVersion; $iVersionIdx++)
|
||||
{
|
||||
BackRestTestCommon_Setup($strTestPath, $stryTestVersion[$iVersionIdx], $iModuleTestRun, $bDryRun, $bNoCleanup);
|
||||
BackRestTestCommon_Setup($strTestPath, $stryTestVersion[$iVersionIdx],
|
||||
$iModuleTestRun, $bDryRun, $bNoCleanup);
|
||||
&log(INFO, "TESTING psql-bin = $stryTestVersion[$iVersionIdx] for backup/full\n");
|
||||
BackRestTestBackup_Test('full', $iThreadMax);
|
||||
}
|
||||
@ -293,7 +298,26 @@ do
|
||||
BackRestTestCompare_Test($strModuleTest);
|
||||
}
|
||||
}
|
||||
}
|
||||
while ($bInfinite);
|
||||
};
|
||||
|
||||
if ($@)
|
||||
{
|
||||
my $oMessage = $@;
|
||||
|
||||
# If a backrest exception then return the code - don't confess
|
||||
if ($oMessage->isa('BackRest::Exception'))
|
||||
{
|
||||
# syswrite(*STDOUT, $oMessage->message() . "\n");
|
||||
syswrite(*STDOUT, $oMessage->trace());
|
||||
exit $oMessage->code();
|
||||
}
|
||||
|
||||
syswrite(*STDOUT, $oMessage);
|
||||
exit 255;;
|
||||
}
|
||||
|
||||
|
||||
if (!$bDryRun)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user