1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-04 09:43:08 +02:00

v2.39: Verify and File Bundling

Bug Fixes:

* Fix error thrown from FINALLY() causing an infinite loop. (Reviewed by Stephen Frost.)
* Error on all lock failures except another process holding the lock. (Reviewed by Reid Thompson, Geir Råness. Reported by Geir Råness.)

Features:

* Backup file bundling for improved small file support. (Reviewed by Reid Thompson, Stefan Fercot, Chris Bandy.)
* Verify command to validate the contents of a repository. (Contributed by Cynthia Shang, Reid Thompson. Reviewed by David Steele, Stefan Fercot.)
* PostgreSQL 15 support. (Reviewed by Stefan Fercot.)
* Show backup percent complete in info output. (Contributed by Reid Thompson. Reviewed by David Steele.)
* Auto-select backup for restore command --type=lsn. (Contributed by Reid Thompson. Reviewed by Stefan Fercot, David Steele.)
* Suppress existing WAL warning when archive-mode-check is disabled. (Contributed by Reid Thompson. Reviewed by David Steele.)
* Add AWS IMDSv2 support. (Contributed by Nuno Pires. Reviewed by David Steele.)

Improvements:

* Allow repo-hardlink option to be changed after full backup. (Reviewed by Reid Thompson.)
* Increase precision of percent complete logging for backup and restore. (Contributed by Reid Thompson. Reviewed by David Steele.)
* Improve path validation for repo-* commands. (Contributed by Reid Thompson. Reviewed by David Steele.)
* Improve stop command to honor stanza option. (Contributed by Reid Thompson. Reviewed by David Steele. Suggested by ragaoua.)
* Improve error message for invalid repo-azure-key. (Contributed by Reid Thompson. Reviewed by David Steele. Suggested by Seth Daniel.)
* Add hint to check the log on archive-get/archive-push async error. (Reviewed by Reid Thompson.)
* Add ClockError for unexpected clock skew and timezone changes. (Reviewed by Greg Sabino Mullane, Stefan Fercot. Suggested by Greg Sabino Mullane.)
* Strip extensions from history manifest before showing in error message. (Reviewed by Stefan Fercot.)
* Add user:group to lock permission error. (Reviewed by Reid Thompson.)

Documentation Bug Fixes:

* Fix incorrect reference to stanza-update in the user guide. (Fixed by Abubakar Mohammed. Reviewed by David Steele.)
* Fix example for repo-gcs-key-type option in configuration reference. (Reviewed by Reid Thompson.)
* Fix tls-server-auth example and add clarifications. (Reviewed by Reid Thompson.)

Documentation Improvements:

* Simplify messaging around supported versions in the documentation. (Reviewed by Stefan Fercot, Reid Thompson, Greg Sabino Mullane.)
* Add option type descriptions. (Contributed by Reid Thompson. Reviewed by David Steele.)
* Add FAQ about backup types and restore speed. (Contributed by David Christensen. Reviewed by Reid Thompson.)
* Document required base branch for pull requests. (Contributed by David Christensen. Reviewed by Reid Thompson.)
This commit is contained in:
David Steele 2022-05-16 08:46:24 -04:00
parent 19dd015d58
commit 901e829f6d
10 changed files with 1746 additions and 544 deletions

View File

