diff --git a/README.md b/README.md index b2ba41797..ab763c019 100644 --- a/README.md +++ b/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. diff --git a/bin/pg_backrest.pl b/bin/pg_backrest similarity index 59% rename from bin/pg_backrest.pl rename to bin/pg_backrest index 5cd85330b..0f9115531 100755 --- a/bin/pg_backrest.pl +++ b/bin/pg_backrest @@ -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,168 +125,174 @@ $SIG{INT} = \&safe_exit; #################################################################################################################################### # START EVAL BLOCK TO CATCH ERRORS AND STOP THREADS #################################################################################################################################### -eval { - -#################################################################################################################################### -# Load command line parameters and config -#################################################################################################################################### -configLoad(); - -# Set the log levels -log_level_set(optionGet(OPTION_LOG_LEVEL_FILE), optionGet(OPTION_LOG_LEVEL_CONSOLE)); - -# 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)) +eval { - safe_exit(new BackRest::Archive()->process()); -} + ################################################################################################################################ + # Load command line parameters and config + ################################################################################################################################ + configLoad(); -#################################################################################################################################### -# Acquire the operation lock -#################################################################################################################################### -lockAcquire(operationGet()); + # Set the log levels + log_level_set(optionGet(OPTION_LOG_LEVEL_FILE), optionGet(OPTION_LOG_LEVEL_CONSOLE)); -#################################################################################################################################### -# Open the log file -#################################################################################################################################### -log_file_set(optionGet(OPTION_REPO_PATH) . '/log/' . optionGet(OPTION_STANZA) . '-' . lc(operationGet())); + # Set test options + !optionGet(OPTION_TEST) or test_set(optionGet(OPTION_TEST), optionGet(OPTION_TEST_DELAY)); -#################################################################################################################################### -# 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), - optionRemoteTypeTest(BACKUP) ? optionGet(OPTION_REPO_REMOTE_PATH) : optionGet(OPTION_REPO_PATH), - optionRemoteType(), - optionRemote() -); - -#################################################################################################################################### -# RESTORE -#################################################################################################################################### -if (operationTest(OP_RESTORE)) -{ - if (optionRemoteTypeTest(DB)) + ################################################################################################################################ + # Process archive commands + ################################################################################################################################ + if (operationTest(OP_ARCHIVE_PUSH) || operationTest(OP_ARCHIVE_GET)) { - confess &log(ASSERT, 'restore operation must be performed locally on the db server'); + safe_exit(new BackRest::Archive()->process()); } - # Do the restore - new BackRest::Restore + ################################################################################################################################ + # 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_DB_PATH), - optionGet(OPTION_SET), - optionGet(OPTION_RESTORE_TABLESPACE_MAP, false), - $oFile, - optionGet(OPTION_THREAD_MAX), - optionGet(OPTION_DELTA), - optionGet(OPTION_FORCE), - optionGet(OPTION_TYPE), - optionGet(OPTION_TARGET, false), - optionGet(OPTION_TARGET_EXCLUSIVE, false), - optionGet(OPTION_TARGET_RESUME, false), - optionGet(OPTION_TARGET_TIMELINE, false), - optionGet(OPTION_RESTORE_RECOVERY_SETTING, false), optionGet(OPTION_STANZA), - $0, - optionGet(OPTION_CONFIG) - )->restore; + optionRemoteTypeTest(BACKUP) ? optionGet(OPTION_REPO_REMOTE_PATH) : optionGet(OPTION_REPO_PATH), + optionRemoteType(), + optionRemote() + ); - safe_exit(0); -} + ################################################################################################################################ + # RESTORE + ################################################################################################################################ + if (operationTest(OP_RESTORE)) + { + if (optionRemoteTypeTest(DB)) + { + confess &log(ASSERT, 'restore operation must be performed locally on the db server'); + } -#################################################################################################################################### -# GET MORE CONFIG INFO -#################################################################################################################################### -# Make sure backup and expire operations happen on the backup side -if (optionRemoteTypeTest(BACKUP)) -{ - confess &log(ERROR, 'backup and expire operations must run on the backup host'); -} + # Do the restore + new BackRest::Restore + ( + optionGet(OPTION_DB_PATH), + optionGet(OPTION_SET), + optionGet(OPTION_RESTORE_TABLESPACE_MAP, false), + $oFile, + optionGet(OPTION_THREAD_MAX), + optionGet(OPTION_DELTA), + optionGet(OPTION_FORCE), + optionGet(OPTION_TYPE), + optionGet(OPTION_TARGET, false), + optionGet(OPTION_TARGET_EXCLUSIVE, false), + optionGet(OPTION_TARGET_RESUME, false), + optionGet(OPTION_TARGET_TIMELINE, false), + optionGet(OPTION_RESTORE_RECOVERY_SETTING, false), + optionGet(OPTION_STANZA), + $0, + optionGet(OPTION_CONFIG) + )->restore; -# Initialize the db object -my $oDb; + safe_exit(0); + } -if (operationTest(OP_BACKUP)) -{ - if (!optionGet(OPTION_NO_START_STOP)) + ################################################################################################################################ + # GET MORE CONFIG INFO + ################################################################################################################################ + # Make sure backup and expire operations happen on the backup side + if (optionRemoteTypeTest(BACKUP)) + { + confess &log(ERROR, 'backup and expire operations must run on the backup host'); + } + + # Initialize the db object + my $oDb; + + if (operationTest(OP_BACKUP)) { $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 - ( - $oDb, - $oFile, - optionGet(OPTION_TYPE), - optionGet(OPTION_COMPRESS), - optionGet(OPTION_HARDLINK), - optionGet(OPTION_THREAD_MAX), - optionGet(OPTION_THREAD_TIMEOUT, false), - optionGet(OPTION_NO_START_STOP), - optionTest(OPTION_FORCE) - ); -} - -#################################################################################################################################### -# BACKUP -#################################################################################################################################### -if (operationTest(OP_BACKUP)) -{ - backup(optionGet(OPTION_DB_PATH), optionGet(OPTION_START_FAST)); - - operationSet(OP_EXPIRE); -} - -#################################################################################################################################### -# EXPIRE -#################################################################################################################################### -if (operationTest(OP_EXPIRE)) -{ - if (!defined($oDb)) - { + # Run backup_init - parameters required for backup and restore operations backup_init ( - undef, - $oFile + $oDb, + $oFile, + optionGet(OPTION_TYPE), + optionGet(OPTION_COMPRESS), + optionGet(OPTION_HARDLINK), + optionGet(OPTION_THREAD_MAX), + optionGet(OPTION_THREAD_TIMEOUT, false), + optionGet(OPTION_NO_START_STOP), + optionTest(OPTION_FORCE) ); } - backup_expire - ( - $oFile->path_get(PATH_BACKUP_CLUSTER), - optionGet(OPTION_RETENTION_FULL, false), - optionGet(OPTION_RETENTION_DIFF, false), - optionGet(OPTION_RETENTION_ARCHIVE_TYPE, false), - optionGet(OPTION_RETENTION_ARCHIVE, false) - ); -} + ################################################################################################################################ + # BACKUP + ################################################################################################################################ + if (operationTest(OP_BACKUP)) + { + backup(optionGet(OPTION_DB_PATH), optionGet(OPTION_START_FAST)); -# Cleanup backup (should be removed when backup becomes an object) -backup_cleanup(); + operationSet(OP_EXPIRE); + } -# Release the operation lock -lockRelease(); + ################################################################################################################################ + # EXPIRE + ################################################################################################################################ + if (operationTest(OP_EXPIRE)) + { + if (!defined($oDb)) + { + backup_init + ( + undef, + $oFile + ); + } -safe_exit(0); + backup_expire + ( + $oFile->path_get(PATH_BACKUP_CLUSTER), + optionGet(OPTION_RETENTION_FULL, false), + optionGet(OPTION_RETENTION_DIFF, false), + optionGet(OPTION_RETENTION_ARCHIVE_TYPE, false), + optionGet(OPTION_RETENTION_ARCHIVE, false) + ); + } + + # Cleanup backup (should be removed when backup becomes an object) + backup_cleanup(); + + # Release the operation lock + lockRelease(); + + safe_exit(0); }; #################################################################################################################################### diff --git a/bin/pg_backrest_remote.pl b/bin/pg_backrest_remote similarity index 85% rename from bin/pg_backrest_remote.pl rename to bin/pg_backrest_remote index d873cdc69..2952f1d25 100755 --- a/bin/pg_backrest_remote.pl +++ b/bin/pg_backrest_remote @@ -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, - param_get(\%oParamHash, 'wal-segment'), - undef, - param_get(\%oParamHash, 'db-version'), - param_get(\%oParamHash, 'db-sys-id')); + 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) diff --git a/doc/doc.xml b/doc/doc.xml index 287ecffa4..71af4171e 100644 --- a/doc/doc.xml +++ b/doc/doc.xml @@ -176,28 +176,28 @@ Run a full backup on the db stanza. --type can /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 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 specifies the WAL segment it needs and %p is the location where it should be copied. - does backup rotation, but is not concerned with when the backups were created. So if two full backups are configured for rentention, will keep two full backups no matter whether they occur, two hours apart or two weeks apart. + does backup rotation, but is not concerned with when the backups were created. So if two full backups are configured for retention, will keep two full backups no matter whether they occur, two hours apart or two weeks apart. /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. - 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. + + + + 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. + + + + + + + + + + /path/to/pg_backrest.pl --stanza=db --output=json info + + + Get information about backups in the db stanza. + + + @@ -332,7 +362,7 @@ Run a full backup on the db stanza. --type 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 full backup on the db stanza. --type can 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. /usr/bin/psql -X %option% @@ -592,7 +622,7 @@ Run a full backup on the db stanza. --type can Limits the amount of archive log that will be written locally when archive-async=y. After the limit is reached, the following will happen:
    -
  1. PgBackRest will notify Postgres that the archive was succesfully backed up, then DROP IT.
  2. +
  3. PgBackRest will notify Postgres that the archive was successfully backed up, then DROP IT.
  4. An error will be logged to the console and also to the Postgres log.
  5. A stop file will be written in the lock directory and no more archive files will be backed up until it is removed.
