1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-14 10:13:05 +02:00
pgbackrest/doc/resource/exe.cache

6002 lines
220 KiB
Plaintext
Raw Normal View History

{
"co6" : {
"all" : {
"user-guide" : [
{
"key" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"image" : "pgbackrest/vagrant/co6-db-9.4-doc-pre",
"mount" : "/backrest:/backrest",
"name" : "db-master",
"os" : "co6",
"user" : "vagrant"
},
"type" : "host",
"value" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"ip" : "172.17.0.2"
}
},
{
"key" : {
"cmd" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"sudo yum install perl perl-Time-HiRes perl-parent perl-JSON \\",
" perl-Digest-SHA perl-DBD-Pg"
],
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"cmd-extra" : "-y",
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"sudo rm -f /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -f /usr/bin/pg_backrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/lib/perl5/BackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/share/perl5/BackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/lib/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/share/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo cp -r ~/pgbackrest-release-1.11/lib/pgBackRest \\",
" /usr/share/perl5"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type f -exec chmod 644 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type d -exec chmod 755 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo cp ~/pgbackrest-release-1.11/bin/pgbackrest /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo mkdir -m 770 /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"pgBackRest 1.11 - General help",
"",
"Usage:",
" pgbackrest [options] [command]",
"",
"Commands:",
" archive-get Get a WAL segment from the archive.",
" archive-push Push a WAL segment to the archive.",
" backup Backup a database cluster.",
" check Check the configuration.",
" expire Expire backups that exceed retention.",
" help Get help.",
" info Retrieve information about backups.",
" restore Restore a database cluster.",
" stanza-create Create the required stanza data.",
" start Allow pgBackRest processes to run.",
" stop Stop pgBackRest processes from running.",
" version Get version.",
"",
"Use 'pgbackrest help [command]' for more information."
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 initdb"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"Initializing database: [ OK ]\r"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"option" : {
"listen_addresses" : {
"value" : "'*'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"option" : {
"log_line_prefix" : {
"value" : "''"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"option" : {
"log_filename" : {
"value" : "'postgresql.log'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'",
"log_filename = 'postgresql.log'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/pgsql/9.4/data"
}
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
},
"global" : {
"log-level-stderr" : {
"value" : "off"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data"
]
}
},
{
"key" : {
"cmd" : [
"sudo mkdir /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "hot_standby"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"listen_addresses = '*'",
"log_filename = 'postgresql.log'",
"log_line_prefix = ''",
"max_wal_senders = 3",
"wal_level = hot_standby"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 restart"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"successfully created"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create start 1.11: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 000000010000000000000001",
"P00 INFO: WAL segment 000000010000000000000001 successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000100000000/000000010000000000000001-2f48641558b726bcef6e6c5c1c20730dcc3119d1.gz'",
"P00 INFO: successfully created stanza demo",
"P00 INFO: stanza-create stop"
]
}
},
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" successfully stored in the archive at "
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check start 1.11: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 000000010000000000000002",
"P00 INFO: WAL segment 000000010000000000000002 successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000100000000/000000010000000000000002-97bdd422dffd63785f19d145b1399d0b52bbf2c8.gz'",
"P00 INFO: check stop"
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 INFO: backup start 1.11: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:47:29\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000003, lsn = 0/3000028",
" [filtered 763 lines of output]",
"P01 INFO: backup file /var/lib/pgsql/9.4/data/base/1/11886 (0B, 99%)",
"P00 INFO: backup file /var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum 625b50074de4cb7ec5823327b929a262b71cff40",
"P00 INFO: full backup size = 19.3MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000003, lsn = 0/30000F0",
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-144734F"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"diff backup size"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 8 lines of output]",
"P01 INFO: backup file /var/lib/pgsql/9.4/data/backup_label (236B, 2%) checksum 0c172bb9a777d5cf440efef3841a1c8207367279",
"P00 INFO: backup file /var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum ef6a151808d620396bf3d3a0a6ad506c6f393711",
"P00 INFO: diff backup size = 8.2KB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000004, lsn = 0/40000F0",
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"(full|incr|diff) backup"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
" full backup: 20161117-144734F",
" start / stop timestamp: 2016-11-17 14:47:29 / 2016-11-17 14:47:34",
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
" diff backup: 20161117-144734F_20161117-144738D",
" start / stop timestamp: 2016-11-17 14:47:35 / 2016-11-17 14:47:38",
" database size: 19.3MB, backup size: 8.2KB",
" repository size: 2.2MB, repository backup size: 344B",
" backup reference list: 20161117-144734F"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres rm /var/lib/pgsql/9.4/data/global/pg_control"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -f /var/lib/pgsql/9.4/pgstartup.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"err-expect" : "1",
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo cat /var/lib/pgsql/9.4/pgstartup.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"could not find the database system"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"postmaster: could not find the database system",
"Expected to find it in the directory \"/var/lib/pgsql/9.4/data\",",
"but could not open file \"/var/lib/pgsql/9.4/data/global/pg_control\": No such file or directory"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres find /var/lib/pgsql/9.4/data -mindepth 1 -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup begins after the next regular checkpoint completes"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 2 lines of output]",
"P00 INFO: backup start 1.11: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo --type=incr",
"P00 INFO: last backup label = 20161117-144734F_20161117-144738D, version = 1.11",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:47:50\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
" [filtered 16 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup begins after the requested immediate checkpoint completes"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 2 lines of output]",
"P00 INFO: backup start 1.11: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --type=incr",
"P00 INFO: last backup label = 20161117-144734F_20161117-144754I, version = 1.11",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:47:55\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000008, lsn = 0/8000028",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
" [filtered 10 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 550 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "122",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 4 lines of output]",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:47:59\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000009, lsn = 0/9000028",
"P00 ERROR: [122]: unable to create /var/lib/pgbackrest/temp/demo.tmp: Permission denied",
"P00 INFO: backup stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "132",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 3 lines of output]",
"P00 INFO: last backup label = 20161117-144734F_20161117-144758I, version = 1.11",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:48:01\": backup begins after the requested immediate checkpoint completes",
"P00 ERROR: [132]: ERROR: a backup is already in progress",
" HINT: Run pg_stop_backup() and try again.:",
" select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS.US TZ'), pg_xlogfile_name(lsn), lsn::text from pg_start_backup('pgBackRest backup started at 2016-11-17 14:48:01', true) as lsn"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"stop-auto" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"cluster is already in backup mode|backup begins after the requested immediate checkpoint completes"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 2 lines of output]",
"P00 INFO: backup start 1.11: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --stop-auto --type=incr",
"P00 INFO: last backup label = 20161117-144734F_20161117-144758I, version = 1.11",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P00 WARN: the cluster is already in backup mode but no pgBackRest backup process is running. pg_stop_backup() will be called so a new backup can be started.",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:48:03\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000002000000000000000A, lsn = 0/A000028",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
" [filtered 11 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20161117-144734F|remove archive"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 772 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=detail --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20161117-144734F, start = 000000010000000000000003",
"P00 DETAIL: remove archive: start = 000000010000000000000001, stop = 000000010000000000000002",
"P00 INFO: expire stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-144814F"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire full backup set\\: 20161117-144734F|archive retention on backup 20161117-144814F|remove archive"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 772 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 INFO: expire full backup set: 20161117-144734F, 20161117-144734F_20161117-144738D, 20161117-144734F_20161117-144754I, 20161117-144734F_20161117-144758I, 20161117-144734F_20161117-144807I",
"P00 INFO: remove expired backup 20161117-144734F_20161117-144807I",
"P00 INFO: remove expired backup 20161117-144734F_20161117-144758I",
" [filtered 3 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "1"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=1",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-144820F_20161117-144824D"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire diff backup set: 20161117-144820F_20161117-144824D"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 12 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=1 --retention-full=2 --stanza=demo",
"P00 INFO: expire diff backup set: 20161117-144820F_20161117-144824D, 20161117-144820F_20161117-144828I",
"P00 INFO: remove expired backup 20161117-144820F_20161117-144828I",
"P00 INFO: remove expired backup 20161117-144820F_20161117-144824D"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=2",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-144820F_20161117-144832D"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_xlog(); \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_xlog();\""
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"new backup label"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 10 lines of output]",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000020000000000000013, lsn = 0/130000F0",
"P00 INFO: new backup label = 20161117-144820F_20161117-144837D",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=2 --retention-full=2 --stanza=demo"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-144820F_20161117-144837D"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \\",
" --retention-archive-type=diff --retention-archive=1 expire"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20161117-144820F_20161117-144832D|remove archive"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: expire start 1.11: --log-level-console=detail --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=1 --retention-archive-type=diff --retention-diff=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20161117-144814F, start = 00000002000000000000000B, stop = 00000002000000000000000B",
"P00 DETAIL: archive retention on backup 20161117-144820F, start = 00000002000000000000000C, stop = 00000002000000000000000C",
"P00 DETAIL: archive retention on backup 20161117-144820F_20161117-144832D, start = 00000002000000000000000F, stop = 00000002000000000000000F",
"P00 DETAIL: archive retention on backup 20161117-144820F_20161117-144837D, start = 000000020000000000000013",
"P00 DETAIL: remove archive: start = 00000002000000000000000D, stop = 00000002000000000000000E",
"P00 DETAIL: remove archive: start = 000000020000000000000010, stop = 000000020000000000000012",
"P00 INFO: expire stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --log-level-console=detail restore"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"demo\\/PG_VERSION - exists and matches backup|check\\/clean db path|restore global\\/pg_control"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 786 lines of output]",
"P01 DETAIL: restore file /var/lib/pgsql/9.4/data/base/1/11886 - exists and is zero size (0B, 99%)",
"P00 INFO: wrote /var/lib/pgsql/9.4/data/recovery.conf",
"P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started)",
"P00 INFO: restore file /var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum 1aecc9964bbaf5ecb5353a384cdd468c85b3ce6f",
"P00 INFO: restore stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test2;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test1_table (id int); \\",
" insert into test1_table (id) values (1);\" test1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test2_table (id int); \\",
" insert into test2_table (id) values (2);\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/pgsql/9.4/data/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"6.4M\t/var/lib/pgsql/9.4/data/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --db-include=test2 restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from test2_table;\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" id ",
"----",
" 2",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from test1_table;\" test1"
],
"err-expect" : "2",
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"relation mapping file.*contains invalid data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"psql: FATAL: relation mapping file \"base/16384/pg_filenode.map\" contains invalid data"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/pgsql/9.4/data/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"152K\t/var/lib/pgsql/9.4/data/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"drop database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"DROP DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select oid, datname from pg_database order by oid;\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"test2"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" oid | datname ",
"-------+-----------",
" 1 | template1",
" 12135 | template0",
" 12140 | postgres",
" 16385 | test2",
"(4 rows)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" create table important_table (message text); \\",
" insert into important_table values ('Important Data'); \\",
" commit; \\",
" select * from important_table;\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -Atc \"select current_timestamp\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"2016-11-17 14:49:02.607258+00"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" drop table important_table; \\",
" commit; \\",
" select * from important_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2016-11-17 14:49:02.607258+00\" restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/recovery.conf"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery_target_time"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'",
"recovery_target_time = '2016-11-17 14:49:02.607258+00'"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:48:59 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: starting point-in-time recovery to 2016-11-17 14:49:02.607258+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000018\" from archive",
"LOG: redo starts at 0/18000028",
"LOG: consistent recovery state reached at 0/180000F0",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: recovery stopping before commit of transaction 686, time 2016-11-17 14:49:02.782791+00",
"LOG: redo done at 0/190157F0",
"LOG: last completed transaction was at log time 2016-11-17 14:49:02.52186+00",
"LOG: selected new timeline ID: 5",
"LOG: restored log file \"00000004.history\" from archive",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
" [filtered 3 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" drop table important_table; \\",
" commit; \\",
" select * from important_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-144820F_20161117-144902D"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2016-11-17 14:49:02.607258+00\" restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: select * from important_table",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"starting point-in-time recovery|consistent recovery state reached"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:49:11 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: starting point-in-time recovery to 2016-11-17 14:49:02.607258+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"00000005000000000000001A\" from archive",
"LOG: redo starts at 0/1A000028",
"LOG: consistent recovery state reached at 0/1A0000F0",
"LOG: redo done at 0/1A0000F0",
"LOG: restored log file \"00000005000000000000001A\" from archive",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
" [filtered 7 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"20161117-144820F_20161117-144902D"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
" full backup: 20161117-144814F",
" start / stop timestamp: 2016-11-17 14:48:09 / 2016-11-17 14:48:14",
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
" full backup: 20161117-144820F",
" start / stop timestamp: 2016-11-17 14:48:15 / 2016-11-17 14:48:20",
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
" diff backup: 20161117-144820F_20161117-144837D",
" start / stop timestamp: 2016-11-17 14:48:34 / 2016-11-17 14:48:37",
" database size: 19.3MB, backup size: 10.2KB",
" repository size: 2.2MB, repository backup size: 1KB",
" backup reference list: 20161117-144820F",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"",
" incr backup: 20161117-144820F_20161117-144850I",
" start / stop timestamp: 2016-11-17 14:48:44 / 2016-11-17 14:48:50",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" database size: 31.9MB, backup size: 12.7MB",
" repository size: 3.7MB, repository backup size: 1.5MB",
" backup reference list: 20161117-144820F",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"",
" diff backup: 20161117-144820F_20161117-144902D",
" start / stop timestamp: 2016-11-17 14:48:58 / 2016-11-17 14:49:02",
" database size: 25.7MB, backup size: 6.5MB",
" repository size: 3MB, repository backup size: 790.1KB",
" backup reference list: 20161117-144820F",
"",
" incr backup: 20161117-144820F_20161117-144914I",
" start / stop timestamp: 2016-11-17 14:49:10 / 2016-11-17 14:49:14",
" database size: 25.6MB, backup size: 1.9MB",
" repository size: 3MB, repository backup size: 214.8KB",
" backup reference list: 20161117-144820F, 20161117-144820F_20161117-144902D"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2016-11-17 14:49:02.607258+00\" \\",
" --set=20161117-144820F_20161117-144902D restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:48:59 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: starting point-in-time recovery to 2016-11-17 14:49:02.607258+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000018\" from archive",
"LOG: redo starts at 0/18000028",
"LOG: consistent recovery state reached at 0/180000F0",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: recovery stopping before commit of transaction 686, time 2016-11-17 14:49:02.782791+00",
"LOG: redo done at 0/190157F0",
"LOG: last completed transaction was at log time 2016-11-17 14:49:02.52186+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"00000006.history\" from archive",
" [filtered 5 lines of output]"
]
}
},
{
"key" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"image" : "pgbackrest/vagrant/co6-backup-doc-pre",
"mount" : "/backrest:/backrest",
"name" : "backup",
"os" : "co6",
"user" : "vagrant"
},
"type" : "host",
"value" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"ip" : "172.17.0.3"
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-host" : {
"value" : "db-master"
},
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-path" : {
"value" : "/var/lib/pgsql/9.4/data"
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
},
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-user" : {
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"value" : "postgres"
}
},
"global" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"log-level-stderr" : {
"value" : "off"
},
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-host=db-master",
"db1-path=/var/lib/pgsql/9.4/data",
"db1-user=postgres",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/pgsql/9.4/data"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"backup-user" : {
"value" : "backrest"
},
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"log-level-stderr" : {
"value" : "off"
},
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
},
"reset" : true
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"backup-host=backup",
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"backup-user=backrest",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo find /var/lib/pgbackrest -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "db-master",
"output" : true
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo check"
],
"host" : "backup",
"output" : true
},
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"type" : "exe"
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 WARN: no prior backup exists, incr backup has been changed to full"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : false
},
"type" : "exe"
},
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
{
"key" : {
"cmd" : [
"sudo mkdir -m 750 /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"archive-async=y",
"backup-host=backup",
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"backup-user=backrest",
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"repo-path=/var/lib/pgbackrest",
"spool-path=/var/spool/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"WAL segment"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check start 1.11: --backup-host=backup --backup-user=backrest --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 00000008000000000000001E",
"P00 INFO: WAL segment 00000008000000000000001E successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000800000000/00000008000000000000001E-3bdc39c1304dec393e86a5f7940c4e54ccaf211b.gz'",
"P00 INFO: check stop"
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for all stanzas"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 ERROR: [137]: stop file exists for all stanzas"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: stop file already exists for all stanzas"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for stanza demo"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 ERROR: [137]: stop file exists for stanza demo"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"image" : "pgbackrest/vagrant/co6-db-9.4-doc-pre",
"mount" : "/backrest:/backrest",
"name" : "db-standby",
"os" : "co6",
"user" : "vagrant"
},
"type" : "host",
"value" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"ip" : "172.17.0.4"
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/pgsql/9.4/data"
},
"recovery-option" : {
"value" : "standby_mode=on"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"log-level-stderr" : {
"value" : "off"
},
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"recovery-option=standby_mode=on",
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"entering standby mode|database system is ready to accept read only connections"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:49:52 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: entering standby mode",
"LOG: restored log file \"00000008.history\" from archive",
"LOG: restored log file \"00000008000000000000001D\" from archive",
"LOG: redo starts at 0/1D000028",
"LOG: consistent recovery state reached at 0/1D0000F0",
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"LOG: database system is ready to accept read only connections",
"LOG: restored log file \"00000008000000000000001E\" from archive"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table replicated_table (message text); \\",
" insert into replicated_table values ('Important Data'); \\",
" commit; \\",
" select * from replicated_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from replicated_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"replicated_table\" does not exist",
"LINE 1: select * from replicated_table;",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select *, current_timestamp from pg_switch_xlog()\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" pg_switch_xlog | now ",
"----------------+-------------------------------",
" 0/1F0179D8 | 2016-11-17 14:50:19.183278+00",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from replicated_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+-------------------------------",
" Important Data | 2016-11-17 14:50:22.981741+00",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create user replicator password 'jw8s0F4' replication\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE ROLE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" \"host replication replicator 172.17.0.4/32 md5\" \\",
" >> /var/lib/pgsql/9.4/data/pg_hba.conf'"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 reload"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"recovery-option" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"value" : "primary_conninfo=host=172.17.0.2 port=5432 user=replicator"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"recovery-option=standby_mode=on",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"recovery-option=primary_conninfo=host=172.17.0.2 port=5432 user=replicator",
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" \"172.17.0.2:*:replication:replicator:jw8s0F4\" \\",
" >> /home/postgres/.pgpass'"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres chmod 600 /home/postgres/.pgpass"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"primary_conninfo = 'host=172.17.0.2 port=5432 user=replicator'",
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"started streaming WAL from primary"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 8 lines of output]",
"LOG: restored log file \"00000008000000000000001E\" from archive",
"LOG: restored log file \"00000008000000000000001F\" from archive",
"LOG: started streaming WAL from primary at 0/20000000 on timeline 8"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table stream_table (message text); \\",
" insert into stream_table values ('Important Data'); \\",
" commit; \\",
" select *, current_timestamp from stream_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+-------------------------------",
" Important Data | 2016-11-17 14:50:32.773154+00",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from stream_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+------------------------------",
" Important Data | 2016-11-17 14:50:32.97112+00",
"(1 row)"
]
}
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
"db2-host" : {
"value" : "db-standby"
},
"db2-path" : {
"value" : "/var/lib/pgsql/9.4/data"
},
"db2-user" : {
"value" : "postgres"
}
},
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db1-host=db-master",
"db1-path=/var/lib/pgsql/9.4/data",
"db1-user=postgres",
"db2-host=db-standby",
"db2-path=/var/lib/pgsql/9.4/data",
"db2-user=postgres",
"",
"[global]",
"backup-standby=y",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup file db-master|replay on the standby"
]
},
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 4 lines of output]",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:50:33\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000080000000000000021, lsn = 0/21000028",
"P00 INFO: wait for replay on the standby to reach 0/21000028",
"P00 INFO: replay on the standby reached 0/210000C8",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
"P02 INFO: local process 2 start for host db-2",
"P01 INFO: backup file db-master:/var/lib/pgsql/9.4/data/pg_hba.conf (4.1KB, 0%) checksum 58731e81ad21675e504278f39333f56620a52837",
"P01 INFO: backup file db-master:/var/lib/pgsql/9.4/data/pg_log/postgresql.log (2.2KB, 0%) checksum 21b6c8d70a52c133687ed59975eb778a96d5fb0f",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 stop for db-1",
"P01 INFO: backup file db-master:/var/lib/pgsql/9.4/data/backup_label (238B, 0%) checksum e1eafaededfdd232b327403fdab398e5cbabfd6e",
"P02 INFO: backup file db-standby:/var/lib/pgsql/9.4/data/base/12140/12008 (392KB, 20%) checksum 8b948bd570e034460e491fd4fb4be1ac1cf3f1cf",
"P02 INFO: backup file db-standby:/var/lib/pgsql/9.4/data/base/12140/11890 (344KB, 38%) checksum 6b24a4d7e2818392fa9fe37afa04a2f85e335bff",
" [filtered 26 lines of output]",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P02 INFO: local process 2 stop for db-2",
"P02 INFO: backup file db-standby:/var/lib/pgsql/9.4/data/base/12140/32771 (0B, 99%)",
"P00 INFO: backup file db-master:/var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum f3530ec4961256c118aad45da4887f781d1b07d6",
"P00 INFO: incr backup size = 1.8MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
" [filtered 5 lines of output]"
]
}
}
]
}
},
"default" : {
"all" : {
"user-guide" : [
{
"key" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"image" : "pgbackrest/vagrant/u14-db-9.4-doc-pre",
"mount" : "/backrest:/backrest",
"name" : "db-master",
"os" : "u14",
"user" : "vagrant"
},
"type" : "host",
"value" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"ip" : "172.17.0.2"
}
},
{
"key" : {
"cmd" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"sudo apt-get install libdbd-pg-perl"
],
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"cmd-extra" : "-y",
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"sudo rm -f /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"sudo rm -f /usr/bin/pg_backrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"sudo rm -rf /usr/lib/perl5/BackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"sudo rm -rf /usr/share/perl5/BackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/lib/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/share/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo cp -r ~/pgbackrest-release-1.11/lib/pgBackRest \\",
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
" /usr/share/perl5"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type f -exec chmod 644 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type d -exec chmod 755 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo cp ~/pgbackrest-release-1.11/bin/pgbackrest /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo mkdir -m 770 /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"pgBackRest 1.11 - General help",
"",
"Usage:",
" pgbackrest [options] [command]",
"",
"Commands:",
" archive-get Get a WAL segment from the archive.",
" archive-push Push a WAL segment to the archive.",
" backup Backup a database cluster.",
" check Check the configuration.",
" expire Expire backups that exceed retention.",
" help Get help.",
" info Retrieve information about backups.",
" restore Restore a database cluster.",
" stanza-create Create the required stanza data.",
" start Allow pgBackRest processes to run.",
" stop Stop pgBackRest processes from running.",
" version Get version.",
"",
"Use 'pgbackrest help [command]' for more information."
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_createcluster 9.4 demo"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"Creating new cluster 9.4/demo ...",
" config /etc/postgresql/9.4/demo",
" data /var/lib/postgresql/9.4/demo",
" locale C",
" socket /var/run/postgresql",
" port 5432"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-master",
"option" : {
"listen_addresses" : {
"value" : "'*'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-master",
"option" : {
"log_line_prefix" : {
"value" : "''"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
}
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
},
"global" : {
"log-level-stderr" : {
"value" : "off"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo"
]
}
},
{
"key" : {
"cmd" : [
"sudo mkdir /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-master",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "hot_standby"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"listen_addresses = '*'",
"log_line_prefix = ''",
"max_wal_senders = 3",
"wal_level = hot_standby"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo restart"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"successfully created"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create start 1.11: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 000000010000000000000001",
"P00 INFO: WAL segment 000000010000000000000001 successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000100000000/000000010000000000000001-b22f7b6fd2fc577ccb3f9de6915be8c1ff116e35.gz'",
"P00 INFO: successfully created stanza demo",
"P00 INFO: stanza-create stop"
]
}
},
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" successfully stored in the archive at "
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check start 1.11: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 000000010000000000000002",
"P00 INFO: WAL segment 000000010000000000000002 successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000100000000/000000010000000000000002-f913594f8e2cd3e4b87f2a60c7b4599502a79b2c.gz'",
"P00 INFO: check stop"
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 INFO: backup start 1.11: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:51:04\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000003, lsn = 0/3000028",
" [filtered 759 lines of output]",
"P01 INFO: backup file /var/lib/postgresql/9.4/demo/base/1/11885 (0B, 99%)",
"P00 INFO: backup file /var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum b8ab584afa6e33458753c05c5a9b3792ba3919a8",
"P00 INFO: full backup size = 19.3MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000003, lsn = 0/30000F0",
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-145109F"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"diff backup size"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 8 lines of output]",
"P01 INFO: backup file /var/lib/postgresql/9.4/demo/backup_label (236B, 2%) checksum a27ef1ec1c3cfe414a8d1e5a032b113bdae7f611",
"P00 INFO: backup file /var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum 3ffb866d9b73757a00cc4f55b29609f7ec0fc539",
"P00 INFO: diff backup size = 8.2KB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000004, lsn = 0/40000F0",
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"(full|incr|diff) backup"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
" full backup: 20161117-145109F",
" start / stop timestamp: 2016-11-17 14:51:04 / 2016-11-17 14:51:09",
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
" diff backup: 20161117-145109F_20161117-145113D",
" start / stop timestamp: 2016-11-17 14:51:10 / 2016-11-17 14:51:13",
" database size: 19.3MB, backup size: 8.2KB",
" repository size: 2.2MB, repository backup size: 340B",
" backup reference list: 20161117-145109F"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres rm /var/lib/postgresql/9.4/demo/global/pg_control"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"could not find the database system"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"The PostgreSQL server failed to start. Please check the log output:",
"postgres: could not find the database system",
"Expected to find it in the directory \"/var/lib/postgresql/9.4/demo\",",
"but could not open file \"/var/lib/postgresql/9.4/demo/global/pg_control\": No such file or directory"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres find /var/lib/postgresql/9.4/demo -mindepth 1 -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup begins after the next regular checkpoint completes"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 2 lines of output]",
"P00 INFO: backup start 1.11: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo --type=incr",
"P00 INFO: last backup label = 20161117-145109F_20161117-145113D, version = 1.11",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:51:24\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
" [filtered 15 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup begins after the requested immediate checkpoint completes"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 2 lines of output]",
"P00 INFO: backup start 1.11: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --type=incr",
"P00 INFO: last backup label = 20161117-145109F_20161117-145127I, version = 1.11",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:51:28\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000008, lsn = 0/8000028",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
" [filtered 10 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 550 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "122",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 4 lines of output]",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:51:31\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000009, lsn = 0/9000028",
"P00 ERROR: [122]: unable to create /var/lib/pgbackrest/temp/demo.tmp: Permission denied",
"P00 INFO: backup stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "132",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 3 lines of output]",
"P00 INFO: last backup label = 20161117-145109F_20161117-145131I, version = 1.11",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:51:34\": backup begins after the requested immediate checkpoint completes",
"P00 ERROR: [132]: ERROR: a backup is already in progress",
" HINT: Run pg_stop_backup() and try again.:",
" select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS.US TZ'), pg_xlogfile_name(lsn), lsn::text from pg_start_backup('pgBackRest backup started at 2016-11-17 14:51:34', true) as lsn"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"stop-auto" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"cluster is already in backup mode|backup begins after the requested immediate checkpoint completes"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 2 lines of output]",
"P00 INFO: backup start 1.11: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --stop-auto --type=incr",
"P00 INFO: last backup label = 20161117-145109F_20161117-145131I, version = 1.11",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P00 WARN: the cluster is already in backup mode but no pgBackRest backup process is running. pg_stop_backup() will be called so a new backup can be started.",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:51:36\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000002000000000000000A, lsn = 0/A000028",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
" [filtered 10 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20161117-145109F|remove archive"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 768 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=detail --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20161117-145109F, start = 000000010000000000000003",
"P00 DETAIL: remove archive: start = 000000010000000000000001, stop = 000000010000000000000002",
"P00 INFO: expire stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-145146F"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire full backup set\\: 20161117-145109F|archive retention on backup 20161117-145146F|remove archive"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 768 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 INFO: expire full backup set: 20161117-145109F, 20161117-145109F_20161117-145113D, 20161117-145109F_20161117-145127I, 20161117-145109F_20161117-145131I, 20161117-145109F_20161117-145140I",
"P00 INFO: remove expired backup 20161117-145109F_20161117-145140I",
"P00 INFO: remove expired backup 20161117-145109F_20161117-145131I",
" [filtered 3 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "1"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=1",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-145152F_20161117-145157D"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire diff backup set: 20161117-145152F_20161117-145157D"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 12 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=1 --retention-full=2 --stanza=demo",
"P00 INFO: expire diff backup set: 20161117-145152F_20161117-145157D, 20161117-145152F_20161117-145201I",
"P00 INFO: remove expired backup 20161117-145152F_20161117-145201I",
"P00 INFO: remove expired backup 20161117-145152F_20161117-145157D"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=2",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-145152F_20161117-145205D"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_xlog(); \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_xlog();\""
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"new backup label"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 9 lines of output]",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000020000000000000013, lsn = 0/130000F0",
"P00 INFO: new backup label = 20161117-145152F_20161117-145210D",
"P00 INFO: backup stop",
"P00 INFO: expire start 1.11: --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=2 --retention-full=2 --stanza=demo"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-145152F_20161117-145210D"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \\",
" --retention-archive-type=diff --retention-archive=1 expire"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20161117-145152F_20161117-145205D|remove archive"
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: expire start 1.11: --log-level-console=detail --log-level-stderr=off --repo-path=/var/lib/pgbackrest --retention-archive=1 --retention-archive-type=diff --retention-diff=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20161117-145146F, start = 00000002000000000000000B, stop = 00000002000000000000000B",
"P00 DETAIL: archive retention on backup 20161117-145152F, start = 00000002000000000000000C, stop = 00000002000000000000000C",
"P00 DETAIL: archive retention on backup 20161117-145152F_20161117-145205D, start = 00000002000000000000000F, stop = 00000002000000000000000F",
"P00 DETAIL: archive retention on backup 20161117-145152F_20161117-145210D, start = 000000020000000000000013",
"P00 DETAIL: remove archive: start = 00000002000000000000000D, stop = 00000002000000000000000E",
"P00 DETAIL: remove archive: start = 000000020000000000000010, stop = 000000020000000000000012",
"P00 INFO: expire stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --log-level-console=detail restore"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"demo\\/PG_VERSION - exists and matches backup|check\\/clean db path|restore global\\/pg_control"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 693 lines of output]",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/base/12134/PG_VERSION - exists and matches backup (4B, 99%) checksum 8dbabb96e032b8d9f1993c0e4b9141e71ade01a1",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/base/1/PG_VERSION - exists and matches backup (4B, 99%) checksum 8dbabb96e032b8d9f1993c0e4b9141e71ade01a1",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/PG_VERSION - exists and matches backup (4B, 99%) checksum 8dbabb96e032b8d9f1993c0e4b9141e71ade01a1",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/global/12086 - exists and is zero size (0B, 99%)",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/global/12038 - exists and is zero size (0B, 99%)",
" [filtered 84 lines of output]",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/base/1/11885 - exists and is zero size (0B, 99%)",
"P00 INFO: wrote /var/lib/postgresql/9.4/demo/recovery.conf",
"P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started)",
"P00 INFO: restore file /var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum e5c11be6b6709ad3ba03ede1ea5a985c0f2ac58c",
"P00 INFO: restore stop"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test2;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test1_table (id int); \\",
" insert into test1_table (id) values (1);\" test1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test2_table (id int); \\",
" insert into test2_table (id) values (2);\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/postgresql/9.4/demo/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"6.4M\t/var/lib/postgresql/9.4/demo/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --db-include=test2 restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from test2_table;\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" id ",
"----",
" 2",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from test1_table;\" test1"
],
"err-expect" : "2",
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"relation mapping file.*contains invalid data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"psql: FATAL: relation mapping file \"base/16384/pg_filenode.map\" contains invalid data"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/postgresql/9.4/demo/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"152K\t/var/lib/postgresql/9.4/demo/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"drop database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"DROP DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select oid, datname from pg_database order by oid;\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"test2"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" oid | datname ",
"-------+-----------",
" 1 | template1",
" 12134 | template0",
" 12139 | postgres",
" 16385 | test2",
"(4 rows)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" create table important_table (message text); \\",
" insert into important_table values ('Important Data'); \\",
" commit; \\",
" select * from important_table;\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -Atc \"select current_timestamp\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"2016-11-17 14:52:38.463242+00"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" drop table important_table; \\",
" commit; \\",
" select * from important_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2016-11-17 14:52:38.463242+00\" restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/9.4/demo/recovery.conf"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery_target_time"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'",
"recovery_target_time = '2016-11-17 14:52:38.463242+00'"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:52:34 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: starting point-in-time recovery to 2016-11-17 14:52:38.463242+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000018\" from archive",
" [filtered 2 lines of output]",
"LOG: incomplete startup packet",
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: recovery stopping before commit of transaction 686, time 2016-11-17 14:52:38.597348+00",
"LOG: redo done at 0/190157F0",
"LOG: last completed transaction was at log time 2016-11-17 14:52:38.295549+00",
"LOG: selected new timeline ID: 5",
"LOG: restored log file \"00000004.history\" from archive",
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" drop table important_table; \\",
" commit; \\",
" select * from important_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"20161117-145152F_20161117-145238D"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2016-11-17 14:52:38.463242+00\" restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: select * from important_table",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"starting point-in-time recovery|consistent recovery state reached"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:52:47 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: starting point-in-time recovery to 2016-11-17 14:52:38.463242+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: incomplete startup packet",
"LOG: restored log file \"00000005000000000000001A\" from archive",
"LOG: redo starts at 0/1A000028",
"LOG: consistent recovery state reached at 0/1A0000F0",
"LOG: redo done at 0/1A0000F0",
"LOG: restored log file \"00000005000000000000001A\" from archive",
" [filtered 10 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"20161117-145152F_20161117-145238D"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
" full backup: 20161117-145146F",
" start / stop timestamp: 2016-11-17 14:51:41 / 2016-11-17 14:51:46",
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
" full backup: 20161117-145152F",
" start / stop timestamp: 2016-11-17 14:51:47 / 2016-11-17 14:51:52",
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
" diff backup: 20161117-145152F_20161117-145210D",
" start / stop timestamp: 2016-11-17 14:52:06 / 2016-11-17 14:52:10",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" database size: 19.3MB, backup size: 8.2KB",
" repository size: 2.2MB, repository backup size: 346B",
" backup reference list: 20161117-145152F",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"",
" incr backup: 20161117-145152F_20161117-145224I",
" start / stop timestamp: 2016-11-17 14:52:19 / 2016-11-17 14:52:24",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" database size: 31.8MB, backup size: 12.7MB",
" repository size: 3.7MB, repository backup size: 1.5MB",
" backup reference list: 20161117-145152F",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"",
" diff backup: 20161117-145152F_20161117-145238D",
" start / stop timestamp: 2016-11-17 14:52:33 / 2016-11-17 14:52:38",
" database size: 25.7MB, backup size: 6.5MB",
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
" repository size: 3MB, repository backup size: 788.6KB",
" backup reference list: 20161117-145152F",
"",
" incr backup: 20161117-145152F_20161117-145249I",
" start / stop timestamp: 2016-11-17 14:52:46 / 2016-11-17 14:52:49",
" database size: 25.6MB, backup size: 1.9MB",
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
" repository size: 2.9MB, repository backup size: 214.3KB",
" backup reference list: 20161117-145152F, 20161117-145152F_20161117-145238D"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2016-11-17 14:52:38.463242+00\" \\",
" --set=20161117-145152F_20161117-145238D restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:52:34 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: starting point-in-time recovery to 2016-11-17 14:52:38.463242+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000018\" from archive",
" [filtered 2 lines of output]",
"LOG: incomplete startup packet",
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: recovery stopping before commit of transaction 686, time 2016-11-17 14:52:38.597348+00",
"LOG: redo done at 0/190157F0",
"LOG: last completed transaction was at log time 2016-11-17 14:52:38.295549+00",
"LOG: restored log file \"00000005.history\" from archive",
"FATAL: the database system is starting up",
" [filtered 8 lines of output]"
]
}
},
{
"key" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"image" : "pgbackrest/vagrant/u14-backup-doc-pre",
"mount" : "/backrest:/backrest",
"name" : "backup",
"os" : "u14",
"user" : "vagrant"
},
"type" : "host",
"value" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"ip" : "172.17.0.3"
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-host" : {
"value" : "db-master"
},
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
},
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-user" : {
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"value" : "postgres"
}
},
"global" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"log-level-stderr" : {
"value" : "off"
},
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
"db1-host=db-master",
"db1-path=/var/lib/postgresql/9.4/demo",
"db1-user=postgres",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"backup-user" : {
"value" : "backrest"
},
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"log-level-stderr" : {
"value" : "off"
},
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
},
"reset" : true
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"backup-host=backup",
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"backup-user=backrest",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo find /var/lib/pgbackrest -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "db-master",
"output" : true
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo check"
],
"host" : "backup",
"output" : true
},
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"type" : "exe"
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 WARN: no prior backup exists, incr backup has been changed to full"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : false
},
"type" : "exe"
},
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
{
"key" : {
"cmd" : [
"sudo mkdir -m 750 /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"archive-async=y",
"backup-host=backup",
v1.04: Various Bug Fixes Bug Fixes: * Fixed an issue an where an extraneous remote was created causing threaded backup/restore to possibly timeout and/or throw a lock conflict. (Reported by Michael Vitale.) * Fixed an issue where db-path was not required for the check command so an assert was raised when it was missing rather than a polite error message. (Reported by Michael Vitale.) * Fixed check command to throw an error when database version/id does not match that of the archive. (Fixed by Cynthia Shang.) * Fixed an issue where a remote could try to start its own remote when the backup-host option was not present in pgbackrest.conf on the database server. (Reported by Lardière Sébastien.) * Fixed an issue where the contents of pg_xlog were being backed up if the directory was symlinked. This didn't cause any issues during restore but was a waste of space. * Fixed an invalid log() call in lock routines. Features: * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta3. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Enhancements to the protocol layer for improved reliability and error handling. * All remote types now take locks. The exceptions date to when the test harness and pgBackRest were running in the same VM and no longer apply. * Exceptions are now passed back from threads as messages when possible rather than raised directly. * Temp files created during backup are now placed in the same directory as the target file. * Output lock file name when a lock cannot be acquired to aid in debugging. * Reduce calls to protocolGet() in backup/restore. * Suppress banners on SSH protocol connections. * Improved remote error messages to identify the host where the error was raised.
2016-07-30 15:42:35 +02:00
"backup-user=backrest",
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"repo-path=/var/lib/pgbackrest",
"spool-path=/var/spool/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"WAL segment"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check start 1.11: --backup-host=backup --backup-user=backrest --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --log-level-stderr=off --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 00000008000000000000001E",
"P00 INFO: WAL segment 00000008000000000000001E successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000800000000/00000008000000000000001E-9ea33faf89b4356d03acc7d740d838cd6912ee12.gz'",
"P00 INFO: check stop"
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for all stanzas"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 ERROR: [137]: stop file exists for all stanzas"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: stop file already exists for all stanzas"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for stanza demo"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: option retention-full is not set, the repository may run out of space",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
"P00 ERROR: [137]: stop file exists for stanza demo"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"image" : "pgbackrest/vagrant/u14-db-9.4-doc-pre",
"mount" : "/backrest:/backrest",
"name" : "db-standby",
"os" : "u14",
"user" : "vagrant"
},
"type" : "host",
"value" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"ip" : "172.17.0.4"
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-standby",
"option" : {
"log_filename" : {
"value" : "'postgresql.log'"
},
"log_line_prefix" : {
"value" : "''"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"log_filename = 'postgresql.log'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
},
"recovery-option" : {
"value" : "standby_mode=on"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"log-level-stderr" : {
"value" : "off"
},
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"recovery-option=standby_mode=on",
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/9.4/demo/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on",
"log_filename = 'postgresql.log'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"entering standby mode|database system is ready to accept read only connections"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2016-11-17 14:53:31 UTC",
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: entering standby mode",
"LOG: restored log file \"00000008.history\" from archive",
"LOG: incomplete startup packet",
"LOG: restored log file \"00000008000000000000001D\" from archive",
"LOG: redo starts at 0/1D000028",
"LOG: consistent recovery state reached at 0/1D0000F0",
v1.03: Check Command and Bug Fixes Bug Fixes: * Fixed an issue where keep-alives could be starved out by lots of small files during multi-threaded backup. They were also completely absent from single/multi-threaded backup resume and restore checksumming. (Reported by Janice Parkinson, Chris Barber.) * Fixed an issue where the expire command would refuse to run when explicitly called from the command line if the db-host option was set. This was not an issue when expire was run automatically after a backup (Reported by Chris Barber.) * Fixed an issue where validation was being running on archive_command even when the archive-check option was disabled. Features: * Added check command to validate that pgBackRest is configured correctly for archiving and backups. (Contributed by Cynthia Shang.) * Added the protocol-timeout option. Previously protocol-timeout was set as db-timeout + 30 seconds. * Failure to shutdown remotes at the end of the backup no longer throws an exception. Instead a warning is generated that recommends a higher protocol-timeout. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta2. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * The pg_xlogfile_name() function is no longer used to construct WAL filenames from LSNs. While this function is convenient it is not available on a standby. Instead, the archive is searched for the LSN in order to find the timeline. If due to some misadventure the LSN appears on multiple timelines then an error will be thrown, whereas before this condition would have passed unnoticed. * Option handling is now far more strict. Previously it was possible for a command to use an option that was not explicitly assigned to it. This was especially true for the backup-host and db-host options which are used to determine locality. * Improved handling of users/groups captured during backup that do not exist on the restore host. Also explicitly handle the case where user/group is not mapped to a name. * Changed version variable to a constant. It had originally been designed to play nice with a specific packaging tool but that tool was never used.
2016-07-02 16:22:52 +02:00
"LOG: database system is ready to accept read only connections",
"LOG: restored log file \"00000008000000000000001E\" from archive"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table replicated_table (message text); \\",
" insert into replicated_table values ('Important Data'); \\",
" commit; \\",
" select * from replicated_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from replicated_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"replicated_table\" does not exist",
"LINE 1: select * from replicated_table;",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select *, current_timestamp from pg_switch_xlog()\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
" pg_switch_xlog | now ",
"----------------+-------------------------------",
" 0/1F017958 | 2016-11-17 14:53:52.006618+00",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from replicated_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
" message | now ",
"----------------+-------------------------------",
" Important Data | 2016-11-17 14:53:55.135732+00",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create user replicator password 'jw8s0F4' replication\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE ROLE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" \"host replication replicator 172.17.0.4/32 md5\" \\",
" >> /etc/postgresql/9.4/demo/pg_hba.conf'"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo reload"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"recovery-option" : {
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"value" : "primary_conninfo=host=172.17.0.2 port=5432 user=replicator"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"recovery-option=standby_mode=on",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"recovery-option=primary_conninfo=host=172.17.0.2 port=5432 user=replicator",
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" \"172.17.0.2:*:replication:replicator:jw8s0F4\" \\",
" >> /home/postgres/.pgpass'"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres chmod 600 /home/postgres/.pgpass"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/9.4/demo/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
"primary_conninfo = 'host=172.17.0.2 port=5432 user=replicator'",
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"started streaming WAL from primary"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 9 lines of output]",
"LOG: restored log file \"00000008000000000000001E\" from archive",
"LOG: restored log file \"00000008000000000000001F\" from archive",
"LOG: started streaming WAL from primary at 0/20000000 on timeline 8"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table stream_table (message text); \\",
" insert into stream_table values ('Important Data'); \\",
" commit; \\",
" select *, current_timestamp from stream_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+-------------------------------",
" Important Data | 2016-11-17 14:54:03.066864+00",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from stream_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+------------------------------",
" Important Data | 2016-11-17 14:54:03.29106+00",
"(1 row)"
]
}
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
"db2-host" : {
"value" : "db-standby"
},
"db2-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
},
"db2-user" : {
"value" : "postgres"
}
},
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db1-host=db-master",
"db1-path=/var/lib/postgresql/9.4/demo",
"db1-user=postgres",
"db2-host=db-standby",
"db2-path=/var/lib/postgresql/9.4/demo",
"db2-user=postgres",
"",
"[global]",
"backup-standby=y",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup file db-master|replay on the standby"
]
},
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.07: Thread to Process Conversion and Bug Fixes Bug Fixes: * Fixed an issue where tablespaces were copied from the master during standby backup. * Fixed the check command so backup info is checked remotely and not just locally. (Fixed by Cynthia Shang.) * Fixed an issue where retention-archive was not automatically being set when retention-archive-type=diff, resulting in a less aggressive than intended expiration of archive. (Fixed by Cynthia Shang.) Features: * Converted Perl threads to processes to improve compatibility and performance. * Exclude contents of $PGDATA/pg_replslot directory so that replication slots on the master do not become part of the backup. * The archive-start and archive-stop settings are now filled in backup.manifest even when archive-check=n. * Additional warnings when archive retention settings may not have the intended effect or would allow indefinite retention. (Contributed by Cynthia Shang.) * Experimental support for non-exclusive backups in PostgreSQL 9.6 rc1. Changes to the control/catalog/WAL versions in subsequent release candidates may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Refactor of protocol minions in preparation for the new local minion. * Remove obsolete thread index variable from File() module. * Changed temporary file names to consistently use the .pgbackrest.tmp extension even if the destination file is compressed or has an appended checksum. * Improve ASSERT error handling, safely check eval blocks, and convert $@ to $EVAL_ERROR.
2016-09-07 14:29:21 +02:00
" [filtered 4 lines of output]",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-11-17 14:54:04\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000080000000000000021, lsn = 0/21000028",
"P00 INFO: wait for replay on the standby to reach 0/21000028",
"P00 INFO: replay on the standby reached 0/210000C8",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P01 INFO: local process 1 start for host db-1",
"P02 INFO: local process 2 start for host db-2",
"P01 INFO: local process 1 stop for db-1",
"P01 INFO: backup file db-master:/var/lib/postgresql/9.4/demo/backup_label (238B, 0%) checksum af60aa0818d7b0e3704d2fee01f73ba0fe9aa2cb",
"P02 INFO: backup file db-standby:/var/lib/postgresql/9.4/demo/base/12139/12007 (392KB, 20%) checksum cca28e2285617f18e4632bd97e80b944d25e84a4",
"P02 INFO: backup file db-standby:/var/lib/postgresql/9.4/demo/base/12139/11889 (344KB, 38%) checksum e74efcf5780e4df35609f4ee00f599aa620172fc",
" [filtered 26 lines of output]",
v1.09: 9.6 Support, Configurability, and Bug Fixes Bug Fixes: * Fixed the check command to prevent an error message from being logged if the backup directory does not exist. (Fixed by Cynthia Shang.) * Fixed error message to properly display the archive command when an invalid archive command is detected. (Reported by Jason O'Donnell.) * Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment. This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed. (Reported by Jens Wilke.) * Fixed a remote timeout that occurred when a local process generated checksums (during resume or restore) but did not copy files, allowing the remote to go idle. (Reported by Jens Wilke.) Features: * Non-exclusive backups will automatically be used on PostgreSQL 9.6. * Added the cmd-ssh option to allow the ssh client to be specified. (Suggested by Jens Wilke.) * Added the log-level-stderr option to control whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior. (Suggested by Sascha Biberhofer.) * Set application_name to "pgBackRest [command]" for database connections. (Suggested by Jens Wilke.) * Check that archive_mode is enabled when archive-check option enabled. Refactoring: * Clarified error message when unable to acquire pgBackRest advisory lock to make it clear that it is not a PostgreSQL backup lock. (Suggested by Jens Wilke.) * pgBackRest version number included in command start INFO log output. * Process ID logged for local process start/stop INFO log output.
2016-10-10 23:35:58 +02:00
"P02 INFO: local process 2 stop for db-2",
"P02 INFO: backup file db-standby:/var/lib/postgresql/9.4/demo/base/12139/32771 (0B, 99%)",
"P00 INFO: backup file db-master:/var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum 9b56fa7eabdcdc2acd6d823803fb185f8070199a",
"P00 INFO: incr backup size = 1.8MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
v1.06: Backup from Standby and Bug Fixes Bug Fixes: * Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.) * Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.) * Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.) Features: * Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master. * More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used. * Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done. * Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace. Refactoring: * Simplify protocol creation and identifying which host is local/remote. * Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__. * Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling. * Improve error message for links that reference links in manifest build. * Added hints to error message when relative paths are detected in archive-push or archive-get. * Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 17:49:09 +02:00
" [filtered 5 lines of output]"
]
}
}
]
}
}
}