1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-10-30 23:37:45 +02:00

v2.05: Environment Variable Options and Exclude Temporary/Unlogged Relations

Bug Fixes:

* Fix issue where relative links in $PGDATA could be stored in the backup with the wrong path. This issue did not affect absolute links and relative tablespace links were caught by other checks. (Reported by Cynthia Shang.)
* Remove incompletely implemented online option from the check command. Offline operation runs counter to the purpose of this command, which is to check if archiving and backups are working correctly. (Reported by Jason O'Donnell.)
* Fix issue where errors raised in C were not logged when called from Perl. pgBackRest properly terminated with the correct error code but lacked an error message to aid in debugging. (Reported by Douglas J Hunley.)
* Fix issue when a boolean option (e.g. delta) was specified more than once. (Reported by Yogesh Sharma.)

Features:

* Allow any option to be set in an environment variable. This includes options that previously could only be specified on the command line, e.g. stanza, and secret options that could not be specified on the command-line, e.g. repo1-s3-key-secret.
* Exclude temporary and unlogged relation (table/index) files from backup. Implemented using the same logic as the patches adding this feature to PostgreSQL, 8694cc96 and 920a5e50. Temporary relation exclusion is enabled in PostgreSQL ≥ 9.0. Unlogged relation exclusion is enabled in PostgreSQL ≥ 9.1, where the feature was introduced. (Contributed by Cynthia Shang.)
* Allow arbitrary directories and/or files to be excluded from a backup. Misuse of this feature can lead to inconsistent backups so read the --exclude documentation carefully before using. (Reviewed by Cynthia Shang.)
* Add log-subprocess option to allow file logging for local and remote subprocesses.
* PostgreSQL 11 Beta 3 support.

Improvements:

* Allow zero-size files in backup manifest to reference a prior manifest regardless of timestamp delta. (Contributed by Cynthia Shang.)
* Improve asynchronous archive-get/archive-push performance by directly checking status files. (Contributed by Stephen Frost.)
* Improve error message when a command is missing the stanza option. (Suggested by Sarah Conway.)
This commit is contained in:
David Steele
2018-08-31 13:19:43 -04:00
parent d41570c37a
commit bc7462d86d
9 changed files with 627 additions and 1632 deletions

View File

@@ -6,7 +6,7 @@ pgBackRest aims to be a simple, reliable backup and restore system that can seam
Instead of relying on traditional backup tools like tar and rsync, pgBackRest implements all backup features internally and uses a custom protocol for communicating with remote systems. Removing reliance on tar and rsync allows for better solutions to database-specific backup challenges. The custom remote protocol allows for more flexibility and limits the types of connections that are required to perform a backup which increases security.
pgBackRest [v2.04](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.04) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
pgBackRest [v2.05](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.05) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
Documentation for v1 can be found [here](http://www.pgbackrest.org/1). No further releases are planned for v1 because v2 is backward-compatible with v1 options and repositories.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -12,7 +12,7 @@
</intro>
<release-list>
<release date="XXXX-XX-XX" version="2.05dev" title="UNDER DEVELOPMENT">
<release date="2018-08-31" version="2.05" title="Environment Variable Options and Exclude Temporary/Unlogged Relations">
<release-core-list>
<release-bug-list>
<release-item>
@@ -23,14 +23,6 @@
<p>Fix issue where <i>relative</i> links in <path>$PGDATA</path> could be stored in the backup with the wrong path. This issue did not affect absolute links and relative tablespace links were caught by other checks.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-ideator id="douglas.j.hunley"/>
</release-item-contributor-list>
<p>Fix issue where errors raised in C were not logged when called from Perl. <backrest/> properly terminated with the correct error code but lacked an error message to aid in debugging.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-ideator id="jason.odonnell"/>
@@ -39,6 +31,14 @@
<p>Remove incompletely implemented <br-option>online</br-option> option from the <cmd>check</cmd> command. Offline operation runs counter to the purpose of this command, which is to check if archiving and backups are working correctly.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-ideator id="douglas.j.hunley"/>
</release-item-contributor-list>
<p>Fix issue where errors raised in C were not logged when called from Perl. <backrest/> properly terminated with the correct error code but lacked an error message to aid in debugging.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-ideator id="yogesh.sharma"/>
@@ -49,6 +49,10 @@
</release-bug-list>
<release-feature-list>
<release-item>
<p>Allow any option to be set in an environment variable. This includes options that previously could only be specified on the command line, e.g. <br-option>stanza</br-option>, and secret options that could not be specified on the command-line, e.g. <br-option>repo1-s3-key-secret</br-option>.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-contributor id="cynthia.shang"/>
@@ -57,10 +61,6 @@
<p>Exclude temporary and unlogged relation (table/index) files from backup. Implemented using the same logic as the patches adding this feature to <postgres/>, <link url="https://git.postgresql.org/pg/commitdiff/8694cc96b52a967a49725f32be7aa77fd3b6ac25">8694cc96</link> and <link url="https://git.postgresql.org/pg/commitdiff/920a5e500a119b03356fb1fb64a677eb1aa5fc6f">920a5e50</link>. Temporary relation exclusion is enabled in <postgres/> &amp;ge; <id>9.0</id>. Unlogged relation exclusion is enabled in <postgres/> &amp;ge; <id>9.1</id>, where the feature was introduced.</p>
</release-item>
<release-item>
<p>Allow any option to be set in an environment variable. This includes options that previously could only be specified on the command line, e.g. <br-option>stanza</br-option>.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-reviewer id="cynthia.shang"/>
@@ -79,6 +79,14 @@
</release-feature-list>
<release-improvement-list>
<release-item>
<release-item-contributor-list>
<release-item-contributor id="cynthia.shang"/>
</release-item-contributor-list>
<p>Allow zero-size files in backup manifest to reference a prior manifest regardless of timestamp delta.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-contributor id="stephen.frost"/>
@@ -168,14 +176,6 @@
<p>Manifest improvements. Require <postgres/> catalog version when instantiating a <code>Manifest</code> object (and not loading it from disk). Prevent manifest from being built more than once. Limit manifest build recursion (i.e. links followed) to sixteen levels to detect link loops.</p>
</release-item>
<release-item>
<release-item-contributor-list>
<release-item-contributor id="cynthia.shang"/>
</release-item-contributor-list>
<p>Allow zero-size files in backup manifest to reference a prior manifest regardless of timestamp delta.</p>
</release-item>
<release-item>
<p>Do nothing in <code>memContextMove()</code> when the context is already in the specified parent.</p>
</release-item>
@@ -201,7 +201,7 @@
</release-item>
<release-item>
<p>Enable <id>-Wstrict-prototypes</id>, <id>-Wpointer-arith</id>, <id>-Wduplicated-branches</id>, <id>-Wvla</id>, and <id>-Wduplicated-cond</id> and update code to conform.</p>
<p>Enable <id>-Wstrict-prototypes</id>, <id>-Wpointer-arith</id>, <id>-Wduplicated-branches</id>, <id>-Wvla</id>, and <id>-Wduplicated-cond</id> and update code to conform where necessary.</p>
</release-item>
<release-item>

View File

@@ -510,6 +510,10 @@
<execute-list host="{[host-build]}">
<title>Install build dependencies</title>
<execute keyword="default" user="root" show="n">
<exe-cmd>apt-get update</exe-cmd>
</execute>
<execute keyword="default" user="root">
<exe-cmd>apt-get install build-essential libssl-dev libperl-dev</exe-cmd>
<exe-cmd-extra>-y 2>&amp;1</exe-cmd-extra>

View File

@@ -39,7 +39,7 @@ push @EXPORT, qw(backrestBin backrestBinSet);
# Defines the current version of the BackRest executable. The version number is used to track features but does not affect what
# repositories or manifests can be read - that's the job of the format number.
#-----------------------------------------------------------------------------------------------------------------------------------
use constant BACKREST_VERSION => '2.05dev';
use constant BACKREST_VERSION => '2.05';
push @EXPORT, qw(BACKREST_VERSION);
# Format Format Number

View File

@@ -21303,7 +21303,7 @@ static const EmbeddedModule embeddedModule[] =
"\n"
"push @EXPORT, qw(backrestBin backrestBinSet);\n"
"\n\n\n\n\n\n"
"use constant BACKREST_VERSION => '2.05dev';\n"
"use constant BACKREST_VERSION => '2.05';\n"
"push @EXPORT, qw(BACKREST_VERSION);\n"
"\n\n\n\n\n\n"
"use constant BACKREST_FORMAT => 5;\n"

View File

@@ -23,6 +23,6 @@ repository will be invalid unless migration functions are written.
/***********************************************************************************************************************************
Software version. Currently this value is maintained in Version.pm and updated by test.pl.
***********************************************************************************************************************************/
#define PGBACKREST_VERSION "2.05dev"
#define PGBACKREST_VERSION "2.05"
#endif

View File

@@ -639,6 +639,14 @@ src/common/io/bufferWrite.h:
class: core
type: c/h
src/common/io/filter/buffer.c:
class: core
type: c
src/common/io/filter/buffer.h:
class: core
type: c/h
src/common/io/filter/filter.c:
class: core
type: c
@@ -655,6 +663,14 @@ src/common/io/filter/group.h:
class: core
type: c/h
src/common/io/filter/size.c:
class: core
type: c
src/common/io/filter/size.h:
class: core
type: c/h
src/common/io/handle.c:
class: core
type: c
@@ -755,6 +771,14 @@ src/common/type/convert.h:
class: core
type: c/h
src/common/type/json.c:
class: core
type: c
src/common/type/json.h:
class: core
type: c/h
src/common/type/keyValue.c:
class: core
type: c
@@ -811,6 +835,30 @@ src/common/wait.h:
class: core
type: c/h
src/compress/gzip.c:
class: core
type: c
src/compress/gzip.h:
class: core
type: c/h
src/compress/gzipCompress.c:
class: core
type: c
src/compress/gzipCompress.h:
class: core
type: c/h
src/compress/gzipDecompress.c:
class: core
type: c
src/compress/gzipDecompress.h:
class: core
type: c/h
src/config/config.auto.c:
class: core/auto
type: c
@@ -899,6 +947,30 @@ src/crypto/random.h:
class: core
type: c/h
src/info/info.c:
class: core
type: c
src/info/info.h:
class: core
type: c/h
src/info/infoArchive.c:
class: core
type: c
src/info/infoArchive.h:
class: core
type: c/h
src/info/infoPg.c:
class: core
type: c
src/info/infoPg.h:
class: core
type: c/h
src/main.c:
class: core
type: c
@@ -1391,6 +1463,10 @@ test/src/module/common/typeConvertTest.c:
class: test/module
type: c
test/src/module/common/typeJsonTest.c:
class: test/module
type: c
test/src/module/common/typeKeyValueTest.c:
class: test/module
type: c
@@ -1423,6 +1499,10 @@ test/src/module/common/waitTest.c:
class: test/module
type: c
test/src/module/compress/gzipTest.c:
class: test/module
type: c
test/src/module/config/configTest.c:
class: test/module
type: c
@@ -1459,6 +1539,18 @@ test/src/module/help/helpTest.c:
class: test/module
type: c
test/src/module/info/infoArchiveTest.c:
class: test/module
type: c
test/src/module/info/infoPgTest.c:
class: test/module
type: c
test/src/module/info/infoTest.c:
class: test/module
type: c
test/src/module/perl/configTest.c:
class: test/module
type: c