@ -339,7 +339,7 @@ pgbackrest/test/test.pl --vm-build --vm=u20
--- output ---
P00 INFO: test begin on x86_64 - log level info
P00 INFO: Using cached pgbackrest/test:u20-base-20210930A image (7ffb73ceb9a2e3aad2cba7eb5c8e28fc3982db18) ...
P00 INFO: Using cached pgbackrest/test:u20-base-20220504A image (45b0905785dfd06c867b4067563171970c7581c5) ...
P00 INFO: Building pgbackrest/test:u20-test image ...
P00 INFO: Build Complete
```

View File

@ -4,7 +4,7 @@
pgBackRest aims to be a reliable, easy-to-use backup and restore solution that can seamlessly scale up to the largest databases and workloads by utilizing algorithms that are optimized for database-specific requirements.
pgBackRest [v2.38](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.38) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
pgBackRest [v2.39](https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.39) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
Please find us on [GitHub](https://github.com/pgbackrest/pgbackrest) and give us a star if you like pgBackRest!

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,21 +2,21 @@
<table-cell>build/common</table-cell>
<table-cell>8/8 (100.0%)</table-cell>
<table-cell>10/10 (100.0%)</table-cell>
<table-cell>97/97 (100.0%)</table-cell>
<table-cell>96/96 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>build/config</table-cell>
<table-cell>30/30 (100.0%)</table-cell>
<table-cell>432/432 (100.0%)</table-cell>
<table-cell>903/903 (100.0%)</table-cell>
<table-cell>440/440 (100.0%)</table-cell>
<table-cell>914/914 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>build/error</table-cell>
<table-cell>6/6 (100.0%)</table-cell>
<table-cell>26/26 (100.0%)</table-cell>
<table-cell>77/77 (100.0%)</table-cell>
<table-cell>78/78 (100.0%)</table-cell>
</table-row>
<table-row>
@ -30,56 +30,56 @@
<table-cell>command</table-cell>
<table-cell>4/4 (100.0%)</table-cell>
<table-cell>50/50 (100.0%)</table-cell>
<table-cell>94/94 (100.0%)</table-cell>
<table-cell>93/93 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/archive</table-cell>
<table-cell>13/13 (100.0%)</table-cell>
<table-cell>76/76 (100.0%)</table-cell>
<table-cell>223/223 (100.0%)</table-cell>
<table-cell>225/225 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/archive/get</table-cell>
<table-cell>9/9 (100.0%)</table-cell>
<table-cell>196/196 (100.0%)</table-cell>
<table-cell>469/469 (100.0%)</table-cell>
<table-cell>466/466 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/archive/push</table-cell>
<table-cell>12/12 (100.0%)</table-cell>
<table-cell>130/130 (100.0%)</table-cell>
<table-cell>406/406 (100.0%)</table-cell>
<table-cell>132/132 (100.0%)</table-cell>
<table-cell>407/407 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/backup</table-cell>
<table-cell>36/36 (100.0%)</table-cell>
<table-cell>544/544 (100.0%)</table-cell>
<table-cell>1244/1244 (100.0%)</table-cell>
<table-cell>532/532 (100.0%)</table-cell>
<table-cell>1253/1253 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/check</table-cell>
<table-cell>8/8 (100.0%)</table-cell>
<table-cell>62/62 (100.0%)</table-cell>
<table-cell>139/139 (100.0%)</table-cell>
<table-cell>136/136 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/control</table-cell>
<table-cell>4/4 (100.0%)</table-cell>
<table-cell>30/30 (100.0%)</table-cell>
<table-cell>62/62 (100.0%)</table-cell>
<table-cell>32/32 (100.0%)</table-cell>
<table-cell>59/59 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/expire</table-cell>
<table-cell>10/10 (100.0%)</table-cell>
<table-cell>240/240 (100.0%)</table-cell>
<table-cell>396/396 (100.0%)</table-cell>
<table-cell>397/397 (100.0%)</table-cell>
</table-row>
<table-row>
@ -92,15 +92,15 @@
<table-row>
<table-cell>command/info</table-cell>
<table-cell>12/12 (100.0%)</table-cell>
<table-cell>320/320 (100.0%)</table-cell>
<table-cell>664/664 (100.0%)</table-cell>
<table-cell>328/328 (100.0%)</table-cell>
<table-cell>666/666 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/local</table-cell>
<table-cell>1/1 (100.0%)</table-cell>
<table-cell>---</table-cell>
<table-cell>8/8 (100.0%)</table-cell>
<table-cell>7/7 (100.0%)</table-cell>
</table-row>
<table-row>
@ -112,16 +112,16 @@
<table-row>
<table-cell>command/repo</table-cell>
<table-cell>8/8 (100.0%)</table-cell>
<table-cell>108/108 (100.0%)</table-cell>
<table-cell>207/207 (100.0%)</table-cell>
<table-cell>9/9 (100.0%)</table-cell>
<table-cell>110/110 (100.0%)</table-cell>
<table-cell>227/227 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/restore</table-cell>
<table-cell>28/28 (100.0%)</table-cell>
<table-cell>504/504 (100.0%)</table-cell>
<table-cell>1059/1059 (100.0%)</table-cell>
<table-cell>590/590 (100.0%)</table-cell>
<table-cell>1135/1135 (100.0%)</table-cell>
</table-row>
<table-row>
@ -133,72 +133,72 @@
<table-row>
<table-cell>command/stanza</table-cell>
<table-cell>6/6 (100.0%)</table-cell>
<table-cell>5/5 (100.0%)</table-cell>
<table-cell>106/106 (100.0%)</table-cell>
<table-cell>149/149 (100.0%)</table-cell>
<table-cell>135/135 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>command/verify</table-cell>
<table-cell>20/20 (100.0%)</table-cell>
<table-cell>276/276 (100.0%)</table-cell>
<table-cell>723/723 (100.0%)</table-cell>
<table-cell>21/21 (100.0%)</table-cell>
<table-cell>316/316 (100.0%)</table-cell>
<table-cell>750/750 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common</table-cell>
<table-cell>173/173 (100.0%)</table-cell>
<table-cell>554/554 (100.0%)</table-cell>
<table-cell>1907/1907 (100.0%)</table-cell>
<table-cell>176/176 (100.0%)</table-cell>
<table-cell>570/570 (100.0%)</table-cell>
<table-cell>1935/1935 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress</table-cell>
<table-cell>11/11 (100.0%)</table-cell>
<table-cell>24/24 (100.0%)</table-cell>
<table-cell>105/105 (100.0%)</table-cell>
<table-cell>103/103 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress/bz2</table-cell>
<table-cell>13/13 (100.0%)</table-cell>
<table-cell>20/20 (100.0%)</table-cell>
<table-cell>173/173 (100.0%)</table-cell>
<table-cell>176/176 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress/gz</table-cell>
<table-cell>13/13 (100.0%)</table-cell>
<table-cell>22/22 (100.0%)</table-cell>
<table-cell>165/165 (100.0%)</table-cell>
<table-cell>168/168 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress/lz4</table-cell>
<table-cell>15/15 (100.0%)</table-cell>
<table-cell>24/24 (100.0%)</table-cell>
<table-cell>177/177 (100.0%)</table-cell>
<table-cell>179/179 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/compress/zst</table-cell>
<table-cell>13/13 (100.0%)</table-cell>
<table-cell>12/12 (100.0%)</table-cell>
<table-cell>146/146 (100.0%)</table-cell>
<table-cell>150/150 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/crypto</table-cell>
<table-cell>28/28 (100.0%)</table-cell>
<table-cell>80/80 (100.0%)</table-cell>
<table-cell>485/485 (100.0%)</table-cell>
<table-cell>490/490 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io</table-cell>
<table-cell>53/53 (100.0%)</table-cell>
<table-cell>154/154 (100.0%)</table-cell>
<table-cell>654/654 (100.0%)</table-cell>
<table-cell>160/160 (100.0%)</table-cell>
<table-cell>658/658 (100.0%)</table-cell>
</table-row>
<table-row>
@ -212,56 +212,56 @@
<table-cell>common/io/http</table-cell>
<table-cell>47/47 (100.0%)</table-cell>
<table-cell>250/250 (100.0%)</table-cell>
<table-cell>717/717 (100.0%)</table-cell>
<table-cell>710/710 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io/socket</table-cell>
<table-cell>22/22 (100.0%)</table-cell>
<table-cell>34/34 (100.0%)</table-cell>
<table-cell>286/286 (100.0%)</table-cell>
<table-cell>287/287 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/io/tls</table-cell>
<table-cell>34/34 (100.0%)</table-cell>
<table-cell>102/102 (100.0%)</table-cell>
<table-cell>514/514 (100.0%)</table-cell>
<table-cell>98/98 (100.0%)</table-cell>
<table-cell>513/513 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>common/type</table-cell>
<table-cell>281/281 (100.0%)</table-cell>
<table-cell>794/794 (100.0%)</table-cell>
<table-cell>3631/3631 (100.0%)</table-cell>
<table-cell>327/327 (100.0%)</table-cell>
<table-cell>848/848 (100.0%)</table-cell>
<table-cell>4188/4188 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>config</table-cell>
<table-cell>87/87 (100.0%)</table-cell>
<table-cell>878/878 (100.0%)</table-cell>
<table-cell>1715/1715 (100.0%)</table-cell>
<table-cell>88/88 (100.0%)</table-cell>
<table-cell>882/882 (100.0%)</table-cell>
<table-cell>1746/1746 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>db</table-cell>
<table-cell>24/24 (100.0%)</table-cell>
<table-cell>122/122 (100.0%)</table-cell>
<table-cell>425/425 (100.0%)</table-cell>
<table-cell>126/126 (100.0%)</table-cell>
<table-cell>434/434 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>info</table-cell>
<table-cell>92/92 (100.0%)</table-cell>
<table-cell>790/790 (100.0%)</table-cell>
<table-cell>2316/2316 (100.0%)</table-cell>
<table-cell>816/816 (100.0%)</table-cell>
<table-cell>2297/2297 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>postgres</table-cell>
<table-cell>30/30 (100.0%)</table-cell>
<table-cell>94/94 (100.0%)</table-cell>
<table-cell>365/365 (100.0%)</table-cell>
<table-cell>33/33 (100.0%)</table-cell>
<table-cell>112/112 (100.0%)</table-cell>
<table-cell>389/389 (100.0%)</table-cell>
</table-row>
<table-row>
@ -275,21 +275,21 @@
<table-cell>protocol</table-cell>
<table-cell>55/55 (100.0%)</table-cell>
<table-cell>232/232 (100.0%)</table-cell>
<table-cell>939/939 (100.0%)</table-cell>
<table-cell>954/954 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage</table-cell>
<table-cell>48/48 (100.0%)</table-cell>
<table-cell>222/222 (100.0%)</table-cell>
<table-cell>697/697 (100.0%)</table-cell>
<table-cell>693/693 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/azure</table-cell>
<table-cell>24/24 (100.0%)</table-cell>
<table-cell>108/108 (100.0%)</table-cell>
<table-cell>511/511 (100.0%)</table-cell>
<table-cell>110/110 (100.0%)</table-cell>
<table-cell>524/524 (100.0%)</table-cell>
</table-row>
<table-row>
@ -303,33 +303,33 @@
<table-cell>storage/gcs</table-cell>
<table-cell>31/31 (100.0%)</table-cell>
<table-cell>116/116 (100.0%)</table-cell>
<table-cell>638/638 (100.0%)</table-cell>
<table-cell>650/650 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/posix</table-cell>
<table-cell>26/26 (100.0%)</table-cell>
<table-cell>153/154 (99.35%)</table-cell>
<table-cell>474/474 (100.0%)</table-cell>
<table-cell>476/476 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/remote</table-cell>
<table-cell>31/31 (100.0%)</table-cell>
<table-cell>96/96 (100.0%)</table-cell>
<table-cell>741/741 (100.0%)</table-cell>
<table-cell>100/100 (100.0%)</table-cell>
<table-cell>742/742 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>storage/s3</table-cell>
<table-cell>29/29 (100.0%)</table-cell>
<table-cell>140/140 (100.0%)</table-cell>
<table-cell>691/691 (100.0%)</table-cell>
<table-cell>142/142 (100.0%)</table-cell>
<table-cell>715/715 (100.0%)</table-cell>
</table-row>
<table-row>
<table-cell>TOTAL</table-cell>
<table-cell>1453/1453 (100.0%)</table-cell>
<table-cell>8511/8512 (99.99%)</table-cell>
<table-cell>26380/26380 (100.0%)</table-cell>
<table-cell>1507/1507 (100.0%)</table-cell>
<table-cell>8779/8780 (99.99%)</table-cell>
<table-cell>27209/27209 (100.0%)</table-cell>
</table-row>

View File

@ -14,7 +14,7 @@
</intro>
<release-list>
<release date="XXXX-XX-XX" version="2.39dev" title="UNDER DEVELOPMENT">
<release date="2022-05-16" version="2.39" title="Verify and File Bundling">
<release-core-list>
<release-bug-list>
<release-item>
@ -369,6 +369,7 @@
<release-item>
<release-item-contributor-list>
<release-item-contributor id="david.steele"/>
<release-item-reviewer id="reid.thompson"/>
</release-item-contributor-list>
<p>Fix example for <br-option>repo-gcs-key-type</br-option> option in configuration reference.</p>
@ -377,6 +378,7 @@
<release-item>
<release-item-contributor-list>
<release-item-contributor id="david.steele"/>
<release-item-reviewer id="reid.thompson"/>
</release-item-contributor-list>
<p>Fix <br-option>tls-server-auth</br-option> example and add clarifications.</p>

View File

@ -1,7 +1,7 @@
# Initialize configuration
# ----------------------------------------------------------------------------------------------------------------------------------
AC_PREREQ([2.69])
AC_INIT([pgBackRest], [2.39dev])
AC_INIT([pgBackRest], [2.39])
AC_CONFIG_SRCDIR([version.h])
AC_CONFIG_AUX_DIR(build)

20
src/configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for pgBackRest 2.39dev.
# Generated by GNU Autoconf 2.69 for pgBackRest 2.39.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -577,8 +577,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='pgBackRest'
PACKAGE_TARNAME='pgbackrest'
PACKAGE_VERSION='2.39dev'
PACKAGE_STRING='pgBackRest 2.39dev'
PACKAGE_VERSION='2.39'
PACKAGE_STRING='pgBackRest 2.39'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@ -1252,7 +1252,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures pgBackRest 2.39dev to adapt to many kinds of systems.
\`configure' configures pgBackRest 2.39 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1299,7 +1299,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of pgBackRest 2.39dev:";;
short | recursive ) echo "Configuration of pgBackRest 2.39:";;
esac
cat <<\_ACEOF
@ -1394,7 +1394,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
pgBackRest configure 2.39dev
pgBackRest configure 2.39
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1692,7 +1692,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by pgBackRest $as_me 2.39dev, which was
It was created by pgBackRest $as_me 2.39, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -4906,7 +4906,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by pgBackRest $as_me 2.39dev, which was
This file was extended by pgBackRest $as_me 2.39, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -4968,7 +4968,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
pgBackRest config.status 2.39dev
pgBackRest config.status 2.39
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@ -5672,4 +5672,4 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
# Generated from src/build/configure.ac sha1 be32eabb6aa7455f0d7fef197fe6cf57e4adc33b
# Generated from src/build/configure.ac sha1 d2f4e7f3dc1c61dfd558cdafb7437b941a1e542f

View File

@ -33,6 +33,6 @@ repository will be invalid unless migration functions are written.
/***********************************************************************************************************************************
Software version
***********************************************************************************************************************************/
#define PROJECT_VERSION "2.39dev"
#define PROJECT_VERSION "2.39"
#endif

View File

@ -1223,6 +1223,10 @@ src/common/type/stringList.h:
class: core
type: c/h
src/common/type/stringZ.c:
class: core
type: c
src/common/type/stringZ.h:
class: core
type: c/h
@ -1475,6 +1479,10 @@ src/postgres/interface/v140.c:
class: core
type: c
src/postgres/interface/v150.c:
class: core
type: c
src/postgres/interface/version.h:
class: core
type: c/h
@ -2083,6 +2091,10 @@ test/src/common/harnessPostgres/harness140.c:
class: test/harness
type: c
test/src/common/harnessPostgres/harness150.c:
class: test/harness
type: c
test/src/common/harnessPostgres/harnessVersion.intern.h:
class: test/harness
type: c/h