You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-09-16 09:06:18 +02:00
v1.18: Stanza Upgrade, Refactoring, and Locking Improvements
Bug Fixes: * Fixed an issue where read-only operations that used local worker processes (i.e. restore) were creating write locks that could interfere with parallel archive-push. (Reported by Jens Wilke.) Features: * Added the stanza-upgrade command to provide a mechanism for upgrading a stanza after upgrading to a new major version of PostgreSQL. (Contributed by Cynthia Shang.) * Added validation of pgbackrest.conf to display warnings if options are not valid or are not in the correct section. (Contributed by Cynthia Shang.) Refactoring: * Simplify locking scheme. Now, only the master process will hold write locks (for archive-push and backup commands) and not all local and remote worker processes as before. * Refactor Ini.pm to facilitate testing. * Do not set timestamps of files in the backup directories to match timestamps in the cluster directory. This was originally done to enable backup resume, but that process is now implemented with checksums. * Improved error message when the restore command detects the presence of postmaster.pid. (Suggested by Yogesh Sharma.) * Renumber return codes between 25 and 125 to avoid PostgreSQL interpreting some as fatal signal exceptions. (Suggested by Yogesh Sharma.) * The backup and restore commands no longer copy via temp files. In both cases the files are checksummed on resume so there's no danger of partial copies. * Allow functions to accept optional parameters as a hash. * Refactor File->list() and fileList() to accept optional parameters. * Refactor backupLabel() and add unit tests. * Silence some perl critic warnings. (Contributed by Cynthia Shang.)
This commit is contained in:
10
README.md
10
README.md
@@ -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 [v1.17](https://github.com/pgbackrest/pgbackrest/releases/tag/release/1.17) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
|
||||
pgBackRest [v1.18](https://github.com/pgbackrest/pgbackrest/releases/tag/release/1.18) is the current stable release. Release notes are on the [Releases](http://www.pgbackrest.org/release.html) page.
|
||||
|
||||
## Features
|
||||
|
||||
@@ -36,6 +36,14 @@ Backups in the repository are stored in the same format as a standard PostgreSQL
|
||||
|
||||
All operations utilize file and directory level fsync to ensure durability.
|
||||
|
||||
### Page Checksums
|
||||
|
||||
PostgreSQL has supported page-level checksums since 9.3. If page checksums are enabled pgBackRest will validate the checksums for every file that is copied during a backup. All page checksums are validated during a full backup and checksums in files that have changed are validated during differential and incremental backups.
|
||||
|
||||
Validation failures do not stop the backup process, but warnings with details of exactly which pages have failed validation are output to the console and file log.
|
||||
|
||||
This feature allows page-level corruption to be detected early, before backups that contain valid copies of the data have expired.
|
||||
|
||||
### Backup Resume
|
||||
|
||||
An aborted backup can be resumed from the point where it was stopped. Files that were already copied are compared with the checksums in the manifest to ensure integrity. Since this operation can take place entirely on the backup server, it reduces load on the database server and saves time since checksum calculation is faster than compressing and retransmitting data.
|
||||
|
@@ -133,7 +133,7 @@ eval
|
||||
fileRemove("${strDocPath}/resource/exe.cache", true);
|
||||
|
||||
# Remove all docker containers to get consistent IP address assignments
|
||||
executeTest('docker rm -f $(docker ps -a -q)');
|
||||
executeTest('docker rm -f $(docker ps -a -q)', {bSuppressError => true});
|
||||
|
||||
# Generate deployment docs for RHEL/Centos 6
|
||||
&log(INFO, "Generate RHEL/CentOS 6 documentation");
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -76,6 +76,16 @@
|
||||
<p>All operations utilize file and directory level fsync to ensure durability.</p>
|
||||
</section>
|
||||
|
||||
<section id="page-checksum">
|
||||
<title>Page Checksums</title>
|
||||
|
||||
<p><postgres/> has supported page-level checksums since 9.3. If page checksums are enabled <backrest/> will validate the checksums for every file that is copied during a backup. All page checksums are validated during a full backup and checksums in files that have changed are validated during differential and incremental backups.</p>
|
||||
|
||||
<p>Validation failures do not stop the backup process, but warnings with details of exactly which pages have failed validation are output to the console and file log.</p>
|
||||
|
||||
<p>This feature allows page-level corruption to be detected early, before backups that contain valid copies of the data have expired.</p>
|
||||
</section>
|
||||
|
||||
<section id="backup-resume">
|
||||
<title>Backup Resume</title>
|
||||
|
||||
|
@@ -153,7 +153,7 @@
|
||||
</contributor-list>
|
||||
|
||||
<release-list>
|
||||
<release date="XXXX-XX-XX" version="1.18dev" title="UNDER DEVELOPMENT">
|
||||
<release date="2017-04-12" version="1.18" title="Stanza Upgrade, Refactoring, and Locking Improvements">
|
||||
<release-core-list>
|
||||
<release-bug-list>
|
||||
<release-item>
|
||||
@@ -185,7 +185,7 @@
|
||||
|
||||
<release-refactor-list>
|
||||
<release-item>
|
||||
<p>Simplify locking scheme. Now, only the master process will hold write locks (archive-push, backup) and not all the local and remote worker processes as before.</p>
|
||||
<p>Simplify locking scheme. Now, only the master process will hold write locks (for <cmd>archive-push</cmd> and <cmd>backup</cmd> commands) and not all local and remote worker processes as before.</p>
|
||||
</release-item>
|
||||
|
||||
<release-item>
|
||||
|
@@ -35,7 +35,7 @@ use constant BACKREST_BIN => abs_path(
|
||||
# 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 => '1.18dev';
|
||||
use constant BACKREST_VERSION => '1.18';
|
||||
push @EXPORT, qw(BACKREST_VERSION);
|
||||
|
||||
# Format Format Number
|
||||
|
@@ -11,7 +11,7 @@ use AutoLoader;
|
||||
our @ISA = qw(Exporter);
|
||||
|
||||
# Library version (add .999 during development)
|
||||
our $VERSION = '1.18.999';
|
||||
our $VERSION = '1.18';
|
||||
|
||||
sub libCVersion {return $VERSION};
|
||||
|
||||
|
Reference in New Issue
Block a user