@@ -622,7 +652,7 @@ Run a full backup on the db stanza. --type can - 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. @@ -650,7 +680,9 @@ Run a full backup on the db stanza. --type can - 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. 2 @@ -689,6 +721,26 @@ Run a full backup on the db stanza. --type can + + + + IMPORTANT NOTE: This flag day release breaks compatibility with older versions of . 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 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 9.5. This may break when the control version or WAL magic changes but will be updated in each release. + + + + @@ -778,7 +830,7 @@ Run a full backup on the db stanza. --type can 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. @@ -848,7 +900,7 @@ Run a full backup on the db stanza. --type can - Added RequestTTY=yes to ssh sesssions. Hoping this will prevent random lockups. + Added RequestTTY=yes to ssh sessions. Hoping this will prevent random lockups. @@ -884,7 +936,7 @@ Run a full backup on the db stanza. --type can 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. @@ -903,6 +955,6 @@ Run a full backup on the db stanza. --type can Primary recognition goes to Stephen Frost for all his valuable advice and criticism during the development of . - 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 and continues to support development. Resonate (http://www.resonate.com/) also contributed to the development of and allowed me to install early (but well tested) versions as their primary backup solution.
diff --git a/lib/BackRest/Archive.pm b/lib/BackRest/Archive.pm index f7dc4e4b9..7d32ee6c7 100644 --- a/lib/BackRest/Archive.pm +++ b/lib/BackRest/Archive.pm @@ -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'; -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_PUSH_CHECK => OP_ARCHIVE . '->pushCheck'; + our @EXPORT = qw(OP_ARCHIVE_PUSH_CHECK); +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,14 +311,40 @@ 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 - PATH_DB_ABSOLUTE, $strDestinationFile, # Destination file - $bSourceCompressed, # Source compression based on detection - false); # Destination is not compressed + $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 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,28 +490,44 @@ 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) { - my ($strDbVersion, $ullDbSysId) = $self->walInfo($strSourceFile); - $self->pushCheck($oFile, substr(basename($strSourceFile), 0, 24), $strSourceFile, $strDbVersion, $ullDbSysId); + if ($bArchiveFile) + { + my ($strDbVersion, $ullDbSysId) = $self->walInfo($strSourceFile); + ($strArchiveId, $strChecksum) = $self->pushCheck($oFile, substr(basename($strSourceFile), 0, 24), $strSourceFile, + $strDbVersion, $ullDbSysId); + } + else + { + $strArchiveId = $self->getCheck($oFile); + } } - # Append compression extension - if ($bArchiveFile && $bCompress) + # 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)) { - $strDestinationFile .= '.' . $oFile->{strCompressExtension}; - } + # Append compression extension + if ($bArchiveFile && $bCompress) + { + $strDestinationFile .= '.' . $oFile->{strCompressExtension}; + } - # 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 - false, # Source is not compressed - $bArchiveFile && $bCompress, # Destination compress is configurable - undef, undef, undef, # Unused params - true, # Create path if it does not exist - undef, undef, # User and group - $bArchiveFile); # Append checksum if archive file + # Copy the WAL segment + $oFile->copy(PATH_DB_ABSOLUTE, $strSourceFile, # Source type/file + $bAsync ? PATH_BACKUP_ARCHIVE_OUT : PATH_BACKUP_ARCHIVE, # Destination type + ($bAsync ? '' : "${strArchiveId}/") . $strDestinationFile, # Destination file + false, # Source is not compressed + $bArchiveFile && $bCompress, # Destination compress is configurable + undef, undef, undef, # Unused params + true, # Create path if it does not exist + undef, undef, # User and group + $bArchiveFile); # Append checksum if archive file + } } #################################################################################################################################### @@ -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); } - # Copy the archive file - $oFile->copy(PATH_DB_ABSOLUTE, $strArchiveFile, # Source file - PATH_BACKUP_ARCHIVE, $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 + # 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 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) diff --git a/lib/BackRest/ArchiveInfo.pm b/lib/BackRest/ArchiveInfo.pm new file mode 100644 index 000000000..eb3dbd420 --- /dev/null +++ b/lib/BackRest/ArchiveInfo.pm @@ -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; diff --git a/lib/BackRest/Backup.pm b/lib/BackRest/Backup.pm index 36f257624..bd52c807c 100644 --- a/lib/BackRest/Backup.pm +++ b/lib/BackRest/Backup.pm @@ -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,33 +275,17 @@ 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) - { - $oFile->link_create(PATH_BACKUP_TMP, $strBackupDestinationPath, - PATH_BACKUP_TMP, - 'base/pg_tblspc/' . $oBackupManifest->get(MANIFEST_SECTION_BACKUP_TABLESPACE, - $strTablespaceName, MANIFEST_SUBKEY_LINK), - false, true, true); - } - } - else + # Create links for tablespaces + if ($oBackupManifest->test(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_LINK) && $bFullCreate) { - confess &log(ASSERT, "cannot find type for path ${strPathKey}"); + $oFile->link_create(PATH_BACKUP_TMP, $strBackupDestinationPath, + PATH_BACKUP_TMP, + 'base/pg_tblspc/' . $oBackupManifest->get(MANIFEST_SECTION_BACKUP_PATH, + $strPathKey, MANIFEST_SUBKEY_LINK), + false, true, true); } # If this is a full backup or hard-linked then create all paths and links @@ -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, ''); - my $strVersion = $oBackupManifest->get(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_VERSION); + my $strVersion = $oBackupManifest->get(INI_SECTION_BACKREST, INI_KEY_VERSION); my $strAbortedType = ''; my $strAbortedPrior = ''; @@ -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, ''); - $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); } } } diff --git a/lib/BackRest/BackupCommon.pm b/lib/BackRest/BackupCommon.pm new file mode 100644 index 000000000..3f7fd725e --- /dev/null +++ b/lib/BackRest/BackupCommon.pm @@ -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; diff --git a/lib/BackRest/BackupFile.pm b/lib/BackRest/BackupFile.pm index da317d266..849b6357c 100644 --- a/lib/BackRest/BackupFile.pm +++ b/lib/BackRest/BackupFile.pm @@ -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 diff --git a/lib/BackRest/BackupInfo.pm b/lib/BackRest/BackupInfo.pm new file mode 100644 index 000000000..4d5071a8e --- /dev/null +++ b/lib/BackRest/BackupInfo.pm @@ -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; diff --git a/lib/BackRest/Config.pm b/lib/BackRest/Config.pm index 9a33bfb70..f64df0c4a 100644 --- a/lib/BackRest/Config.pm +++ b/lib/BackRest/Config.pm @@ -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); } } @@ -1291,15 +1355,21 @@ sub optionValid # Only look in the stanza section when $strSection = true if ($strSection eq CONFIG_SECTION_STANZA) { - $strValue = $$oConfig{optionGet(OPTION_STANZA)}{$strOption}; + if (optionTest(OPTION_STANZA)) + { + $strValue = $$oConfig{optionGet(OPTION_STANZA)}{$strOption}; + } } # Else do a full search else { # First check in the stanza section - $strValue = $oOptionRule{$strOption}{&OPTION_RULE_TYPE} eq OPTION_TYPE_HASH ? - $$oConfig{optionGet(OPTION_STANZA) . ":${strSection}"} : - $$oConfig{optionGet(OPTION_STANZA) . ":${strSection}"}{$strOption}; + 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)) @@ -1310,7 +1380,10 @@ sub optionValid if (defined($strInheritedSection)) { - $strValue = $$oConfig{optionGet(OPTION_STANZA) . ":${strInheritedSection}"}{$strOption}; + if (optionTest(OPTION_STANZA)) + { + $strValue = $$oConfig{optionGet(OPTION_STANZA) . ":${strInheritedSection}"}{$strOption}; + } } # Else check the global section @@ -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), diff --git a/lib/BackRest/Db.pm b/lib/BackRest/Db.pm index 39b27c0a0..80ae8b4ba 100644 --- a/lib/BackRest/Db.pm +++ b/lib/BackRest/Db.pm @@ -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 #################################################################################################################################### diff --git a/lib/BackRest/Exception.pm b/lib/BackRest/Exception.pm index 1aeef6240..a50bdb408 100644 --- a/lib/BackRest/Exception.pm +++ b/lib/BackRest/Exception.pm @@ -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; diff --git a/lib/BackRest/File.pm b/lib/BackRest/File.pm index d588bb470..fcac7293f 100644 --- a/lib/BackRest/File.pm +++ b/lib/BackRest/File.pm @@ -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); - - if ($strArchive !~ /^([0-F]){24}$/) - { - return "${strArchivePath}/${strFile}"; - } + return "${strArchivePath}/${strFile}"; } - $strArchivePath = $strArchivePath . (defined($strArchive) ? '/' . substr($strArchive, 0, 16) : '') . - (defined($strFile) ? '/' . $strFile : ''); + my $strArchive = substr(basename($strArchiveFile), 0, 24); + + if ($strArchive !~ /^([0-F]){24}$/) + { + return "${strArchivePath}/${strFile}"; + } + + $strArchivePath = "${strArchivePath}/${strArchiveId}/" . substr($strArchive, 0, 16) . "/${strArchiveFile}"; } else { diff --git a/lib/BackRest/Info.pm b/lib/BackRest/Info.pm new file mode 100644 index 000000000..465d482fb --- /dev/null +++ b/lib/BackRest/Info.pm @@ -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; diff --git a/lib/BackRest/Ini.pm b/lib/BackRest/Ini.pm new file mode 100644 index 000000000..0c154931d --- /dev/null +++ b/lib/BackRest/Ini.pm @@ -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; diff --git a/lib/BackRest/Lock.pm b/lib/BackRest/Lock.pm index f9e747c50..f59ebfc1a 100644 --- a/lib/BackRest/Lock.pm +++ b/lib/BackRest/Lock.pm @@ -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; #################################################################################################################################### diff --git a/lib/BackRest/Manifest.pm b/lib/BackRest/Manifest.pm index df3568315..e3e673333 100644 --- a/lib/BackRest/Manifest.pm +++ b/lib/BackRest/Manifest.pm @@ -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 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); } } diff --git a/lib/BackRest/Remote.pm b/lib/BackRest/Remote.pm index 30a73309e..601b77d74 100644 --- a/lib/BackRest/Remote.pm +++ b/lib/BackRest/Remote.pm @@ -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)) { diff --git a/lib/BackRest/Restore.pm b/lib/BackRest/Restore.pm index e9cdf9eea..e9c225276 100644 --- a/lib/BackRest/Restore.pm +++ b/lib/BackRest/Restore.pm @@ -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,57 +204,60 @@ 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)) { - my $strTablespaceKey = - $oManifest->get(MANIFEST_SECTION_BACKUP_TABLESPACE, $strTablespaceName, MANIFEST_SUBKEY_LINK); - my $strTablespaceLink = "pg_tblspc/${strTablespaceKey}"; - my $strTablespacePath = - $oManifest->get(MANIFEST_SECTION_BACKUP_PATH, MANIFEST_KEY_BASE) . "/${strTablespaceLink}"; + if ($oManifest->test(MANIFEST_SECTION_BACKUP_PATH, $strPathKey, MANIFEST_SUBKEY_LINK)) + { + my $strTablespaceKey = + $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, 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, - $oManifest->get('base:path', '.', MANIFEST_SUBKEY_GROUP)); - $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_USER, - $oManifest->get('base:path', '.', MANIFEST_SUBKEY_USER)); - $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_MODE, - $oManifest->get('base:path', '.', MANIFEST_SUBKEY_MODE)); + $oManifest->remove('base:link', $strTablespaceLink); + $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_GROUP, + $oManifest->get('base:path', '.', MANIFEST_SUBKEY_GROUP)); + $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_USER, + $oManifest->get('base:path', '.', MANIFEST_SUBKEY_USER)); + $oManifest->set('base:path', $strTablespaceLink, MANIFEST_SUBKEY_MODE, + $oManifest->get('base:path', '.', MANIFEST_SUBKEY_MODE)); - &log(INFO, "remapping tablespace ${strTablespaceKey} to ${strTablespacePath}"); + &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} = diff --git a/lib/BackRest/RestoreFile.pm b/lib/BackRest/RestoreFile.pm index c8a47df4a..b3d99b43b 100644 --- a/lib/BackRest/RestoreFile.pm +++ b/lib/BackRest/RestoreFile.pm @@ -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 diff --git a/lib/BackRest/ThreadGroup.pm b/lib/BackRest/ThreadGroup.pm index e18a5dbba..9c2d5eac9 100644 --- a/lib/BackRest/ThreadGroup.pm +++ b/lib/BackRest/ThreadGroup.pm @@ -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; diff --git a/lib/BackRest/Utility.pm b/lib/BackRest/Utility.pm index ca070ebe1..11d5e3982 100644 --- a/lib/BackRest/Utility.pm +++ b/lib/BackRest/Utility.pm @@ -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,17 +490,13 @@ sub log { if (!$bSuppressLog) { - print $strMessageFormat; + syswrite(*STDOUT, $strMessageFormat); } - if ($bTest && $strLevel eq TEST) + # 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) { - *STDOUT->flush(); - - if ($fTestDelay > 0) - { - hsleep($fTestDelay); - } + hsleep($fTestDelay); } } @@ -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 diff --git a/test/data/pg_control b/test/data/pg_control new file mode 100644 index 000000000..66eda35d0 Binary files /dev/null and b/test/data/pg_control differ diff --git a/test/lib/BackRestTest/BackupTest.pm b/test/lib/BackRestTest/BackupTest.pm index e0f075db0..6edbb7e17 100755 --- a/test/lib/BackRestTest/BackupTest.pm +++ b/test/lib/BackRestTest/BackupTest.pm @@ -11,25 +11,27 @@ use strict; use warnings FATAL => qw(all); use Carp qw(confess); +use DBI; +use Exporter qw(import); +use Fcntl ':mode'; use File::Basename; use File::Copy 'cp'; use File::stat; -use Fcntl ':mode'; use Time::HiRes qw(gettimeofday); -use DBI; use lib dirname($0) . '/../lib'; -use BackRest::Exception; -use BackRest::Utility; -use BackRest::Config; -use BackRest::Manifest; -use BackRest::File; -use BackRest::Remote; use BackRest::Archive; +use BackRest::ArchiveInfo; +use BackRest::Config; +use BackRest::Exception; +use BackRest::File; +use BackRest::Ini; +use BackRest::Manifest; +use BackRest::Remote; +use BackRest::Utility; use BackRestTest::CommonTest; -use Exporter qw(import); our @EXPORT = qw(BackRestTestBackup_Test BackRestTestBackup_Create BackRestTestBackup_Drop BackRestTestBackup_ClusterStop BackRestTestBackup_PgSelectOne BackRestTestBackup_PgExecute); @@ -453,7 +455,8 @@ sub BackRestTestBackup_PathCreate my $strMode = shift; # Create final file location - my $strFinalPath = ${$oManifestRef}{'backup:path'}{$strPath} . (defined($strSubPath) ? "/${strSubPath}" : ''); + my $strFinalPath = ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strPath}{&MANIFEST_SUBKEY_PATH} . + (defined($strSubPath) ? "/${strSubPath}" : ''); # Create the path if (!(-e $strFinalPath)) @@ -477,7 +480,8 @@ sub BackRestTestBackup_PathMode my $strMode = shift; # Create final file location - my $strFinalPath = ${$oManifestRef}{'backup:path'}{$strPath} . (defined($strSubPath) ? "/${strSubPath}" : ''); + my $strFinalPath = ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strPath}{&MANIFEST_SUBKEY_PATH} . + (defined($strSubPath) ? "/${strSubPath}" : ''); BackRestTestCommon_PathMode($strFinalPath, $strMode); @@ -511,9 +515,11 @@ sub BackRestTestBackup_ManifestPathCreate my $strManifestPath = defined($strSubPath) ? $strSubPath : '.'; # Load file into manifest - ${$oManifestRef}{"${strPath}:path"}{$strManifestPath}{group} = getgrgid($oStat->gid); - ${$oManifestRef}{"${strPath}:path"}{$strManifestPath}{user} = getpwuid($oStat->uid); - ${$oManifestRef}{"${strPath}:path"}{$strManifestPath}{mode} = sprintf('%04o', S_IMODE($oStat->mode)); + my $strSection = "${strPath}:" . MANIFEST_PATH; + + ${$oManifestRef}{$strSection}{$strManifestPath}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); + ${$oManifestRef}{$strSection}{$strManifestPath}{&MANIFEST_SUBKEY_USER} = getpwuid($oStat->uid); + ${$oManifestRef}{$strSection}{$strManifestPath}{&MANIFEST_SUBKEY_MODE} = sprintf('%04o', S_IMODE($oStat->mode)); } #################################################################################################################################### @@ -528,7 +534,8 @@ sub BackRestTestBackup_PathRemove my $strSubPath = shift; # Create final file location - my $strFinalPath = ${$oManifestRef}{'backup:path'}{$strPath} . (defined($strSubPath) ? "/${strSubPath}" : ''); + my $strFinalPath = ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strPath}{&MANIFEST_SUBKEY_PATH} . + (defined($strSubPath) ? "/${strSubPath}" : ''); # Create the path BackRestTestCommon_PathRemove($strFinalPath); @@ -550,12 +557,6 @@ sub BackRestTestBackup_ManifestTablespaceCreate # Create final file location my $strPath = BackRestTestCommon_DbTablespacePathGet($iOid); - # Create the path - # if (!(-e $strPath)) - # { - # BackRestTestCommon_PathCreate($strPath, $strMode); - # } - # Stat the path my $oStat = lstat($strPath); @@ -566,12 +567,14 @@ sub BackRestTestBackup_ManifestTablespaceCreate } # Load path into manifest - ${$oManifestRef}{"tablespace:${iOid}:path"}{'.'}{group} = getgrgid($oStat->gid); - ${$oManifestRef}{"tablespace:${iOid}:path"}{'.'}{user} = getpwuid($oStat->uid); - ${$oManifestRef}{"tablespace:${iOid}:path"}{'.'}{mode} = sprintf('%04o', S_IMODE($oStat->mode)); + my $strSection = MANIFEST_TABLESPACE . "/${iOid}:" . MANIFEST_PATH; + + ${$oManifestRef}{$strSection}{'.'}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); + ${$oManifestRef}{$strSection}{'.'}{&MANIFEST_SUBKEY_USER} = getpwuid($oStat->uid); + ${$oManifestRef}{$strSection}{'.'}{&MANIFEST_SUBKEY_MODE} = sprintf('%04o', S_IMODE($oStat->mode)); # Create the link in pg_tblspc - my $strLink = BackRestTestCommon_DbCommonPathGet() . "/pg_tblspc/${iOid}"; + my $strLink = BackRestTestCommon_DbCommonPathGet() . '/' . PATH_PG_TBLSPC . "/${iOid}"; symlink($strPath, $strLink) or confess "unable to link ${strLink} to ${strPath}"; @@ -586,15 +589,17 @@ sub BackRestTestBackup_ManifestTablespaceCreate } # Load link into the manifest - ${$oManifestRef}{"base:link"}{"pg_tblspc/${iOid}"}{group} = getgrgid($oStat->gid); - ${$oManifestRef}{"base:link"}{"pg_tblspc/${iOid}"}{user} = getpwuid($oStat->uid); - ${$oManifestRef}{"base:link"}{"pg_tblspc/${iOid}"}{link_destination} = $strPath; + $strSection = MANIFEST_KEY_BASE . ':' . MANIFEST_LINK; + + ${$oManifestRef}{$strSection}{"pg_tblspc/${iOid}"}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); + ${$oManifestRef}{$strSection}{"pg_tblspc/${iOid}"}{&MANIFEST_SUBKEY_USER} = getpwuid($oStat->uid); + ${$oManifestRef}{$strSection}{"pg_tblspc/${iOid}"}{&MANIFEST_SUBKEY_DESTINATION} = $strPath; # Load tablespace into the manifest - ${$oManifestRef}{"backup:tablespace"}{$iOid}{link} = $iOid; - ${$oManifestRef}{"backup:tablespace"}{$iOid}{path} = $strPath; + $strSection = MANIFEST_TABLESPACE . "/${iOid}"; - ${$oManifestRef}{"backup:path"}{"tablespace:${iOid}"} = $strPath; + ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strSection}{&MANIFEST_SUBKEY_PATH} = $strPath; + ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strSection}{&MANIFEST_SUBKEY_LINK} = $iOid; } #################################################################################################################################### @@ -609,17 +614,16 @@ sub BackRestTestBackup_ManifestTablespaceDrop my $iIndex = shift; # Remove tablespace path/file/link from manifest - delete(${$oManifestRef}{"tablespace:${iOid}:path"}); - delete(${$oManifestRef}{"tablespace:${iOid}:link"}); - delete(${$oManifestRef}{"tablespace:${iOid}:file"}); + delete(${$oManifestRef}{MANIFEST_TABLESPACE . "/${iOid}:" . MANIFEST_PATH}); + delete(${$oManifestRef}{MANIFEST_TABLESPACE . "/${iOid}:" . MANIFEST_LINK}); + delete(${$oManifestRef}{MANIFEST_TABLESPACE . "/${iOid}:" . MANIFEST_FILE}); # Drop the link in pg_tblspc - BackRestTestCommon_FileRemove(BackRestTestCommon_DbCommonPathGet($iIndex) . "/pg_tblspc/${iOid}"); + BackRestTestCommon_FileRemove(BackRestTestCommon_DbCommonPathGet($iIndex) . '/' . PATH_PG_TBLSPC . "/${iOid}"); # Remove tablespace rom manifest - delete(${$oManifestRef}{"base:link"}{"pg_tblspc/${iOid}"}); - delete(${$oManifestRef}{"backup:tablespace"}{$iOid}); - delete(${$oManifestRef}{"backup:path"}{"tablespace:${iOid}"}); + delete(${$oManifestRef}{MANIFEST_KEY_BASE . ':' . MANIFEST_LINK}{PATH_PG_TBLSPC . "/${iOid}"}); + delete(${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{MANIFEST_TABLESPACE . "/${iOid}"}); } #################################################################################################################################### @@ -637,7 +641,7 @@ sub BackRestTestBackup_FileCreate my $strMode = shift; # Create actual file location - my $strPathFile = ${$oManifestRef}{'backup:path'}{$strPath} . "/${strFile}"; + my $strPathFile = ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strPath}{&MANIFEST_SUBKEY_PATH} . "/${strFile}"; # Create the file BackRestTestCommon_FileCreate($strPathFile, $strContent, $lTime, $strMode); @@ -674,16 +678,18 @@ sub BackRestTestBackup_ManifestFileCreate } # Load file into manifest - ${$oManifestRef}{"${strPath}:file"}{$strFile}{group} = getgrgid($oStat->gid); - ${$oManifestRef}{"${strPath}:file"}{$strFile}{user} = getpwuid($oStat->uid); - ${$oManifestRef}{"${strPath}:file"}{$strFile}{mode} = sprintf('%04o', S_IMODE($oStat->mode)); - ${$oManifestRef}{"${strPath}:file"}{$strFile}{modification_time} = $oStat->mtime; - ${$oManifestRef}{"${strPath}:file"}{$strFile}{size} = $oStat->size; - delete(${$oManifestRef}{"${strPath}:file"}{$strFile}{reference}); + my $strSection = "${strPath}:" . MANIFEST_FILE; + + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_USER} = getpwuid($oStat->uid); + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_MODE} = sprintf('%04o', S_IMODE($oStat->mode)); + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_TIMESTAMP} = $oStat->mtime; + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_SIZE} = $oStat->size; + delete(${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_REFERENCE}); if (defined($strChecksum)) { - ${$oManifestRef}{"${strPath}:file"}{$strFile}{checksum} = $strChecksum; + ${$oManifestRef}{$strSection}{$strFile}{checksum} = $strChecksum; } } @@ -700,7 +706,7 @@ sub BackRestTestBackup_FileRemove my $bIgnoreMissing = shift; # Create actual file location - my $strPathFile = ${$oManifestRef}{'backup:path'}{$strPath} . "/${strFile}"; + my $strPathFile = ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strPath}{&MANIFEST_SUBKEY_PATH} . "/${strFile}"; # Remove the file if (!(defined($bIgnoreMissing) && $bIgnoreMissing && !(-e $strPathFile))) @@ -723,13 +729,13 @@ sub BackRestTestBackup_ManifestFileRemove my $strFile = shift; # Create actual file location - my $strPathFile = ${$oManifestRef}{'backup:path'}{$strPath} . "/${strFile}"; + my $strPathFile = ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strPath}{&MANIFEST_SUBKEY_PATH} . "/${strFile}"; # Remove the file BackRestTestBackup_FileRemove($oManifestRef, $strPath, $strFile, true); # Remove from manifest - delete(${$oManifestRef}{"${strPath}:file"}{$strFile}); + delete(${$oManifestRef}{"${strPath}:" . MANIFEST_FILE}{$strFile}); } #################################################################################################################################### @@ -746,16 +752,13 @@ sub BackRestTestBackup_ManifestReference # Set prior backup if (defined($strReference)) { - ${$oManifestRef}{backup}{prior} = $strReference; + ${$oManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_PRIOR} = $strReference; } else { - delete(${$oManifestRef}{backup}{prior}); + delete(${$oManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_PRIOR}); } - # Clear the reference list - delete(${$oManifestRef}{backup}{reference}); - # Find all file sections foreach my $strSectionFile (sort(keys $oManifestRef)) { @@ -769,19 +772,19 @@ sub BackRestTestBackup_ManifestReference { if (!defined($strReference)) { - delete(${$oManifestRef}{$strSectionFile}{$strFile}{reference}); + delete(${$oManifestRef}{$strSectionFile}{$strFile}{&MANIFEST_SUBKEY_REFERENCE}); } elsif (defined($bClear) && $bClear) { - if (defined(${$oManifestRef}{$strSectionFile}{$strFile}{reference}) && - ${$oManifestRef}{$strSectionFile}{$strFile}{reference} ne $strReference) + if (defined(${$oManifestRef}{$strSectionFile}{$strFile}{&MANIFEST_SUBKEY_REFERENCE}) && + ${$oManifestRef}{$strSectionFile}{$strFile}{&MANIFEST_SUBKEY_REFERENCE} ne $strReference) { - delete(${$oManifestRef}{$strSectionFile}{$strFile}{reference}); + delete(${$oManifestRef}{$strSectionFile}{$strFile}{&MANIFEST_SUBKEY_REFERENCE}); } } - elsif (!defined(${$oManifestRef}{$strSectionFile}{$strFile}{reference})) + elsif (!defined(${$oManifestRef}{$strSectionFile}{$strFile}{&MANIFEST_SUBKEY_REFERENCE})) { - ${$oManifestRef}{$strSectionFile}{$strFile}{reference} = $strReference; + ${$oManifestRef}{$strSectionFile}{$strFile}{&MANIFEST_SUBKEY_REFERENCE} = $strReference; } } } @@ -800,7 +803,7 @@ sub BackRestTestBackup_LinkCreate my $strDestination = shift; # Create actual file location - my $strPathFile = ${$oManifestRef}{'backup:path'}{$strPath} . "/${strFile}"; + my $strPathFile = ${$oManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strPath}{&MANIFEST_SUBKEY_PATH} . "/${strFile}"; # Create the file symlink($strDestination, $strPathFile) @@ -863,9 +866,11 @@ sub BackRestTestBackup_ManifestLinkCreate } # Load file into manifest - ${$oManifestRef}{"${strPath}:link"}{$strFile}{group} = getgrgid($oStat->gid); - ${$oManifestRef}{"${strPath}:link"}{$strFile}{user} = getpwuid($oStat->uid); - ${$oManifestRef}{"${strPath}:link"}{$strFile}{link_destination} = $strDestination; + my $strSection = "${strPath}:" . MANIFEST_LINK; + + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_GROUP} = getgrgid($oStat->gid); + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_USER} = getpwuid($oStat->uid); + ${$oManifestRef}{$strSection}{$strFile}{&MANIFEST_SUBKEY_DESTINATION} = $strDestination; } #################################################################################################################################### @@ -877,12 +882,12 @@ sub BackRestTestBackup_LastBackup my @stryBackup = $oFile->list(PATH_BACKUP_CLUSTER, undef, undef, 'reverse'); - if (!defined($stryBackup[1])) + if (!defined($stryBackup[2])) { confess 'no backup was found'; } - return $stryBackup[1]; + return $stryBackup[2]; } #################################################################################################################################### @@ -922,6 +927,7 @@ sub BackRestTestBackup_BackupBegin sub BackRestTestBackup_BackupEnd { my $strType = shift; + my $strStanza = shift; my $oFile = shift; my $bRemote = shift; my $strBackup = shift; @@ -936,7 +942,7 @@ sub BackRestTestBackup_BackupEnd return undef; } - ${$oExpectedManifestRef}{backup}{type} = $strType; + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TYPE} = $strType; if (!defined($strBackup)) { @@ -948,6 +954,18 @@ sub BackRestTestBackup_BackupEnd BackRestTestBackup_BackupCompare($oFile, $bRemote, $strBackup, $oExpectedManifestRef); } + BackRestTestCommon_TestLogAppendFile(BackRestTestCommon_DbPathGet() . "/pg_backrest.conf", $bRemote); + + if ($bRemote) + { + BackRestTestCommon_TestLogAppendFile(BackRestTestCommon_RepoPathGet() . "/pg_backrest.conf", $bRemote); + } + + BackRestTestCommon_TestLogAppendFile(BackRestTestCommon_RepoPathGet() . + "/backup/${strStanza}/${strBackup}/backup.manifest", $bRemote); + BackRestTestCommon_TestLogAppendFile(BackRestTestCommon_RepoPathGet() . + "/backup/${strStanza}/backup.info", $bRemote); + return $strBackup; } @@ -975,7 +993,8 @@ sub BackRestTestBackup_BackupSynthetic BackRestTestCommon_ExecuteEnd($strTestPoint); } - return BackRestTestBackup_BackupEnd($strType, $oFile, $bRemote, undef, $oExpectedManifestRef, true, $iExpectedExitStatus); + return BackRestTestBackup_BackupEnd($strType, $strStanza, $oFile, $bRemote, undef, $oExpectedManifestRef, true, + $iExpectedExitStatus); } #################################################################################################################################### @@ -999,7 +1018,28 @@ sub BackRestTestBackup_Backup BackRestTestCommon_ExecuteEnd($strTestPoint); } - return BackRestTestBackup_BackupEnd($strType, $oFile, $bRemote, undef, undef, false, $iExpectedExitStatus); + return BackRestTestBackup_BackupEnd($strType, $strStanza, $oFile, $bRemote, undef, undef, false, $iExpectedExitStatus); +} + +#################################################################################################################################### +# BackRestTestBackup_Info +#################################################################################################################################### +sub BackRestTestBackup_Info +{ + my $strStanza = shift; + my $strOutput = shift; + my $bRemote = shift; + my $strComment = shift; + + $strComment = "info" . (defined($strStanza) ? " ${strStanza}" : ''); + &log(INFO, " $strComment"); + + BackRestTestCommon_Execute(($bRemote ? BackRestTestCommon_CommandMainAbsGet() : BackRestTestCommon_CommandMainGet()) . + ' --config=' . + ($bRemote ? BackRestTestCommon_RepoPathGet() : BackRestTestCommon_DbPathGet()) . + '/pg_backrest.conf' . (defined($strStanza) ? " --stanza=${strStanza}" : '') . ' info' . + (defined($strOutput) ? " --output=${strOutput}" : ''), + $bRemote, undef, undef, undef, $strComment); } #################################################################################################################################### @@ -1012,40 +1052,7 @@ sub BackRestTestBackup_BackupCompare my $strBackup = shift; my $oExpectedManifestRef = shift; - ${$oExpectedManifestRef}{backup}{label} = $strBackup; - - # Remove old reference list - delete(${$oExpectedManifestRef}{backup}{reference}); - - # Build the new reference list - foreach my $strSectionFile (sort(keys $oExpectedManifestRef)) - { - # Skip non-file sections - if ($strSectionFile !~ /\:file$/) - { - next; - } - - foreach my $strFile (sort(keys ${$oExpectedManifestRef}{$strSectionFile})) - { - if (defined(${$oExpectedManifestRef}{$strSectionFile}{$strFile}{reference})) - { - my $strFileReference = ${$oExpectedManifestRef}{$strSectionFile}{$strFile}{reference}; - - if (!defined(${$oExpectedManifestRef}{backup}{reference})) - { - ${$oExpectedManifestRef}{backup}{reference} = $strFileReference; - } - else - { - if (${$oExpectedManifestRef}{backup}{reference} !~ /^$strFileReference|,$strFileReference/) - { - ${$oExpectedManifestRef}{backup}{reference} .= ",${strFileReference}"; - } - } - } - } - } + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_LABEL} = $strBackup; # Change mode on the backup path so it can be read if ($bRemote) @@ -1054,18 +1061,22 @@ sub BackRestTestBackup_BackupCompare } my %oActualManifest; - ini_load($oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/backup.manifest', \%oActualManifest); + iniLoad($oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/' . FILE_MANIFEST, \%oActualManifest); - ${$oExpectedManifestRef}{backup}{'timestamp-start'} = $oActualManifest{backup}{'timestamp-start'}; - ${$oExpectedManifestRef}{backup}{'timestamp-stop'} = $oActualManifest{backup}{'timestamp-stop'}; - ${$oExpectedManifestRef}{backup}{'timestamp-copy-start'} = $oActualManifest{backup}{'timestamp-copy-start'}; - ${$oExpectedManifestRef}{backup}{'checksum'} = $oActualManifest{backup}{'checksum'}; - ${$oExpectedManifestRef}{backup}{format} = FORMAT; + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_START} = + $oActualManifest{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_START}; + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_STOP} = + $oActualManifest{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_STOP}; + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_COPY_START} = + $oActualManifest{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_COPY_START}; + ${$oExpectedManifestRef}{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = + $oActualManifest{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM}; + ${$oExpectedManifestRef}{&INI_SECTION_BACKREST}{&INI_KEY_FORMAT} = FORMAT + 0; my $strTestPath = BackRestTestCommon_TestPathGet(); - ini_save("${strTestPath}/actual.manifest", \%oActualManifest); - ini_save("${strTestPath}/expected.manifest", $oExpectedManifestRef); + iniSave("${strTestPath}/actual.manifest", \%oActualManifest); + iniSave("${strTestPath}/expected.manifest", $oExpectedManifestRef); BackRestTestCommon_Execute("diff ${strTestPath}/expected.manifest ${strTestPath}/actual.manifest"); @@ -1105,12 +1116,12 @@ sub BackRestTestBackup_ManifestMunge if ($bRemote) { BackRestTestCommon_Execute('chmod 750 ' . BackRestTestCommon_RepoPathGet(), true); - BackRestTestCommon_Execute('chmod 770 ' . $oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/backup.manifest', true); + BackRestTestCommon_Execute('chmod 770 ' . $oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/' . FILE_MANIFEST, true); } # Read the manifest my %oManifest; - ini_load($oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/backup.manifest', \%oManifest); + iniLoad($oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/' . FILE_MANIFEST, \%oManifest); # Write in the munged value if (defined($strSubKey)) @@ -1137,57 +1148,22 @@ sub BackRestTestBackup_ManifestMunge } # Remove the old checksum - delete($oManifest{backup}{checksum}); + delete($oManifest{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM}); my $oSHA = Digest::SHA->new('sha1'); - - # Calculate the checksum from manifest values - foreach my $strSection (sort(keys(%oManifest))) - { - $oSHA->add($strSection); - - foreach my $strKey (sort(keys($oManifest{$strSection}))) - { - $oSHA->add($strKey); - - my $strValue = $oManifest{$strSection}{$strKey}; - - if (!defined($strValue)) - { - confess &log(ASSERT, "section ${strSection}, key ${$strKey} has undef value"); - } - - if (ref($strValue) eq "HASH") - { - foreach my $strSubKey (sort(keys($oManifest{$strSection}{$strKey}))) - { - my $strSubValue = $oManifest{$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); - } - } - } + my $oJSON = JSON::PP->new()->canonical()->allow_nonref(); + $oSHA->add($oJSON->encode(\%oManifest)); # Set the new checksum - $oManifest{backup}{checksum} = $oSHA->hexdigest(); + $oManifest{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM} = $oSHA->hexdigest(); # Resave the manifest - ini_save($oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/backup.manifest', \%oManifest); + iniSave($oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/' . FILE_MANIFEST, \%oManifest); # Change mode on the backup path back before unit tests continue if ($bRemote) { - BackRestTestCommon_Execute('chmod 750 ' . $oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/backup.manifest', true); + BackRestTestCommon_Execute('chmod 750 ' . $oFile->path_get(PATH_BACKUP_CLUSTER, $strBackup) . '/' . FILE_MANIFEST, true); BackRestTestCommon_Execute('chmod 700 ' . BackRestTestCommon_RepoPathGet(), true); } } @@ -1248,7 +1224,7 @@ sub BackRestTestBackup_Restore my $oExpectedManifest = new BackRest::Manifest(BackRestTestCommon_RepoPathGet() . "/backup/${strStanza}/${strBackup}/backup.manifest", true); - $oExpectedManifestRef = $oExpectedManifest->{oManifest}; + $oExpectedManifestRef = $oExpectedManifest->{oContent}; # Change mode on the backup path back before unit tests continue if ($bRemote) @@ -1305,7 +1281,7 @@ sub BackRestTestBackup_RestoreCompare # Load the last manifest if it exists my $oLastManifest = undef; - if (defined(${$oExpectedManifestRef}{'backup'}{'prior'})) + if (defined(${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_PRIOR})) { # Change mode on the backup path so it can be read if ($bRemote) @@ -1314,11 +1290,12 @@ sub BackRestTestBackup_RestoreCompare } my $oExpectedManifest = new BackRest::Manifest(BackRestTestCommon_RepoPathGet() . - "/backup/${strStanza}/${strBackup}/backup.manifest", true); + "/backup/${strStanza}/${strBackup}/" . FILE_MANIFEST, true); $oLastManifest = new BackRest::Manifest(BackRestTestCommon_RepoPathGet() . - "/backup/${strStanza}/" . ${$oExpectedManifestRef}{'backup'}{'prior'} . - '/backup.manifest', true); + "/backup/${strStanza}/" . + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_PRIOR} . + '/' . FILE_MANIFEST, true); # Change mode on the backup path back before unit tests continue if ($bRemote) @@ -1330,32 +1307,37 @@ sub BackRestTestBackup_RestoreCompare # Generate the tablespace map for real backups my $oTablespaceMap = undef; - # ${$oTablespaceMapRef}{oid}{$strName}{name} = $strName; - if (!$bSynthetic && defined(${$oExpectedManifestRef}{'backup:tablespace'})) + if (!$bSynthetic) { - foreach my $strTablespaceName (keys(${$oExpectedManifestRef}{'backup:tablespace'})) + foreach my $strTablespaceName (keys(${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_PATH})) { - my $strTablespaceOid = ${$oExpectedManifestRef}{'backup:tablespace'}{$strTablespaceName}{link}; + if (defined(${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strTablespaceName}{&MANIFEST_SUBKEY_LINK})) + { + my $strTablespaceOid = + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{$strTablespaceName}{&MANIFEST_SUBKEY_LINK}; - $$oTablespaceMap{oid}{$strTablespaceOid}{name} = $strTablespaceName; + $$oTablespaceMap{oid}{$strTablespaceOid}{name} = (split('/', $strTablespaceName))[1]; + } } } # Generate the actual manifest - my $oActualManifest = new BackRest::Manifest("${strTestPath}/actual.manifest", false); + my $oActualManifest = new BackRest::Manifest("${strTestPath}/" . FILE_MANIFEST, false); my $oTablespaceMapRef = undef; - $oActualManifest->build($oFile, ${$oExpectedManifestRef}{'backup:path'}{'base'}, $oLastManifest, true, $oTablespaceMap); + $oActualManifest->build($oFile, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_PATH}{&MANIFEST_KEY_BASE}{&MANIFEST_SUBKEY_PATH}, + $oLastManifest, true, $oTablespaceMap); # Generate checksums for all files if required # Also fudge size if this is a synthetic test - sizes may change during backup. - foreach my $strSectionPathKey ($oActualManifest->keys('backup:path')) + foreach my $strSectionPathKey ($oActualManifest->keys(MANIFEST_SECTION_BACKUP_PATH)) { - my $strSectionPath = $oActualManifest->get('backup:path', $strSectionPathKey); + my $strSectionPath = $oActualManifest->get(MANIFEST_SECTION_BACKUP_PATH, $strSectionPathKey, MANIFEST_SUBKEY_PATH); # Create all paths in the manifest that do not already exist - my $strSection = "${strSectionPathKey}:file"; + my $strSection = "${strSectionPathKey}:" . MANIFEST_FILE; if ($oActualManifest->test($strSection)) { @@ -1363,12 +1345,13 @@ sub BackRestTestBackup_RestoreCompare { if (!$bSynthetic) { - $oActualManifest->set($strSection, $strName, 'size', ${$oExpectedManifestRef}{$strSection}{$strName}{size}); + $oActualManifest->set($strSection, $strName, MANIFEST_SUBKEY_SIZE, + ${$oExpectedManifestRef}{$strSection}{$strName}{size}); } - if ($oActualManifest->get($strSection, $strName, 'size') != 0) + if ($oActualManifest->get($strSection, $strName, MANIFEST_SUBKEY_SIZE) != 0) { - $oActualManifest->set($strSection, $strName, 'checksum', + $oActualManifest->set($strSection, $strName, MANIFEST_SUBKEY_CHECKSUM, $oFile->hash(PATH_DB_ABSOLUTE, "${strSectionPath}/${strName}")); } } @@ -1376,36 +1359,51 @@ sub BackRestTestBackup_RestoreCompare } # Set actual to expected for settings that always change from backup to backup + $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_CHECK, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ARCHIVE_CHECK}); + $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_ARCHIVE_COPY, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ARCHIVE_COPY}); $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_COMPRESS, undef, - ${$oExpectedManifestRef}{'backup:option'}{compress}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS}); $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_HARDLINK, undef, - ${$oExpectedManifestRef}{'backup:option'}{hardlink}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_HARDLINK}); + $oActualManifest->set(MANIFEST_SECTION_BACKUP_OPTION, MANIFEST_KEY_START_STOP, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_START_STOP}); - $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_VERSION, undef, - ${$oExpectedManifestRef}{'backup'}{version}); + $oActualManifest->set(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_DB_VERSION, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_DB_VERSION}); + $oActualManifest->setNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CONTROL, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_CONTROL}); + $oActualManifest->setNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_CATALOG, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_CATALOG}); + $oActualManifest->setNumeric(MANIFEST_SECTION_BACKUP_DB, MANIFEST_KEY_SYSTEM_ID, undef, + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_SYSTEM_ID}); + + $oActualManifest->set(INI_SECTION_BACKREST, INI_KEY_VERSION, undef, + ${$oExpectedManifestRef}{&INI_SECTION_BACKREST}{&INI_KEY_VERSION}); $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_COPY_START, undef, - ${$oExpectedManifestRef}{'backup'}{'timestamp-copy-start'}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_COPY_START}); $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_START, undef, - ${$oExpectedManifestRef}{'backup'}{'timestamp-start'}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_START}); $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TIMESTAMP_STOP, undef, - ${$oExpectedManifestRef}{'backup'}{'timestamp-stop'}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TIMESTAMP_STOP}); $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_LABEL, undef, - ${$oExpectedManifestRef}{'backup'}{'label'}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_LABEL}); $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_TYPE, undef, - ${$oExpectedManifestRef}{'backup'}{'type'}); - $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_CHECKSUM, undef, - ${$oExpectedManifestRef}{'backup'}{'checksum'}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_TYPE}); + $oActualManifest->set(INI_SECTION_BACKREST, INI_KEY_CHECKSUM, undef, + ${$oExpectedManifestRef}{&INI_SECTION_BACKREST}{&INI_KEY_CHECKSUM}); if (!$bSynthetic) { $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_START, undef, - ${$oExpectedManifestRef}{'backup'}{'archive-start'}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_ARCHIVE_START}); $oActualManifest->set(MANIFEST_SECTION_BACKUP, MANIFEST_KEY_ARCHIVE_STOP, undef, - ${$oExpectedManifestRef}{'backup'}{'archive-stop'}); + ${$oExpectedManifestRef}{&MANIFEST_SECTION_BACKUP}{&MANIFEST_KEY_ARCHIVE_STOP}); } - ini_save("${strTestPath}/actual.manifest", $oActualManifest->{oManifest}); - ini_save("${strTestPath}/expected.manifest", $oExpectedManifestRef); + iniSave("${strTestPath}/actual.manifest", $oActualManifest->{oContent}); + iniSave("${strTestPath}/expected.manifest", $oExpectedManifestRef); BackRestTestCommon_Execute("diff ${strTestPath}/expected.manifest ${strTestPath}/actual.manifest"); @@ -1458,13 +1456,16 @@ sub BackRestTestBackup_Expire } # Check that the correct archive logs were expired - my @stryArchiveActual = $oFile->list(PATH_BACKUP_ARCHIVE, '0000000100000000'); + my @stryArchiveActual = $oFile->list(PATH_BACKUP_ARCHIVE, BackRestTestCommon_DbVersion() . '-1/0000000100000000'); if (join(",", @stryArchiveActual) ne join(",", @{$stryArchiveExpectedRef})) { confess "expected archive list:\n " . join("\n ", @{$stryArchiveExpectedRef}) . "\n\nbut actual was:\n " . join("\n ", @stryArchiveActual) . "\n"; } + + BackRestTestCommon_TestLogAppendFile(BackRestTestCommon_RepoPathGet() . + "/backup/${strStanza}/backup.info", false); } #################################################################################################################################### @@ -1628,22 +1629,22 @@ sub BackRestTestBackup_Test my $strInfoFile = $oFile->path_get(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE); my %oInfo; BackRestTestCommon_iniLoad($strInfoFile, \%oInfo, $bRemote); - my $strDbVersion = $oInfo{database}{version}; - my $ullDbSysId = $oInfo{database}{'system-id'}; + my $strDbVersion = $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_VERSION}; + my $ullDbSysId = $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_SYSTEM_ID}; # Break the database version - $oInfo{database}{version} = '8.0'; - BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote); + $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_VERSION} = '8.0'; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); &log(INFO, ' test db version mismatch error'); BackRestTestCommon_Execute($strCommand . " ${strSourceFile}", undef, undef, undef, ERROR_ARCHIVE_MISMATCH); - # Break the database version - $oInfo{database}{version} = $strDbVersion; - $oInfo{database}{'system-id'} = '5000900090001855000'; - BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote); + # Break the system id + $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_VERSION} = $strDbVersion; + $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_SYSTEM_ID} = '5000900090001855000'; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); &log(INFO, ' test db system-id mismatch error'); @@ -1651,8 +1652,8 @@ sub BackRestTestBackup_Test ERROR_ARCHIVE_MISMATCH); # Move settings back to original - $oInfo{database}{'system-id'} = $ullDbSysId; - BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote); + $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_SYSTEM_ID} = $ullDbSysId; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); # Should succeed because checksum is the same &log(INFO, ' test archive duplicate ok'); @@ -1684,7 +1685,7 @@ sub BackRestTestBackup_Test } # Build the archive name to check for at the destination - my $strArchiveCheck = "${strArchiveFile}-${strArchiveChecksum}"; + my $strArchiveCheck = "9.3-1/${strArchiveFile}-${strArchiveChecksum}"; if ($bCompress) { @@ -1697,16 +1698,19 @@ sub BackRestTestBackup_Test if (!$oFile->exists(PATH_BACKUP_ARCHIVE, $strArchiveCheck)) { - confess 'unable to find ' . $oFile->path_get(PATH_BACKUP_ARCHIVE, $strArchiveCheck); + confess 'unable to find ' . $strArchiveCheck; } } } # !!! Need to put in tests for .backup files here } + + BackRestTestCommon_TestLogAppendFile($oFile->path_get(PATH_BACKUP_ARCHIVE) . '/archive.info', $bRemote); } } + $bCreate = true; } @@ -1717,7 +1721,6 @@ sub BackRestTestBackup_Test } } - #------------------------------------------------------------------------------------------------------------------------------- # Test archive-stop #------------------------------------------------------------------------------------------------------------------------------- @@ -1804,14 +1807,14 @@ sub BackRestTestBackup_Test my $strInfoFile = $oFile->path_get(PATH_BACKUP_ARCHIVE, ARCHIVE_INFO_FILE); my %oInfo; BackRestTestCommon_iniLoad($strInfoFile, \%oInfo, $bRemote); - my $strDbVersion = $oInfo{database}{version}; - my $ullDbSysId = $oInfo{database}{'system-id'}; + my $strDbVersion = $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_VERSION}; + my $ullDbSysId = $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_SYSTEM_ID}; # Break the database version if ($iError == 0) { - $oInfo{database}{version} = '8.0'; - BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote); + $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_VERSION} = '8.0'; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); } # Push two more segments with errors to exceed archive-max-mb @@ -1827,8 +1830,8 @@ sub BackRestTestBackup_Test # Fix the database version if ($iError == 0) { - $oInfo{database}{version} = '9.3'; - BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote); + $oInfo{&INFO_ARCHIVE_SECTION_DB}{&INFO_ARCHIVE_KEY_DB_VERSION} = '9.3'; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); } # Remove the stop file @@ -1911,6 +1914,22 @@ sub BackRestTestBackup_Test my $strCommand = BackRestTestCommon_CommandMainGet() . ' --config=' . BackRestTestCommon_DbPathGet() . '/pg_backrest.conf --stanza=db archive-get'; + + # Create the archive info file + if ($bRemote) + { + BackRestTestCommon_Execute("chmod g+r,g+x " . BackRestTestCommon_RepoPathGet(), $bRemote); + } + + BackRestTestCommon_Execute('mkdir -p -m 770 ' . $oFile->path_get(PATH_BACKUP_ARCHIVE), $bRemote); + (new BackRest::ArchiveInfo($oFile->path_get(PATH_BACKUP_ARCHIVE)))->check('9.3', 6969); + BackRestTestCommon_TestLogAppendFile($oFile->path_get(PATH_BACKUP_ARCHIVE) . '/archive.info', $bRemote); + + if ($bRemote) + { + BackRestTestCommon_Execute("chmod g-r,g-x " . BackRestTestCommon_RepoPathGet(), $bRemote); + } + if ($bExists) { # Loop through archive files @@ -1936,12 +1955,12 @@ sub BackRestTestBackup_Test $strSourceFile .= '.gz'; } - $oFile->copy(PATH_DB_ABSOLUTE, $strArchiveTestFile, # Source file - PATH_BACKUP_ARCHIVE, $strSourceFile, # Destination file - false, # Source is not compressed - $bCompress, # Destination compress based on test - undef, undef, undef, # Unused params - true); # Create path if it does not exist + $oFile->copy(PATH_DB_ABSOLUTE, $strArchiveTestFile, # Source file + PATH_BACKUP_ARCHIVE, "9.3-1/${strSourceFile}", # Destination file + false, # Source is not compressed + $bCompress, # Destination compress based on test + undef, undef, undef, # Unused params + true); # Create path if it does not exist my $strDestinationFile = "${strXlogPath}/${strArchiveFile}"; @@ -1982,12 +2001,14 @@ sub BackRestTestBackup_Test #------------------------------------------------------------------------------------------------------------------------------- # Test expire #------------------------------------------------------------------------------------------------------------------------------- - if ($strTest eq 'all' || $strTest eq 'expire') + $strThisTest = 'expire'; + + if ($strTest eq 'all' || $strTest eq $strThisTest) { $iRun = 0; my $oFile; - &log(INFO, "Test expire\n"); + &log(INFO, "Test ${strThisTest}\n"); # Create the file object $oFile = (BackRest::File->new @@ -2038,13 +2059,25 @@ sub BackRestTestBackup_Test push @stryBackupExpected, BackRestTestBackup_Backup(BACKUP_TYPE_INCR, $strStanza, false, $oFile); push @stryBackupExpected, BackRestTestBackup_Backup(BACKUP_TYPE_INCR, $strStanza, false, $oFile); push @stryBackupExpected, BackRestTestBackup_Backup(BACKUP_TYPE_DIFF, $strStanza, false, $oFile); + push @stryBackupExpected, 'backup.info'; push @stryBackupExpected, 'latest'; + # Increment the run, log, and decide whether this unit test should be run + if (!BackRestTestCommon_Run(++$iRun, + "local", + $iThreadMax == 1 ? $strModule : undef, + $iThreadMax == 1 ? $strThisTest: undef, + false)) {next} + + # Append backup.info to create a baseline + BackRestTestCommon_TestLogAppendFile(BackRestTestCommon_RepoPathGet() . + "/backup/${strStanza}/backup.info", false); + # Create an archive log path that will be removed as old on the first archive expire call - $oFile->path_create(PATH_BACKUP_ARCHIVE, '0000000000000000'); + $oFile->path_create(PATH_BACKUP_ARCHIVE, BackRestTestCommon_DbVersion() . '-1/0000000000000000'); # Get the expected archive list - my @stryArchiveExpected = $oFile->list(PATH_BACKUP_ARCHIVE, '0000000100000000'); + my @stryArchiveExpected = $oFile->list(PATH_BACKUP_ARCHIVE, BackRestTestCommon_DbVersion() . '-1/0000000100000000'); # Expire all but the last two fulls splice(@stryBackupExpected, 0, 3); @@ -2061,9 +2094,9 @@ sub BackRestTestBackup_Test splice(@stryArchiveExpected, 0, 10); BackRestTestBackup_Expire($strStanza, $oFile, \@stryBackupExpected, \@stryArchiveExpected, 2, 3, 'full', 2); - if ($oFile->exists(PATH_BACKUP_ARCHIVE, '0000000000000000')) + if ($oFile->exists(PATH_BACKUP_ARCHIVE, BackRestTestCommon_DbVersion() . '-1/0000000000000000')) { - confess 'archive log path 0000000000000000 should have been removed'; + confess 'archive log path ' . BackRestTestCommon_DbVersion() . '-1/0000000000000000 should have been removed'; } # Expire archive based on the last two diffs @@ -2125,14 +2158,22 @@ sub BackRestTestBackup_Test # Build the manifest my %oManifest; - $oManifest{backup}{version} = version_get(); - $oManifest{'backup:option'}{compress} = $bCompress ? 'y' : 'n'; - $oManifest{'backup:option'}{hardlink} = $bHardlink ? 'y' : 'n'; + $oManifest{&INI_SECTION_BACKREST}{&INI_KEY_VERSION} = version_get(); + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ARCHIVE_CHECK} = JSON::PP::true; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_ARCHIVE_COPY} = JSON::PP::true; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_COMPRESS} = $bCompress ? JSON::PP::true : JSON::PP::false; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_HARDLINK} = $bHardlink ? JSON::PP::true : JSON::PP::false; + $oManifest{&MANIFEST_SECTION_BACKUP_OPTION}{&MANIFEST_KEY_START_STOP} = JSON::PP::false; + + $oManifest{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_CATALOG} = 201306121; + $oManifest{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_CONTROL} = 937; + $oManifest{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_SYSTEM_ID} = 6156904820763115222; + $oManifest{&MANIFEST_SECTION_BACKUP_DB}{&MANIFEST_KEY_DB_VERSION} = '9.3'; # Create the test directory BackRestTestBackup_Create($bRemote, false); - $oManifest{'backup:path'}{base} = BackRestTestCommon_DbCommonPathGet(); + $oManifest{'backup:path'}{base}{&MANIFEST_SUBKEY_PATH} = BackRestTestCommon_DbCommonPathGet(); BackRestTestBackup_ManifestPathCreate(\%oManifest, 'base'); @@ -2154,6 +2195,17 @@ sub BackRestTestBackup_Test BackRestTestBackup_ManifestFileCreate(\%oManifest, 'base', 'base/base1.txt', 'BASE', 'a3b357a3e395e43fcfb19bb13f3c1b5179279593', $lTime); + # Create global path + BackRestTestBackup_ManifestPathCreate(\%oManifest, 'base', 'global'); + + BackRestTestBackup_ManifestFileCreate(\%oManifest, 'base', 'global/pg_control', '[replaceme]', + '56fe5780b8dca9705e0c22032a83828860a21235', $lTime - 100); + BackRestTestCommon_Execute('cp ' . BackRestTestCommon_DataPathGet() . '/pg_control ' . + BackRestTestCommon_DbCommonPathGet() . '/global/pg_control'); + utime($lTime - 100, $lTime - 100, BackRestTestCommon_DbCommonPathGet() . '/global/pg_control') + or confess &log(ERROR, "unable to set time"); + $oManifest{'base:file'}{'global/pg_control'}{'size'} = 8192; + # Create tablespace path BackRestTestBackup_ManifestPathCreate(\%oManifest, 'base', 'pg_tblspc'); @@ -2186,6 +2238,11 @@ sub BackRestTestBackup_Test my $strFullBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, undef, undef, undef, undef, '--manifest-save-threshold=3'); + # Backup Info + #----------------------------------------------------------------------------------------------------------------------- + BackRestTestBackup_Info($strStanza, undef, false); + BackRestTestBackup_Info($strStanza, INFO_OUTPUT_JSON, false); + # Resume Full Backup #----------------------------------------------------------------------------------------------------------------------- $strType = 'full'; @@ -2227,22 +2284,69 @@ sub BackRestTestBackup_Test undef, undef, undef, undef, undef, undef, 'add and delete files'); - # Incr backup + # Various broken info tests #----------------------------------------------------------------------------------------------------------------------- $strType = 'incr'; BackRestTestBackup_ManifestReference(\%oManifest, $strFullBackup); + my $strInfoFile = BackRestTestCommon_RepoPathGet . "/backup/${strStanza}/backup.info"; + my %oInfo; + BackRestTestCommon_iniLoad($strInfoFile, \%oInfo, $bRemote); + + # Break the database version + my $strDbVersion = $oInfo{'db'}{&MANIFEST_KEY_DB_VERSION}; + + $oInfo{db}{&MANIFEST_KEY_DB_VERSION} = '8.0'; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); + + my $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, + 'invalid database version', undef, undef, ERROR_BACKUP_MISMATCH); + $oInfo{db}{&MANIFEST_KEY_DB_VERSION} = $strDbVersion; + + # Break the database system id + my $ullDbSysId = $oInfo{'db'}{&MANIFEST_KEY_SYSTEM_ID}; + $oInfo{db}{&MANIFEST_KEY_SYSTEM_ID} = 6999999999999999999; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); + + $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, + 'invalid system id', undef, undef, ERROR_BACKUP_MISMATCH); + $oInfo{db}{&MANIFEST_KEY_SYSTEM_ID} = $ullDbSysId; + + # Break the control version + my $iControlVersion = $oInfo{'db'}{&MANIFEST_KEY_CONTROL}; + $oInfo{db}{&MANIFEST_KEY_CONTROL} = 842; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); + + $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, + 'invalid control version', undef, undef, ERROR_BACKUP_MISMATCH); + $oInfo{db}{&MANIFEST_KEY_CONTROL} = $iControlVersion; + + # Break the catalog version + my $iCatalogVersion = $oInfo{'db'}{&MANIFEST_KEY_CATALOG}; + $oInfo{db}{&MANIFEST_KEY_CATALOG} = 197208141; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); + + $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, + 'invalid catalog version', undef, undef, ERROR_BACKUP_MISMATCH); + + # Fix up info file for next test + $oInfo{db}{&MANIFEST_KEY_CATALOG} = $iCatalogVersion; + BackRestTestCommon_iniSave($strInfoFile, \%oInfo, $bRemote, true); + + # Incr backup + #----------------------------------------------------------------------------------------------------------------------- + $strType = 'incr'; + # Add tablespace 1 BackRestTestBackup_ManifestTablespaceCreate(\%oManifest, 1); - BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace:1", 'tablespace1.txt', 'TBLSPC1', + BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace/1", 'tablespace1.txt', 'TBLSPC1', 'd85de07d6421d90aa9191c11c889bfde43680f0f', $lTime); BackRestTestBackup_ManifestFileCreate(\%oManifest, "base", 'badchecksum.txt', 'BADCHECKSUM', 'f927212cd08d11a42a666b2f04235398e9ceeb51', $lTime); - - my $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, - 'add tablespace 1'); + $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, + 'add tablespace 1'); # Resume Incr Backup #----------------------------------------------------------------------------------------------------------------------- @@ -2261,7 +2365,7 @@ sub BackRestTestBackup_Test # Add tablespace 2 BackRestTestBackup_ManifestTablespaceCreate(\%oManifest, 2); - BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace:2", 'tablespace2.txt', 'TBLSPC2', + BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace/2", 'tablespace2.txt', 'TBLSPC2', 'dc7f76e43c46101b47acc55ae4d593a9e6983578', $lTime); $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, @@ -2301,20 +2405,20 @@ sub BackRestTestBackup_Test undef, undef, undef, undef, undef, undef, 'fail on used path', ERROR_RESTORE_PATH_NOT_EMPTY); # Fail on undef format - BackRestTestBackup_ManifestMunge($oFile, $bRemote, $strBackup, 'backup', 'format', undef, undef); + BackRestTestBackup_ManifestMunge($oFile, $bRemote, $strBackup, INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, undef); BackRestTestBackup_Restore($oFile, $strBackup, $strStanza, $bRemote, \%oManifest, undef, $bDelta, $bForce, undef, undef, undef, undef, undef, undef, 'fail on undef format', ERROR_FORMAT); # Fail on mismatch format - BackRestTestBackup_ManifestMunge($oFile, $bRemote, $strBackup, 'backup', 'format', undef, 0); + BackRestTestBackup_ManifestMunge($oFile, $bRemote, $strBackup, INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, 0); BackRestTestBackup_Restore($oFile, $strBackup, $strStanza, $bRemote, \%oManifest, undef, $bDelta, $bForce, undef, undef, undef, undef, undef, undef, 'fail on mismatch format', ERROR_FORMAT); - BackRestTestBackup_ManifestMunge($oFile, $bRemote, $strBackup, 'backup', 'format', undef, 3); + BackRestTestBackup_ManifestMunge($oFile, $bRemote, $strBackup, INI_SECTION_BACKREST, INI_KEY_FORMAT, undef, FORMAT); # Remap the base path my %oRemapHash; @@ -2336,7 +2440,7 @@ sub BackRestTestBackup_Test BackRestTestBackup_ManifestTablespaceDrop(\%oManifest, 1, 2); - BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace:2", 'tablespace2b.txt', 'TBLSPC2B', + BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace/2", 'tablespace2b.txt', 'TBLSPC2B', 'e324463005236d83e6e54795dbddd20a74533bf3', $lTime); $strBackup = BackRestTestBackup_BackupSynthetic($strType, $strStanza, $bRemote, $oFile, \%oManifest, @@ -2370,7 +2474,7 @@ sub BackRestTestBackup_Test BackRestTestBackup_FileRemove(\%oManifest, 'base', 'base/base1.txt'); - $strBackup = BackRestTestBackup_BackupEnd($strType, $oFile, $bRemote, undef, \%oManifest, true); + $strBackup = BackRestTestBackup_BackupEnd($strType, $strStanza, $oFile, $bRemote, undef, \%oManifest, true); # Diff Backup #----------------------------------------------------------------------------------------------------------------------- @@ -2380,19 +2484,19 @@ sub BackRestTestBackup_Test BackRestTestBackup_ManifestFileRemove(\%oManifest, 'base', 'base/base1.txt'); - BackRestTestBackup_ManifestFileRemove(\%oManifest, "tablespace:2", 'tablespace2b.txt', true); - BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace:2", 'tablespace2c.txt', 'TBLSPC2C', + BackRestTestBackup_ManifestFileRemove(\%oManifest, "tablespace/2", 'tablespace2b.txt', true); + BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace/2", 'tablespace2c.txt', 'TBLSPC2C', 'ad7df329ab97a1e7d35f1ff0351c079319121836', $lTime); BackRestTestBackup_BackupBegin($strType, $strStanza, $bRemote, "remove files during backup", true, true, 1); BackRestTestCommon_ExecuteEnd(TEST_MANIFEST_BUILD); - BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace:2", 'tablespace2c.txt', 'TBLSPCBIGGER', + BackRestTestBackup_ManifestFileCreate(\%oManifest, "tablespace/2", 'tablespace2c.txt', 'TBLSPCBIGGER', 'dfcb8679956b734706cf87259d50c88f83e80e66', $lTime); BackRestTestBackup_ManifestFileRemove(\%oManifest, 'base', 'base/base2.txt', true); - $strBackup = BackRestTestBackup_BackupEnd($strType, $oFile, $bRemote, undef, \%oManifest, true); + $strBackup = BackRestTestBackup_BackupEnd($strType, $strStanza, $oFile, $bRemote, undef, \%oManifest, true); # Full Backup #----------------------------------------------------------------------------------------------------------------------- @@ -2422,6 +2526,14 @@ sub BackRestTestBackup_Test undef, undef, undef, undef, undef, undef, 'no tablespace remap', undef, '--no-tablespace', false); + # Backup Info + #----------------------------------------------------------------------------------------------------------------------- + BackRestTestCommon_Execute('mkdir ' . BackRestTestCommon_RepoPathGet . '/backup/db_empty', $bRemote); + + BackRestTestBackup_Info(undef, undef, false); + BackRestTestBackup_Info(undef, INFO_OUTPUT_JSON, false); + BackRestTestBackup_Info('bogus', undef, false); + BackRestTestBackup_Info('bogus', INFO_OUTPUT_JSON, false); } } } @@ -2543,7 +2655,7 @@ sub BackRestTestBackup_Test BackRestTestBackup_PgExecute("update test set message = '$strFullMessage'", false); - my $strFullBackup = BackRestTestBackup_BackupEnd($strType, $oFile, $bRemote, undef, undef, $bSynthetic); + my $strFullBackup = BackRestTestBackup_BackupEnd($strType, $strStanza, $oFile, $bRemote, undef, undef, $bSynthetic); # Setup the time target #----------------------------------------------------------------------------------------------------------------------- @@ -2575,7 +2687,7 @@ sub BackRestTestBackup_Test BackRestTestBackup_PgSwitchXlog(); BackRestTestBackup_PgExecute("update test set message = '$strIncrMessage'", false); - my $strIncrBackup = BackRestTestBackup_BackupEnd($strType, $oFile, $bRemote, undef, undef, $bSynthetic); + my $strIncrBackup = BackRestTestBackup_BackupEnd($strType, $strStanza, $oFile, $bRemote, undef, undef, $bSynthetic); # Setup the xid target #----------------------------------------------------------------------------------------------------------------------- diff --git a/test/lib/BackRestTest/CommonTest.pm b/test/lib/BackRestTest/CommonTest.pm index 79d76e10c..048560028 100755 --- a/test/lib/BackRestTest/CommonTest.pm +++ b/test/lib/BackRestTest/CommonTest.pm @@ -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') diff --git a/test/lib/BackRestTest/CompareTest.pm b/test/lib/BackRestTest/CompareTest.pm index 49cdf2b79..cf22bc1af 100755 --- a/test/lib/BackRestTest/CompareTest.pm +++ b/test/lib/BackRestTest/CompareTest.pm @@ -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 diff --git a/test/lib/BackRestTest/ConfigTest.pm b/test/lib/BackRestTest/ConfigTest.pm index 91e6c3dd5..a25139f89 100755 --- a/test/lib/BackRestTest/ConfigTest.pm +++ b/test/lib/BackRestTest/ConfigTest.pm @@ -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'); diff --git a/test/lib/BackRestTest/FileTest.pm b/test/lib/BackRestTest/FileTest.pm index 4d0a29162..e5ecf7123 100755 --- a/test/lib/BackRestTest/FileTest.pm +++ b/test/lib/BackRestTest/FileTest.pm @@ -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; diff --git a/test/lib/BackRestTest/UtilityTest.pm b/test/lib/BackRestTest/UtilityTest.pm index cfe0a9037..aa5945978 100755 --- a/test/lib/BackRestTest/UtilityTest.pm +++ b/test/lib/BackRestTest/UtilityTest.pm @@ -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); diff --git a/test/log/backup-archive-get-001.log b/test/log/backup-archive-get-001.log index 646745e17..43f64f18f 100644 --- a/test/log/backup-archive-get-001.log +++ b/test/log/backup-archive-get-001.log @@ -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 diff --git a/test/log/backup-archive-get-002.log b/test/log/backup-archive-get-002.log index 5222a59c6..c5a39ae3d 100644 --- a/test/log/backup-archive-get-002.log +++ b/test/log/backup-archive-get-002.log @@ -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 diff --git a/test/log/backup-archive-get-003.log b/test/log/backup-archive-get-003.log index ad690e4be..e54431d84 100644 --- a/test/log/backup-archive-get-003.log +++ b/test/log/backup-archive-get-003.log @@ -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 diff --git a/test/log/backup-archive-get-004.log b/test/log/backup-archive-get-004.log index ab6bc580c..ccdd2afae 100644 --- a/test/log/backup-archive-get-004.log +++ b/test/log/backup-archive-get-004.log @@ -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 diff --git a/test/log/backup-archive-get-005.log b/test/log/backup-archive-get-005.log index 069a41f58..08c7ca4a6 100644 --- a/test/log/backup-archive-get-005.log +++ b/test/log/backup-archive-get-005.log @@ -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 diff --git a/test/log/backup-archive-get-006.log b/test/log/backup-archive-get-006.log index 59cf427e6..b14fe3642 100644 --- a/test/log/backup-archive-get-006.log +++ b/test/log/backup-archive-get-006.log @@ -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 diff --git a/test/log/backup-archive-get-007.log b/test/log/backup-archive-get-007.log index a7beb13cf..552538ab2 100644 --- a/test/log/backup-archive-get-007.log +++ b/test/log/backup-archive-get-007.log @@ -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 diff --git a/test/log/backup-archive-get-008.log b/test/log/backup-archive-get-008.log index 1b432efc0..367ced911 100644 --- a/test/log/backup-archive-get-008.log +++ b/test/log/backup-archive-get-008.log @@ -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 diff --git a/test/log/backup-archive-push-001.log b/test/log/backup-archive-push-001.log index 268f0c381..a13bd5a69 100644 --- a/test/log/backup-archive-push-001.log +++ b/test/log/backup-archive-push-001.log @@ -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"} diff --git a/test/log/backup-archive-push-002.log b/test/log/backup-archive-push-002.log index 7f87ac465..5996c35e0 100644 --- a/test/log/backup-archive-push-002.log +++ b/test/log/backup-archive-push-002.log @@ -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"} diff --git a/test/log/backup-archive-push-003.log b/test/log/backup-archive-push-003.log index 38a7983be..a63f1935b 100644 --- a/test/log/backup-archive-push-003.log +++ b/test/log/backup-archive-push-003.log @@ -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"} diff --git a/test/log/backup-archive-push-004.log b/test/log/backup-archive-push-004.log index 94a47c1c0..0052336cf 100644 --- a/test/log/backup-archive-push-004.log +++ b/test/log/backup-archive-push-004.log @@ -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"} diff --git a/test/log/backup-archive-push-005.log b/test/log/backup-archive-push-005.log index 943e5936c..d65b06c3d 100644 --- a/test/log/backup-archive-push-005.log +++ b/test/log/backup-archive-push-005.log @@ -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"} diff --git a/test/log/backup-archive-push-006.log b/test/log/backup-archive-push-006.log index 96d96e5ec..c30f5a7e9 100644 --- a/test/log/backup-archive-push-006.log +++ b/test/log/backup-archive-push-006.log @@ -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"} diff --git a/test/log/backup-archive-push-007.log b/test/log/backup-archive-push-007.log index 1cad439d0..26f7fb271 100644 --- a/test/log/backup-archive-push-007.log +++ b/test/log/backup-archive-push-007.log @@ -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"} diff --git a/test/log/backup-archive-push-008.log b/test/log/backup-archive-push-008.log index 255c680f7..61be5e67c 100644 --- a/test/log/backup-archive-push-008.log +++ b/test/log/backup-archive-push-008.log @@ -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"} diff --git a/test/log/backup-archive-stop-001.log b/test/log/backup-archive-stop-001.log index f3af09437..d430f96cf 100644 --- a/test/log/backup-archive-stop-001.log +++ b/test/log/backup-archive-stop-001.log @@ -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 diff --git a/test/log/backup-archive-stop-002.log b/test/log/backup-archive-stop-002.log index c1176252e..dc9dead3f 100644 --- a/test/log/backup-archive-stop-002.log +++ b/test/log/backup-archive-stop-002.log @@ -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 diff --git a/test/log/backup-archive-stop-003.log b/test/log/backup-archive-stop-003.log index e3fa632e9..37fbe0dba 100644 --- a/test/log/backup-archive-stop-003.log +++ b/test/log/backup-archive-stop-003.log @@ -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 diff --git a/test/log/backup-archive-stop-004.log b/test/log/backup-archive-stop-004.log index 16a6f3696..608e13731 100644 --- a/test/log/backup-archive-stop-004.log +++ b/test/log/backup-archive-stop-004.log @@ -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 diff --git a/test/log/backup-archive-stop-005.log b/test/log/backup-archive-stop-005.log index 54b3e5cfc..b3ac618d9 100644 --- a/test/log/backup-archive-stop-005.log +++ b/test/log/backup-archive-stop-005.log @@ -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 diff --git a/test/log/backup-archive-stop-006.log b/test/log/backup-archive-stop-006.log index aa6ecb4a4..e3efbb05a 100644 --- a/test/log/backup-archive-stop-006.log +++ b/test/log/backup-archive-stop-006.log @@ -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 diff --git a/test/log/backup-expire-001.log b/test/log/backup-expire-001.log new file mode 100644 index 000000000..bd5feef37 --- /dev/null +++ b/test/log/backup-expire-001.log @@ -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"} diff --git a/test/log/backup-synthetic-001.log b/test/log/backup-synthetic-001.log index b1735cb4c..8e89d9a11 100644 --- a/test/log/backup-synthetic-001.log +++ b/test/log/backup-synthetic-001.log @@ -2,12 +2,15 @@ run 001 - rmt 0, cmp 0, hardlink 0 ================================== full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +19,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +41,189 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9658, + "size" : 9658 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + full backup (resume) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -57,27 +235,130 @@ DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, compressed = false, hash_type = sha1 + INFO: checksum resumed file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, compressed = false, hash_type = sha1 - INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] @@ -95,6 +376,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -102,11 +384,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -115,16 +400,87 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -135,12 +491,15 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts1 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -152,20 +511,136 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -180,14 +655,17 @@ DEBUG: File->wait: db:absolute WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, compressed = false, hash_type = sha1 WARN: resumed backup file base/badchecksum.txt should have checksum bogus but actually has checksum f927212cd08d11a42a666b2f04235398e9ceeb51. The file will be recopied and backup will continue but this may be an issue unless the backup temp path is known to be corrupted. -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, compressed = false, hash_type = sha1 INFO: checksum resumed file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -199,20 +677,145 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -226,17 +829,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -248,20 +854,146 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -275,17 +1007,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -297,12 +1032,135 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -317,29 +1175,29 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -361,6 +1219,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -375,28 +1235,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -406,15 +1271,18 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -425,12 +1293,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -442,20 +1315,140 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -466,7 +1459,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -478,20 +1477,142 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -502,27 +1623,29 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -530,20 +1653,144 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -554,26 +1801,159 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] INFO: new backup label: [BACKUP-INCR-5] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -584,21 +1964,23 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -606,17 +1988,143 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -628,49 +2136,181 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -681,7 +2321,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -693,12 +2339,141 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10874,"backup-info-repo-size-delta":2640,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10874,"backup-info-repo-size-delta":2640,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] @@ -716,6 +2491,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -724,25 +2500,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -751,3 +2530,363 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9658, + "size" : 9658 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2730, + "size" : 10929 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2663, + "size" : 10880 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2723, + "size" : 10949 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2545, + "size" : 10740 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2763, + "size" : 10997 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2237, + "size" : 10432 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 10480, + "size" : 10480 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2640, + "size" : 10874 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-002.log b/test/log/backup-synthetic-002.log index 1ec591863..cc3ffb55a 100644 --- a/test/log/backup-synthetic-002.log +++ b/test/log/backup-synthetic-002.log @@ -2,12 +2,15 @@ run 002 - rmt 0, cmp 0, hardlink 1 ================================== full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +19,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +41,190 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9657, + "size" : 9657 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + full backup (resume) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -57,27 +236,131 @@ DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, compressed = false, hash_type = sha1 + INFO: checksum resumed file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, compressed = false, hash_type = sha1 - INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] @@ -95,6 +378,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -102,11 +386,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -115,16 +402,87 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -136,21 +494,25 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -162,20 +524,137 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -191,30 +670,35 @@ DEBUG: File->wait: db:absolute INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, compressed = false, hash_type = sha1 WARN: resumed backup file base/badchecksum.txt should have checksum bogus but actually has checksum f927212cd08d11a42a666b2f04235398e9ceeb51. The file will be recopied and backup will continue but this may be an issue unless the backup temp path is known to be corrupted. -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, compressed = false, hash_type = sha1 INFO: checksum resumed file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -226,20 +710,146 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -254,28 +864,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -287,20 +901,147 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -315,28 +1056,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -348,12 +1093,136 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -368,29 +1237,29 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -412,6 +1281,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -426,28 +1297,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/global/pg_control to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -457,15 +1333,18 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -477,27 +1356,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 INFO: total backup size: 13B @@ -507,20 +1390,141 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -532,27 +1536,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 100%) checksum 9a53d532e27785e681766c98516a5e93f096a501 INFO: total backup size: 8B @@ -562,20 +1570,143 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -587,31 +1718,35 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -619,20 +1754,145 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -644,27 +1904,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] INFO: new backup label: [BACKUP-INCR-5] @@ -673,20 +1937,147 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -698,27 +2089,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -726,17 +2121,144 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -748,49 +2270,182 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -802,27 +2457,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (9B, 100%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 INFO: total backup size: 9B @@ -832,12 +2491,142 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10873,"backup-info-repo-size-delta":2639,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10873,"backup-info-repo-size-delta":2639,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] @@ -855,6 +2644,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -863,25 +2653,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -890,3 +2683,363 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9657, + "size" : 9657 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2729, + "size" : 10928 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2662, + "size" : 10879 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2722, + "size" : 10948 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2544, + "size" : 10739 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2762, + "size" : 10996 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2236, + "size" : 10431 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 10479, + "size" : 10479 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2639, + "size" : 10873 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-003.log b/test/log/backup-synthetic-003.log index a2b8639a6..82db1a3ec 100644 --- a/test/log/backup-synthetic-003.log +++ b/test/log/backup-synthetic-003.log @@ -2,12 +2,15 @@ run 003 - rmt 0, cmp 1, hardlink 0 ================================== full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +19,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +41,188 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1669, + "size" : 1669 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + full backup (resume) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -55,31 +232,135 @@ DEBUG: File->wait: db:absolute INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] @@ -97,6 +378,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -104,11 +386,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -117,16 +402,87 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -137,12 +493,15 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts1 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -154,20 +513,135 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -184,13 +658,16 @@ DEBUG: File->wait: db:absolute DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -202,20 +679,144 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -229,17 +830,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -251,20 +855,145 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -278,17 +1007,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -300,12 +1032,134 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -320,29 +1174,29 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -364,6 +1218,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -378,28 +1234,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control.gz to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -409,15 +1270,18 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -428,12 +1292,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -445,20 +1314,139 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -469,7 +1457,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -481,20 +1475,141 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -505,27 +1620,29 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -533,20 +1650,143 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -557,26 +1797,158 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] INFO: new backup label: [BACKUP-INCR-5] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -587,21 +1959,23 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -609,17 +1983,142 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -631,49 +2130,180 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -684,7 +2314,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -696,12 +2332,140 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2965,"backup-info-repo-size-delta":2659,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2965,"backup-info-repo-size-delta":2659,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] @@ -719,6 +2483,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -727,25 +2492,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -754,3 +2522,363 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1669, + "size" : 1669 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2789, + "size" : 3000 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2702, + "size" : 2971 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2742, + "size" : 3040 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2644, + "size" : 2831 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2762, + "size" : 3088 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2296, + "size" : 2483 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 2551, + "size" : 2551 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2659, + "size" : 2965 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-004.log b/test/log/backup-synthetic-004.log index 08b38ad46..68f166479 100644 --- a/test/log/backup-synthetic-004.log +++ b/test/log/backup-synthetic-004.log @@ -2,12 +2,15 @@ run 004 - rmt 0, cmp 1, hardlink 1 ================================== full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +19,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +41,189 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = db +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1668, + "size" : 1668 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + full backup (resume) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -55,31 +233,136 @@ DEBUG: File->wait: db:absolute INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] @@ -97,6 +380,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -104,11 +388,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -117,16 +404,87 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ + INFO: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -138,21 +496,25 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -164,20 +526,136 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -194,30 +672,35 @@ DEBUG: File->wait: db:absolute DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -229,20 +712,145 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -257,28 +865,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -290,20 +902,146 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -318,28 +1056,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -351,12 +1093,135 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -371,29 +1236,29 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] @@ -415,6 +1280,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -429,28 +1296,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/global/pg_control.gz to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -460,15 +1332,18 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -480,27 +1355,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 INFO: total backup size: 13B @@ -510,20 +1389,140 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -535,27 +1534,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 100%) checksum 9a53d532e27785e681766c98516a5e93f096a501 INFO: total backup size: 8B @@ -565,20 +1568,142 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -590,31 +1715,35 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -622,20 +1751,144 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -647,27 +1900,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] INFO: new backup label: [BACKUP-INCR-5] @@ -676,20 +1933,146 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -701,27 +2084,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -729,17 +2116,143 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -751,49 +2264,181 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ INFO: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = false, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -805,27 +2450,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: local db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (9B, 100%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 INFO: total backup size: 9B @@ -835,12 +2484,141 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2964,"backup-info-repo-size-delta":2658,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2964,"backup-info-repo-size-delta":2658,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> ../bin/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] @@ -858,6 +2636,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -866,25 +2645,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: local backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -893,3 +2675,363 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db_empty +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1668, + "size" : 1668 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2788, + "size" : 2999 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2701, + "size" : 2970 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2741, + "size" : 3039 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2643, + "size" : 2830 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2761, + "size" : 3087 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2295, + "size" : 2482 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 2550, + "size" : 2550 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2658, + "size" : 2964 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Info->listStanza: stanza = bogus +DEBUG: File->list: backup:[TEST_PATH]/backrest/backup, expression [UNDEF], sort forward +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-005.log b/test/log/backup-synthetic-005.log index 985f57e5e..35c578f9a 100644 --- a/test/log/backup-synthetic-005.log +++ b/test/log/backup-synthetic-005.log @@ -2,12 +2,16 @@ run 005 - rmt 1, cmp 0, hardlink 0 ================================== full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +20,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +42,218 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads -full backup (resume) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9658, + "size" : 9658 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + +full backup (resume) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -57,28 +265,162 @@ DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, compressed = false, hash_type = sha1 + INFO: checksum resumed file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, compressed = false, hash_type = sha1 - INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] @@ -95,6 +437,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -102,11 +445,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -115,16 +461,92 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -135,12 +557,15 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts1 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -152,20 +577,167 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -180,14 +752,17 @@ DEBUG: File->wait: db:absolute WARN: aborted backup of same type exists, will be cleaned to remove invalid files and resumed INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, compressed = false, hash_type = sha1 WARN: resumed backup file base/badchecksum.txt should have checksum bogus but actually has checksum f927212cd08d11a42a666b2f04235398e9ceeb51. The file will be recopied and backup will continue but this may be an issue unless the backup temp path is known to be corrupted. -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, compressed = false, hash_type = sha1 INFO: checksum resumed file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -199,20 +774,176 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -226,17 +957,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -248,20 +982,177 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -275,17 +1166,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -297,13 +1191,167 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -317,30 +1365,33 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -361,6 +1412,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -375,28 +1428,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -406,15 +1464,19 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -425,12 +1487,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -442,20 +1509,166 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -466,7 +1679,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -478,20 +1697,168 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -502,27 +1869,29 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -530,20 +1899,170 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -554,26 +2073,185 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] INFO: new backup label: [BACKUP-INCR-5] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -584,21 +2262,23 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -606,17 +2286,169 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -628,49 +2460,207 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -681,7 +2671,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -693,13 +2689,168 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10874,"backup-info-repo-size-delta":2640,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9658,"backup-info-repo-size-delta":9658,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10446,"backup-info-repo-size-delta":2247,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10929,"backup-info-repo-size-delta":2730,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10880,"backup-info-repo-size-delta":2663,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10949,"backup-info-repo-size-delta":2723,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10740,"backup-info-repo-size-delta":2545,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10997,"backup-info-repo-size-delta":2763,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10432,"backup-info-repo-size-delta":2237,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10480,"backup-info-repo-size-delta":10480,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10874,"backup-info-repo-size-delta":2640,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] @@ -716,6 +2867,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -724,25 +2876,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -751,3 +2906,359 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9658, + "size" : 9658 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2730, + "size" : 10929 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2663, + "size" : 10880 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2723, + "size" : 10949 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2545, + "size" : 10740 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2763, + "size" : 10997 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2237, + "size" : 10432 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 10480, + "size" : 10480 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2640, + "size" : 10874 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-006.log b/test/log/backup-synthetic-006.log index aaf59b701..f9d378d7a 100644 --- a/test/log/backup-synthetic-006.log +++ b/test/log/backup-synthetic-006.log @@ -2,12 +2,16 @@ run 006 - rmt 1, cmp 0, hardlink 1 ================================== full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +20,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +42,219 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads -full backup (resume) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9657, + "size" : 9657 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + +full backup (resume) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -57,28 +266,163 @@ DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, compressed = false, hash_type = sha1 + INFO: checksum resumed file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, compressed = false, hash_type = sha1 - INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: checksum resumed file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] @@ -95,6 +439,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -102,11 +447,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -115,16 +463,92 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -136,21 +560,25 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -162,20 +590,168 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -191,30 +767,35 @@ DEBUG: File->wait: db:absolute INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, compressed = false, hash_type = sha1 WARN: resumed backup file base/badchecksum.txt should have checksum bogus but actually has checksum f927212cd08d11a42a666b2f04235398e9ceeb51. The file will be recopied and backup will continue but this may be an issue unless the backup temp path is known to be corrupted. -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->hash: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, compressed = false, hash_type = sha1 INFO: checksum resumed file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -226,20 +807,177 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -254,28 +992,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -287,20 +1029,178 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -315,28 +1215,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -348,13 +1252,168 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -368,30 +1427,33 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -412,6 +1474,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -426,28 +1490,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/global/pg_control to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -457,15 +1526,19 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -477,27 +1550,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 INFO: total backup size: 13B @@ -507,20 +1584,167 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -532,27 +1756,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 100%) checksum 9a53d532e27785e681766c98516a5e93f096a501 INFO: total backup size: 8B @@ -562,20 +1790,169 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -587,31 +1964,35 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -619,20 +2000,171 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -644,27 +2176,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] INFO: new backup label: [BACKUP-INCR-5] @@ -673,20 +2209,173 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -698,27 +2387,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -726,17 +2419,170 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -748,49 +2594,208 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -802,27 +2807,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (9B, 100%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 INFO: total backup size: 9B @@ -832,13 +2841,169 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +compress=n +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=false +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10873,"backup-info-repo-size-delta":2639,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":9657,"backup-info-repo-size-delta":9657,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10445,"backup-info-repo-size-delta":2246,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10928,"backup-info-repo-size-delta":2729,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10879,"backup-info-repo-size-delta":2662,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10948,"backup-info-repo-size-delta":2722,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10739,"backup-info-repo-size-delta":2544,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10996,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10431,"backup-info-repo-size-delta":2236,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10479,"backup-info-repo-size-delta":10479,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":10873,"backup-info-repo-size-delta":2639,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":false,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] @@ -855,6 +3020,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -863,25 +3029,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -890,3 +3059,359 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 9657, + "size" : 9657 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2729, + "size" : 10928 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2662, + "size" : 10879 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2722, + "size" : 10948 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2544, + "size" : 10739 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2762, + "size" : 10996 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2236, + "size" : 10431 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 10479, + "size" : 10479 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2639, + "size" : 10873 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-007.log b/test/log/backup-synthetic-007.log index 914b2bce8..83ec0d410 100644 --- a/test/log/backup-synthetic-007.log +++ b/test/log/backup-synthetic-007.log @@ -2,12 +2,16 @@ run 007 - rmt 1, cmp 1, hardlink 0 ================================== full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +20,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +42,216 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads -full backup (resume) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1669, + "size" : 1669 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + +full backup (resume) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -55,32 +261,166 @@ DEBUG: File->wait: db:absolute INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] @@ -97,6 +437,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -104,11 +445,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -117,16 +461,92 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -137,12 +557,15 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts1 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -154,20 +577,165 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -184,13 +752,16 @@ DEBUG: File->wait: db:absolute DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -202,20 +773,174 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -229,17 +954,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -251,20 +979,175 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -278,17 +1161,20 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2 DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -300,13 +1186,165 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -320,30 +1358,33 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -364,6 +1405,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -378,28 +1421,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control.gz to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -409,15 +1457,19 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -428,12 +1480,17 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -445,20 +1502,164 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -469,7 +1670,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -481,20 +1688,166 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -505,27 +1858,29 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -533,20 +1888,168 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -557,26 +2060,183 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] INFO: new backup label: [BACKUP-INCR-5] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -587,21 +2247,23 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -609,17 +2271,167 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -631,49 +2443,205 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -684,7 +2652,13 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: reference [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] +DEBUG: reference [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base @@ -696,13 +2670,166 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=false +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2965,"backup-info-repo-size-delta":2659,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1669,"backup-info-repo-size-delta":1669,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2497,"backup-info-repo-size-delta":2286,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3000,"backup-info-repo-size-delta":2789,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2971,"backup-info-repo-size-delta":2702,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3040,"backup-info-repo-size-delta":2742,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2831,"backup-info-repo-size-delta":2644,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3088,"backup-info-repo-size-delta":2762,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2483,"backup-info-repo-size-delta":2296,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2551,"backup-info-repo-size-delta":2551,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2965,"backup-info-repo-size-delta":2659,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":false,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] @@ -719,6 +2846,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -727,25 +2855,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -754,3 +2885,359 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1669, + "size" : 1669 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2789, + "size" : 3000 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2702, + "size" : 2971 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2742, + "size" : 3040 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2644, + "size" : 2831 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2762, + "size" : 3088 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2296, + "size" : 2483 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 2551, + "size" : 2551 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2659, + "size" : 2965 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/log/backup-synthetic-008.log b/test/log/backup-synthetic-008.log index 1cee4a009..13caf5e1f 100644 --- a/test/log/backup-synthetic-008.log +++ b/test/log/backup-synthetic-008.log @@ -2,12 +2,16 @@ run 008 - rmt 1, cmp 1, hardlink 1 ================================== full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --manifest-save-threshold=3 --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -16,18 +20,21 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: manifest saved -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 -DEBUG: manifest saved - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-1] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-1], destination_path_create = false @@ -35,17 +42,217 @@ DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads -full backup (resume) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-1]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +stanza db + status: ok + oldest backup label: [BACKUP-FULL-1] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-FULL-1] + latest backup timestamp: [TIMESTAMP-STR] +DEBUG: safe exit called, terminating threads + +info db +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=db info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = db +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1668, + "size" : 1668 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-1]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + } +] +DEBUG: safe exit called, terminating threads + +full backup (resume) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup --test --test-delay=0 +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-FULL-1] is missing from the repository - removed from backup.info +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -55,32 +262,167 @@ DEBUG: File->wait: db:absolute INFO: cleaning backup tmp path DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 42%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 100%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 - INFO: total backup size: 7B + INFO: backup file [TEST_PATH]/db/common/base/base1.txt (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common/PG_VERSION (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-2] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-2], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-FULL-2]' (add and delete files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-FULL-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-FULL-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2] @@ -97,6 +439,7 @@ DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common INFO: 1 file(s) removed during cleanup INFO: 1 path(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -104,11 +447,14 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/link-test DEBUG: File->link_create: db:absolute:/test to db:absolute:[TEST_PATH]/db/common/link-test, hard = false, relative = false, destination_path_create = true DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 57%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common/base/base1.txt exists and matches backup (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common/PG_VERSION, destination_path_create = false INFO: [TEST_PATH]/db/common/PG_VERSION restore (3B, 100%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 @@ -117,16 +463,92 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads -incr backup (add tablespace 1) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +incr backup (invalid database version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 8.0, system-id = 6156904820763115222 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid system id) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database version = 9.3, system-id 6156904820763115222 does not match backup version = 9.3, system-id = 6999999999999999999 + HINT: are you backing up to the correct stanza? +DEBUG: safe exit called, terminating threads + +incr backup (invalid control version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 842, catalog-version = 201306121 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (invalid catalog version) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 +ERROR: [126]: database control-version = 937, catalog-version 201306121 does not match backup control-version = 937, catalog-version = 197208141 + HINT: this may be a symptom of database or repository corruption! +DEBUG: safe exit called, terminating threads + +incr backup (add tablespace 1) +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr +DEBUG: cluster path is [TEST_PATH]/db/common +DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -138,21 +560,25 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 61%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 @@ -164,20 +590,166 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (resume and add tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -194,30 +766,35 @@ DEBUG: File->wait: db:absolute DEBUG: File->manifest: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/link-test +DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz DEBUG: remove file [TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -229,20 +806,175 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - new diff) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-INCR-2] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -257,28 +989,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (new type 'diff' does not match aborted type 'incr') - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -290,20 +1026,176 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-1], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-1] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-1]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-1]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (cannot resume - disabled) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --no-resume --type=diff --stanza=db backup --test --test-delay=0 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db + WARN: backup [BACKUP-DIFF-1] is missing from the repository - removed from backup.info +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: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common/pg_tblspc @@ -318,28 +1210,32 @@ DEBUG: File->wait: db:absolute WARN: aborted backup exists, but cannot be resumed (resume is disabled) - will be dropped and recreated DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/1, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common/badchecksum.txt (11B, 44%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts1/tablespace1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1/tablespace1.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/1 INFO: backup file [TEST_PATH]/db/tablespace/ts1/tablespace1.txt (7B, 72%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 @@ -351,13 +1247,166 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-2], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-2] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +# cluster-specific settings +[db] +db-path=[TEST_PATH]/db/common + +# backup settings +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +# cluster-specific settings +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common +db-user=dsteele + +# cluster-specific command options +[db:command] +cmd-psql-option=--port=[PORT-1] + +# backup settings +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +# psql command and options +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +# general settings for all operations +[global:general] +repo-path=[TEST_PATH]/backrest + +# file and console log settings +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-2]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common"} +tablespace/1={"link":"1","path":"[TEST_PATH]/db/tablespace/ts1"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/1={"destination":"[TEST_PATH]/db/tablespace/ts1","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/1:file] +tablespace1.txt={"checksum":"d85de07d6421d90aa9191c11c889bfde43680f0f","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/1:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore, backup '[BACKUP-DIFF-2]', expect exit 115 (fail on used path) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -371,30 +1420,33 @@ ERROR: [115]: cannot restore to path '[TEST_PATH]/db/common' that contains files DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on undef format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', expect exit 104 (fail on mismatch format) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/backup.manifest to local db:absolute:[TEST_PATH]/db/common/backup.manifest, source_compressed = false, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [undef], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/db/common/backup.manifest.backrest.tmp to absolute:[TEST_PATH]/db/common/backup.manifest, destination_path_create = false -ERROR: [104]: backup format of [TEST_PATH]/db/common/backup.manifest is 0 but 3 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 0. +ERROR: [104]: format of [TEST_PATH]/db/common/backup.manifest is 0 but 4 is required by this version of PgBackRest. DEBUG: safe exit called, terminating threads restore, backup '[BACKUP-DIFF-2]', remap (remap all paths) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --set=[BACKUP-DIFF-2] --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-2] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2] @@ -415,6 +1467,8 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/base, mode 0700 +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global +DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/global, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->path_create: db:absolute:[TEST_PATH]/db/common-2/path-test, mode 0700 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -429,28 +1483,33 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/global/pg_control.gz to local db:absolute:[TEST_PATH]/db/common-2/global/pg_control, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp, user = [USER-1], group = [GROUP-1] +DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/global/pg_control.backrest.tmp to absolute:[TEST_PATH]/db/common-2/global/pg_control, destination_path_create = false + INFO: [TEST_PATH]/db/common-2/global/pg_control restore (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/badchecksum.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/badchecksum.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 34%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt restore (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/base/base1.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/base/base1.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/base/base1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 46%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 + INFO: [TEST_PATH]/db/common-2/base/base1.txt restore (4B, 99%) checksum a3b357a3e395e43fcfb19bb13f3c1b5179279593 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/PG_VERSION.gz to local db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/PG_VERSION.backrest.tmp to absolute:[TEST_PATH]/db/common-2/PG_VERSION, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 56%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION restore (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/1/tablespace1.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt, destination_path_create = false - INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 78%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f + INFO: [TEST_PATH]/db/tablespace/ts1-2/tablespace1.txt restore (7B, 99%) checksum d85de07d6421d90aa9191c11c889bfde43680f0f DEBUG: File->exists: db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -460,15 +1519,19 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/recovery.conf DEBUG: safe exit called, terminating threads incr backup (add files and remove tablespace 2) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -480,27 +1543,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 38%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 INFO: total backup size: 13B @@ -510,20 +1577,165 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-3]" +backup-prior="[BACKUP-DIFF-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"a3b357a3e395e43fcfb19bb13f3c1b5179279593","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":4,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (update files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-INCR-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-INCR-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -535,27 +1747,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-2] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-2]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-INCR-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-INCR-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 100%) checksum 9a53d532e27785e681766c98516a5e93f096a501 INFO: total backup size: 8B @@ -565,20 +1781,167 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-4]" +backup-prior="[BACKUP-INCR-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-2]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-INCR-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (no updates) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -590,31 +1953,35 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 28%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (8B, 48%) checksum 9a53d532e27785e681766c98516a5e93f096a501 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (5B, 61%) checksum 09b5e31766be1dba1ec27de82f975c1b6eea2a92 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 79%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 100%) checksum e324463005236d83e6e54795dbddd20a74533bf3 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt (8B, 82%) checksum e324463005236d83e6e54795dbddd20a74533bf3 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 39B INFO: new backup label: [BACKUP-DIFF-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] @@ -622,20 +1989,169 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-3], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-3]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + incr backup (remove files - but won't affect manifest) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = incr DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 1, 1): ^[0-9]{8}\-[0-9]{6}F(\_[0-9]{8}\-[0-9]{6}(D|I)){0,1}$ +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +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: last backup label = [BACKUP-DIFF-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-DIFF-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -647,27 +2163,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/base/base/base2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt from [BACKUP-DIFF-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2b.txt to [BACKUP-DIFF-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-3]/tablespace/2/tablespace2b.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2b.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] INFO: new backup label: [BACKUP-INCR-5] @@ -676,20 +2196,171 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-INCR-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-INCR-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-INCR-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-INCR-5]" +backup-prior="[BACKUP-DIFF-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="incr" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"9a53d532e27785e681766c98516a5e93f096a501","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"09b5e31766be1dba1ec27de82f975c1b6eea2a92","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":5,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2b.txt={"checksum":"e324463005236d83e6e54795dbddd20a74533bf3","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-DIFF-3]","size":8,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (remove files during backup) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup --test --test-delay=1 ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-2], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-2], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -701,27 +2372,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-2] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-2] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-2] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-2]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 35%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] INFO: skip file removed by database: [TEST_PATH]/db/common-2/base/base2.txt -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 74%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 77%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 INFO: total backup size: 31B INFO: new backup label: [BACKUP-DIFF-4] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] @@ -729,17 +2404,168 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-4], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-4] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-4]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-4]" +backup-prior="[BACKUP-FULL-2]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-2]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + full backup -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=full --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = full DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -751,49 +2577,206 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 7%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/global/pg_control to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/global/pg_control (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 33%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] + INFO: backup file [TEST_PATH]/db/common-2/badchecksum.txt (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base1.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 54%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/base/base1.txt (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/PG_VERSION to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/common-2/PG_VERSION (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true DEBUG: File->path_create: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] DEBUG: File->exists: absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 71%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] -DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt.gz, destination_path_create = true - INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 100%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 - INFO: total backup size: 42B + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] +DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt.gz, destination_path_create = true + INFO: backup file [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 + INFO: total backup size: 8KB INFO: new backup label: [BACKUP-FULL-3] DEBUG: moving [TEST_PATH]/backrest/temp/db.tmp to [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-FULL-3], destination_path_create = false DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-FULL-3] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="full" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + diff backup (add files) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/backrest/pg_backrest.conf --no-start-stop --type=diff --stanza=db backup ------------------------------------------------------------------------------------------------------------------------------------ +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: backup start: type = diff DEBUG: cluster path is [TEST_PATH]/db/common-2 DEBUG: File->path_create: backup:cluster:[TEST_PATH]/backrest/backup/db, mode [undef] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db -DEBUG: backup_regexp_get(1, 0, 0): ^[0-9]{8}\-[0-9]{6}F$ +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 - INFO: last backup label = [BACKUP-FULL-3], version = [VERSION-1] + INFO: last backup label = [BACKUP-FULL-3], version = 0.75 +DEBUG: Db->info(): isRemote = true, dbPath = [TEST_PATH]/db/common-2 +DEBUG: Db->info=>: dbVersion = 9.3, controlVersion = 937, catalogVersion = 201306121, dbSysId = 6156904820763115222 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid DEBUG: Manifest->build DEBUG: File->manifest: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc @@ -805,27 +2788,31 @@ DEBUG: File->wait: db:absolute DEBUG: creating backup path [TEST_PATH]/backrest/temp/db.tmp DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/path-test, mode [undef] DEBUG: File->path_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] DEBUG: File->link_create: backup:absolute:/test to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/link-test, hard = false, relative = false, destination_path_create = false -DEBUG: hard-linking [TEST_PATH]/db/common-2/PG_VERSION from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/PG_VERSION to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/PG_VERSION to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/PG_VERSION, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/badchecksum.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/badchecksum.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/badchecksum.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/badchecksum.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/common-2/base/base1.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/common-2/base/base1.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/base/base1.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base1.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base, mode [undef] +DEBUG: hardlink [TEST_PATH]/db/common-2/global/pg_control to [BACKUP-FULL-3] +DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/base/global/pg_control to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/global/pg_control, hard = true, relative = false, destination_path_create = true +DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/global, mode [undef] DEBUG: File->link_create: backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2 to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc/2, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/base/pg_tblspc, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: hard-linking [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt from [BACKUP-FULL-3] +DEBUG: hardlink [TEST_PATH]/db/tablespace/ts2-2/tablespace2c.txt to [BACKUP-FULL-3] DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-FULL-3]/tablespace/2/tablespace2c.txt to backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2/tablespace2c.txt, hard = true, relative = false, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/temp/db.tmp/tablespace/2, mode [undef] -DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-1], mode = [undef], user = [undef], group = [undef] +DEBUG: File->copy: remote db:absolute:[TEST_PATH]/db/common-2/base/base2.txt to local backup:tmp:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, source_compressed = false, destination_compress = true, ignore_missing_source = true, destination_path_create = true, modification_time = [MODIFICATION-TIME-2], mode = [undef], user = [undef], group = [undef] DEBUG: File->move: absolute:[TEST_PATH]/backrest/temp/db.tmp/file.tmp to absolute:[TEST_PATH]/backrest/temp/db.tmp/base/base/base2.txt.gz, destination_path_create = true INFO: backup file [TEST_PATH]/db/common-2/base/base2.txt (9B, 100%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 INFO: total backup size: 9B @@ -835,13 +2822,167 @@ DEBUG: File->move: backup:tmp to backup:cluster:[BACKUP-DIFF-5], destination DEBUG: File->remove: backup:cluster:[TEST_PATH]/backrest/backup/db/latest DEBUG: File->link_create: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] to backup:cluster:[TEST_PATH]/backrest/backup/db/latest, hard = false, relative = true, destination_path_create = true DEBUG: File->path_create: backup:absolute:[TEST_PATH]/backrest/backup/db, mode [undef] +DEBUG: BackupInfo->backupAdd: backupLabel = [BACKUP-DIFF-5] INFO: backup stop +DEBUG: BackupInfo->new: backupClusterPath = [TEST_PATH]/backrest/backup/db INFO: archive rentention type not set - archive logs will not be expired DEBUG: safe exit called, terminating threads ++ supplemental file: [TEST_PATH]/db/pg_backrest.conf +---------------------------------------------------- +[db] +db-path=[TEST_PATH]/db/common-2 + +[db:restore:tablespace-map] +1=[TEST_PATH]/db/tablespace/ts1-2 +2=[TEST_PATH]/db/tablespace/ts2-2 + +[global:backup] +backup-host=127.0.0.1 +backup-user=backrest + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/local +repo-remote-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/pg_backrest.conf +---------------------------------------------------------- +[db] +db-host=127.0.0.1 +db-path=[TEST_PATH]/db/common-2 +db-user=dsteele + +[db:command] +cmd-psql-option=--port=[PORT-1] + +[global:backup] +archive-copy=y +hardlink=y +start-fast=y + +[global:command] +cmd-psql=[PGSQL_BIN_PATH]/psql -X %option% -h [TEST_PATH]/db +cmd-remote=[BACKREST_BIN_PATH]/pg_backrest_remote + +[global:general] +repo-path=[TEST_PATH]/backrest + +[global:log] +log-level-console=debug +log-level-file=trace + ++ supplemental file: [TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/backup.manifest +----------------------------------------------------------------------------------- +[backrest] +backrest-checksum="[CHECKSUM]" +backrest-format=[FORMAT-1] +backrest-version="[VERSION-1]" + +[backup] +backup-label="[BACKUP-DIFF-5]" +backup-prior="[BACKUP-FULL-3]" +backup-timestamp-copy-start=[TIMESTAMP] +backup-timestamp-start=[TIMESTAMP] +backup-timestamp-stop=[TIMESTAMP] +backup-type="diff" + +[backup:db] +db-catalog-version=201306121 +db-control-version=937 +db-system-id=6156904820763115222 +db-version="9.3" + +[backup:option] +option-archive-check=true +option-archive-copy=true +option-compress=true +option-hardlink=true +option-start-stop=false + +[backup:path] +base={"path":"[TEST_PATH]/db/common-2"} +tablespace/2={"link":"2","path":"[TEST_PATH]/db/tablespace/ts2-2"} + +[base:file] +PG_VERSION={"checksum":"e1f7a3a299f62225cba076fc6d3d6e677f303482","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":3,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +badchecksum.txt={"checksum":"f927212cd08d11a42a666b2f04235398e9ceeb51","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":11,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base1.txt={"checksum":"7579ada0808d7f98087a0a586d0df9de009cdc33","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +base/base2.txt={"checksum":"cafac3c59553f2cfde41ce2e62e7662295f108c0","group":"[GROUP-1]","mode":"0600","size":9,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +global/pg_control={"checksum":"56fe5780b8dca9705e0c22032a83828860a21235","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":8192,"timestamp":[TIMESTAMP-2],"user":"[USER-1]"} + +[base:link] +link-test={"destination":"/test","group":"[GROUP-1]","user":"[USER-1]"} +pg_tblspc/2={"destination":"[TEST_PATH]/db/tablespace/ts2-2","group":"[GROUP-1]","user":"[USER-1]"} + +[base:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +base={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +global={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +path-test={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} +pg_tblspc={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + +[tablespace/2:file] +tablespace2.txt={"checksum":"dc7f76e43c46101b47acc55ae4d593a9e6983578","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":7,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} +tablespace2c.txt={"checksum":"dfcb8679956b734706cf87259d50c88f83e80e66","group":"[GROUP-1]","mode":"0600","reference":"[BACKUP-FULL-3]","size":12,"timestamp":[TIMESTAMP-1],"user":"[USER-1]"} + +[tablespace/2:path] +.={"group":"[GROUP-1]","mode":"0700","user":"[USER-1]"} + ++ 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":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2964,"backup-info-repo-size-delta":2658,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[backup:history] +[BACKUP-FULL-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":1668,"backup-info-repo-size-delta":1668,"backup-info-size":8199,"backup-info-size-delta":8199,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2496,"backup-info-repo-size-delta":2285,"backup-info-size":8217,"backup-info-size-delta":18,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-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":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-1]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-2]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2999,"backup-info-repo-size-delta":2788,"backup-info-size":8224,"backup-info-size-delta":25,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2970,"backup-info-repo-size-delta":2701,"backup-info-size":8230,"backup-info-size-delta":13,"backup-prior":"[BACKUP-DIFF-2]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3039,"backup-info-repo-size-delta":2741,"backup-info-size":8234,"backup-info-size-delta":8,"backup-prior":"[BACKUP-INCR-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-2]","[BACKUP-INCR-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2830,"backup-info-repo-size-delta":2643,"backup-info-size":8234,"backup-info-size-delta":39,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-INCR-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":3087,"backup-info-repo-size-delta":2761,"backup-info-size":8234,"backup-info-size-delta":0,"backup-prior":"[BACKUP-DIFF-3]","backup-reference":["[BACKUP-FULL-2]","[BACKUP-DIFF-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"incr","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-4]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2482,"backup-info-repo-size-delta":2295,"backup-info-size":8225,"backup-info-size-delta":30,"backup-prior":"[BACKUP-FULL-2]","backup-reference":["[BACKUP-FULL-2]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-FULL-3]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2550,"backup-info-repo-size-delta":2550,"backup-info-size":8234,"backup-info-size-delta":8234,"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"full","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} +[BACKUP-DIFF-5]={"backrest-format":4,"backrest-version":"0.75","backup-archive-start":null,"backup-archive-stop":null,"backup-info-repo-size":2964,"backup-info-repo-size-delta":2658,"backup-info-size":8243,"backup-info-size-delta":9,"backup-prior":"[BACKUP-FULL-3]","backup-reference":["[BACKUP-FULL-3]"],"backup-timestamp-start":[TIMESTAMP],"backup-timestamp-stop":[TIMESTAMP],"backup-type":"diff","db-id":1,"option-archive-check":true,"option-archive-copy":true,"option-compress":true,"option-hardlink":true,"option-start-stop":false} + +[db] +db-catalog-version=201306121 +db-control-version=937 +db-id=1 +db-system-id=6156904820763115222 +db-version="9.3" + +[db:history] +1={"db-catalog-version":201306121,"db-control-version":937,"db-system-id":6156904820763115222,"db-version":"9.3"} + restore delta, backup '[BACKUP-DIFF-5]' (no tablespace remap) -> [BACKREST_BIN_PATH]/pg_backrest.pl --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore +> [BACKREST_BIN_PATH]/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --delta --set=[BACKUP-DIFF-5] --no-tablespace --stanza=db restore ------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = db, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/postmaster.pid INFO: Restoring backup set [BACKUP-DIFF-5] DEBUG: File->exists: backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5] @@ -858,6 +2999,7 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 INFO: 1 file(s) removed during cleanup INFO: 1 link(s) removed during cleanup DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/path-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 @@ -866,25 +3008,28 @@ DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/link-test DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2 DEBUG: starting restore in main process +DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/global/pg_control +DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/global/pg_control, compressed = false, hash_type = sha1 + INFO: [TEST_PATH]/db/common-2/global/pg_control exists and matches backup (8KB, 99%) checksum 56fe5780b8dca9705e0c22032a83828860a21235 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/badchecksum.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 21%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 + INFO: [TEST_PATH]/db/common-2/badchecksum.txt exists and matches backup (11B, 99%) checksum f927212cd08d11a42a666b2f04235398e9ceeb51 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base2.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 39%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 + INFO: [TEST_PATH]/db/common-2/base/base2.txt exists and matches backup (9B, 99%) checksum cafac3c59553f2cfde41ce2e62e7662295f108c0 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/base/base1.txt, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 56%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 + INFO: [TEST_PATH]/db/common-2/base/base1.txt exists and matches backup (9B, 99%) checksum 7579ada0808d7f98087a0a586d0df9de009cdc33 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION DEBUG: File->hash: db:absolute:[TEST_PATH]/db/common-2/PG_VERSION, compressed = false, hash_type = sha1 - INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 62%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 + INFO: [TEST_PATH]/db/common-2/PG_VERSION exists and matches backup (3B, 99%) checksum e1f7a3a299f62225cba076fc6d3d6e677f303482 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2c.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt, destination_path_create = false - INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 86%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 + INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2c.txt restore (12B, 99%) checksum dfcb8679956b734706cf87259d50c88f83e80e66 DEBUG: File->exists: db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt -DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-1], mode = 0600, user = [USER-1], group = [GROUP-1] +DEBUG: File->copy: remote backup:cluster:[TEST_PATH]/backrest/backup/db/[BACKUP-DIFF-5]/tablespace/2/tablespace2.txt.gz to local db:absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, source_compressed = true, destination_compress = false, ignore_missing_source = false, destination_path_create = false, modification_time = [MODIFICATION-TIME-2], mode = 0600, user = [USER-1], group = [GROUP-1] DEBUG: File->owner: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp, user = [USER-1], group = [GROUP-1] DEBUG: File->move: absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt.backrest.tmp to absolute:[TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt, destination_path_create = false INFO: [TEST_PATH]/db/common-2/pg_tblspc/2/tablespace2.txt restore (7B, 100%) checksum dc7f76e43c46101b47acc55ae4d593a9e6983578 @@ -893,3 +3038,359 @@ DEBUG: File->remove: db:absolute:[TEST_PATH]/db/common-2/recovery.conf INFO: wrote [TEST_PATH]/db/common-2/recovery.conf INFO: restore complete DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +stanza db + status: ok + oldest backup label: [BACKUP-FULL-2] + oldest backup timestamp: [TIMESTAMP-STR] + latest backup label: [BACKUP-DIFF-5] + latest backup timestamp: [TIMESTAMP-STR] + +stanza db_empty + status: error (no valid backups) +DEBUG: safe exit called, terminating threads + +info +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = [undef], remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza +[ + { + "backup" : [ + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8199, + "repository" : { + "delta" : 1668, + "size" : 1668 + }, + "size" : 8199 + }, + "label" : "[BACKUP-FULL-2]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 25, + "repository" : { + "delta" : 2788, + "size" : 2999 + }, + "size" : 8224 + }, + "label" : "[BACKUP-DIFF-2]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 13, + "repository" : { + "delta" : 2701, + "size" : 2970 + }, + "size" : 8230 + }, + "label" : "[BACKUP-INCR-3]", + "prior" : "[BACKUP-DIFF-2]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8, + "repository" : { + "delta" : 2741, + "size" : 3039 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-4]", + "prior" : "[BACKUP-INCR-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-2]", + "[BACKUP-INCR-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 39, + "repository" : { + "delta" : 2643, + "size" : 2830 + }, + "size" : 8234 + }, + "label" : "[BACKUP-DIFF-3]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 0, + "repository" : { + "delta" : 2761, + "size" : 3087 + }, + "size" : 8234 + }, + "label" : "[BACKUP-INCR-5]", + "prior" : "[BACKUP-DIFF-3]", + "reference" : [ + "[BACKUP-FULL-2]", + "[BACKUP-DIFF-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "incr" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 30, + "repository" : { + "delta" : 2295, + "size" : 2482 + }, + "size" : 8225 + }, + "label" : "[BACKUP-DIFF-4]", + "prior" : "[BACKUP-FULL-2]", + "reference" : [ + "[BACKUP-FULL-2]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 8234, + "repository" : { + "delta" : 2550, + "size" : 2550 + }, + "size" : 8234 + }, + "label" : "[BACKUP-FULL-3]", + "prior" : null, + "reference" : null, + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "full" + }, + { + "archive" : { + "start" : null, + "stop" : null + }, + "backrest" : { + "format" : [FORMAT-1], + "version" : "[VERSION-1]" + }, + "database" : { + "id" : 1 + }, + "info" : { + "delta" : 9, + "repository" : { + "delta" : 2658, + "size" : 2964 + }, + "size" : 8243 + }, + "label" : "[BACKUP-DIFF-5]", + "prior" : "[BACKUP-FULL-3]", + "reference" : [ + "[BACKUP-FULL-3]" + ], + "timestamp" : { + "start" : [TIMESTAMP], + "stop" : [TIMESTAMP] + }, + "type" : "diff" + } + ], + "db" : [ + { + "id" : "1", + "system-id" : 6156904820763115222, + "version" : "9.3" + } + ], + "name" : "db", + "status" : { + "code" : 0, + "message" : "ok" + } + }, + { + "backup" : [], + "db" : [], + "name" : "db_empty", + "status" : { + "code" : 2, + "message" : "no valid backups" + } + } +] +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +stanza bogus + status: error (missing stanza path) +DEBUG: safe exit called, terminating threads + +info bogus +> ../bin/pg_backrest --config=[TEST_PATH]/db/pg_backrest.conf --stanza=bogus info --output=json +------------------------------------------------------------------------------------------------------------------------------------ +DEBUG: Remote->new: host = 127.0.0.1, user = [USER-2], stanza = bogus, remote-repo-path = [TEST_PATH]/backrest, command = [BACKREST_BIN_PATH]/pg_backrest_remote +DEBUG: Info->listStanza: stanza = bogus +[ + { + "backup" : [], + "db" : [], + "name" : "bogus", + "status" : { + "code" : 1, + "message" : "missing stanza path" + } + } +] +DEBUG: safe exit called, terminating threads diff --git a/test/test.pl b/test/test.pl index 819458eef..fc87d2a55 100755 --- a/test/test.pl +++ b/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,54 +248,76 @@ if (-e './test.pl' && -e '../bin/pg_backrest.pl' && open($hVersion, '<', '../VER my $iRun = 0; -do +eval { - BackRestTestCommon_Setup($strTestPath, $stryTestVersion[0], $iModuleTestRun, $bDryRun, $bNoCleanup, $bLogForce); - - &log(INFO, "TESTING psql-bin = $stryTestVersion[0]\n"); - - if ($bInfinite) + do { - $iRun++; - &log(INFO, "INFINITE - RUN ${iRun}\n"); - } - - if ($strModule eq 'all' || $strModule eq 'utility') - { - BackRestTestUtility_Test($strModuleTest); - } - - if ($strModule eq 'all' || $strModule eq 'config') - { - BackRestTestConfig_Test($strModuleTest); - } - - if ($strModule eq 'all' || $strModule eq 'file') - { - BackRestTestFile_Test($strModuleTest); - } - - if ($strModule eq 'all' || $strModule eq 'backup') - { - BackRestTestBackup_Test($strModuleTest, $iThreadMax); - - if (@stryTestVersion > 1 && ($strModuleTest eq 'all' || $strModuleTest eq 'full')) + if (BackRestTestCommon_Setup($strTestPath, $stryTestVersion[0], $iModuleTestRun, $bDryRun, $bNoCleanup, $bLogForce)) { - for (my $iVersionIdx = 1; $iVersionIdx < @stryTestVersion; $iVersionIdx++) + &log(INFO, "TESTING psql-bin = $stryTestVersion[0]\n"); + + if ($bInfinite) { - BackRestTestCommon_Setup($strTestPath, $stryTestVersion[$iVersionIdx], $iModuleTestRun, $bDryRun, $bNoCleanup); - &log(INFO, "TESTING psql-bin = $stryTestVersion[$iVersionIdx] for backup/full\n"); - BackRestTestBackup_Test('full', $iThreadMax); + $iRun++; + &log(INFO, "INFINITE - RUN ${iRun}\n"); + } + + if ($strModule eq 'all' || $strModule eq 'utility') + { + BackRestTestUtility_Test($strModuleTest); + } + + if ($strModule eq 'all' || $strModule eq 'config') + { + BackRestTestConfig_Test($strModuleTest); + } + + if ($strModule eq 'all' || $strModule eq 'file') + { + BackRestTestFile_Test($strModuleTest); + } + + if ($strModule eq 'all' || $strModule eq 'backup') + { + BackRestTestBackup_Test($strModuleTest, $iThreadMax); + + if (@stryTestVersion > 1 && ($strModuleTest eq 'all' || $strModuleTest eq 'full')) + { + for (my $iVersionIdx = 1; $iVersionIdx < @stryTestVersion; $iVersionIdx++) + { + BackRestTestCommon_Setup($strTestPath, $stryTestVersion[$iVersionIdx], + $iModuleTestRun, $bDryRun, $bNoCleanup); + &log(INFO, "TESTING psql-bin = $stryTestVersion[$iVersionIdx] for backup/full\n"); + BackRestTestBackup_Test('full', $iThreadMax); + } + } + } + + if ($strModule eq 'compare') + { + BackRestTestCompare_Test($strModuleTest); } } } + while ($bInfinite); +}; - if ($strModule eq 'compare') +if ($@) +{ + my $oMessage = $@; + + # If a backrest exception then return the code - don't confess + if ($oMessage->isa('BackRest::Exception')) { - BackRestTestCompare_Test($strModuleTest); + # syswrite(*STDOUT, $oMessage->message() . "\n"); + syswrite(*STDOUT, $oMessage->trace()); + exit $oMessage->code(); } + + syswrite(*STDOUT, $oMessage); + exit 255;; } -while ($bInfinite); + if (!$bDryRun) {