-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.html
155 lines (155 loc) · 17.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>pgBackRest - Reliable PostgreSQL Backup & Restore
</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"></meta>
<meta property="og:site_name" content="pgBackRest - Reliable PostgreSQL Backup & Restore"></meta>
<meta property="og:title" content="pgBackRest - Reliable PostgreSQL Backup & Restore"></meta>
<meta property="og:type" content="website"></meta>
<link rel="icon" href="favicon.png" type="image/png"></link>
<meta property="og:image:type" content="image/png"></meta>
<meta property="og:image" content="http://www.pgbackrest.org/logo.png"></meta>
<meta name="description" content="pgBackRest is a reliable backup and restore solution for PostgreSQL that seamlessly scales up to the largest databases and workloads."></meta>
<meta property="og:description" content="pgBackRest is a reliable backup and restore solution for PostgreSQL that seamlessly scales up to the largest databases and workloads."></meta>
<link rel="stylesheet" href="default.css" type="text/css"></link>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-VKCRNV73H1"></script>
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-VKCRNV73H1');</script>
</head><body><div class="page-header"><div class="page-header-title">
pgBackRest
</div><div class="page-header-subtitle">
Reliable PostgreSQL Backup & Restore
</div></div><div class="page-menu"><div class="menu-body"><div class="menu"><a class="menu-link" href="user-guide-index.html">
User Guides
</a></div><div class="menu"><a class="menu-link" href="release.html">
Releases
</a></div><div class="menu"><a class="menu-link" href="configuration.html">
Configuration
</a></div><div class="menu"><a class="menu-link" href="command.html">
Commands
</a></div><div class="menu"><a class="menu-link" href="faq.html">
FAQ
</a></div><div class="menu"><a class="menu-link" href="metric.html">
Metrics
</a></div></div></div><div class="page-body"><div class="section1"><a id="introduction"></a><div class="section1-header"><div class="section1-title">
Introduction
</div></div><div class="section-body"><div class="section-body-text">
<span class="backrest">pgBackRest</span> is a reliable backup and restore solution for <span class="postgres">PostgreSQL</span> that seamlessly scales up to the largest databases and workloads.
</div><div class="section-body-text">
<span class="backrest">pgBackRest</span> <a href="https://github.com/pgbackrest/pgbackrest/releases/tag/release/2.54.2">v2.54.2</a> is the current stable release. Release notes are on the <a href="release.html">Releases</a> page.
</div><div class="section-body-text">
Please give us a star on <a href="https://github.com/pgbackrest/pgbackrest">GitHub</a> if you like <span class="backrest">pgBackRest</span>!
</div></div></div><div class="section1"><a id="features"></a><div class="section1-header"><div class="section1-title">
Features
</div></div><div class="section-body"><div class="section2"><a id="features/parallel-backup-restore"></a><div class="section2-header"><div class="section2-title">
Parallel Backup & Restore
</div></div><div class="section-body"><div class="section-body-text">
Compression is usually the bottleneck during backup operations so <span class="backrest">pgBackRest</span> solves this problem with parallel processing and more efficient compression algorithms such as <span class="host">lz4</span> and <span class="host">zstd</span>.
</div></div></div><div class="section2"><a id="features/local-or-remote"></a><div class="section2-header"><div class="section2-title">
Local or Remote Operation
</div></div><div class="section-body"><div class="section-body-text">
A custom protocol allows <span class="backrest">pgBackRest</span> to backup, restore, and archive locally or remotely via TLS/SSH with minimal configuration. An interface to query <span class="postgres">PostgreSQL</span> is also provided via the protocol layer so that remote access to <span class="postgres">PostgreSQL</span> is never required, which enhances security.
</div></div></div><div class="section2"><a id="features/multi-repo"></a><div class="section2-header"><div class="section2-title">
Multiple Repositories
</div></div><div class="section-body"><div class="section-body-text">
Multiple repositories allow, for example, a local repository with minimal retention for fast restores and a remote repository with a longer retention for redundancy and access across the enterprise.
</div></div></div><div class="section2"><a id="features/backup-types"></a><div class="section2-header"><div class="section2-title">
Full, Differential, & Incremental Backups (at File or Block Level)
</div></div><div class="section-body"><div class="section-body-text">
Full, differential, and incremental backups are supported. <span class="backrest">pgBackRest</span> is not susceptible to the time resolution issues of rsync, making differential and incremental backups safe without the requirement to checksum each file. Block-level backups save space by only copying the parts of files that have changed.
</div></div></div><div class="section2"><a id="features/backup-rotation"></a><div class="section2-header"><div class="section2-title">
Backup Rotation & Archive Expiration
</div></div><div class="section-body"><div class="section-body-text">
Retention polices can be set for full and differential backups to create coverage for any time frame. The WAL archive can be maintained for all backups or strictly for the most recent backups. In the latter case WAL required to make older backups consistent will be maintained in the archive.
</div></div></div><div class="section2"><a id="features/backup-integrity"></a><div class="section2-header"><div class="section2-title">
Backup Integrity
</div></div><div class="section-body"><div class="section-body-text">
Checksums are calculated for every file in the backup and rechecked during a restore or verify. After a backup finishes copying files, it waits until every WAL segment required to make the backup consistent reaches the repository.
</div><div class="section-body-text">
Backups in the repository may be stored in the same format as a standard <span class="postgres">PostgreSQL</span> cluster (including tablespaces). If compression is disabled and hard links are enabled it is possible to snapshot a backup in the repository and bring up a <span class="postgres">PostgreSQL</span> cluster directly on the snapshot. This is advantageous for terabyte-scale databases that are time consuming to restore in the traditional way.
</div><div class="section-body-text">
All operations utilize file and directory level fsync to ensure durability.
</div></div></div><div class="section2"><a id="features/page-checksum"></a><div class="section2-header"><div class="section2-title">
Page Checksums
</div></div><div class="section-body"><div class="section-body-text">
If page checksums are enabled <span class="backrest">pgBackRest</span> 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.
</div><div class="section-body-text">
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.
</div><div class="section-body-text">
This feature allows page-level corruption to be detected early, before backups that contain valid copies of the data have expired.
</div></div></div><div class="section2"><a id="features/backup-resume"></a><div class="section2-header"><div class="section2-title">
Backup Resume
</div></div><div class="section-body"><div class="section-body-text">
An interrupted 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 repository host, it reduces load on the <span class="postgres">PostgreSQL</span> host and saves time since checksum calculation is faster than compressing and retransmitting data.
</div></div></div><div class="section2"><a id="features/stream-compression-checksums"></a><div class="section2-header"><div class="section2-title">
Streaming Compression & Checksums
</div></div><div class="section-body"><div class="section-body-text">
Compression and checksum calculations are performed in stream while files are being copied to the repository, whether the repository is located locally or remotely.
</div><div class="section-body-text">
If the repository is on a repository host, compression is performed on the <span class="postgres">PostgreSQL</span> host and files are transmitted in a compressed format and simply stored on the repository host. When compression is disabled a lower level of compression is utilized to make efficient use of available bandwidth while keeping CPU cost to a minimum.
</div></div></div><div class="section2"><a id="features/delta-restore"></a><div class="section2-header"><div class="section2-title">
Delta Restore
</div></div><div class="section-body"><div class="section-body-text">
The manifest contains checksums for every file in the backup so that during a restore it is possible to use these checksums to speed processing enormously. On a delta restore any files not present in the backup are first removed and then checksums are generated for the remaining files. Files that match the backup are left in place and the rest of the files are restored as usual. Parallel processing can lead to a dramatic reduction in restore times.
</div></div></div><div class="section2"><a id="features/parallel-archiving"></a><div class="section2-header"><div class="section2-title">
Parallel, Asynchronous WAL Push & Get
</div></div><div class="section-body"><div class="section-body-text">
Dedicated commands are included for pushing WAL to the archive and getting WAL from the archive. Both commands support parallelism to accelerate processing and run asynchronously to provide the fastest possible response time to <span class="postgres">PostgreSQL</span>.
</div><div class="section-body-text">
WAL push automatically detects WAL segments that are pushed multiple times and de-duplicates when the segment is identical, otherwise an error is raised. Asynchronous WAL push allows transfer to be offloaded to another process which compresses WAL segments in parallel for maximum throughput. This can be a critical feature for databases with extremely high write volume.
</div><div class="section-body-text">
Asynchronous WAL get maintains a local queue of WAL segments that are decompressed and ready for replay. This reduces the time needed to provide WAL to <span class="postgres">PostgreSQL</span> which maximizes replay speed. Higher-latency connections and storage (such as <span class="host">S3</span>) benefit the most.
</div><div class="section-body-text">
The push and get commands both ensure that the database and repository match by comparing <span class="postgres">PostgreSQL</span> versions and system identifiers. This virtually eliminates the possibility of misconfiguring the WAL archive location.
</div></div></div><div class="section2"><a id="features/tablespace-link-support"></a><div class="section2-header"><div class="section2-title">
Tablespace & Link Support
</div></div><div class="section-body"><div class="section-body-text">
Tablespaces are fully supported and on restore tablespaces can be remapped to any location. It is also possible to remap all tablespaces to one location with a single command which is useful for development restores.
</div><div class="section-body-text">
File and directory links are supported for any file or directory in the <span class="postgres">PostgreSQL</span> cluster. When restoring it is possible to restore all links to their original locations, remap some or all links, or restore some or all links as normal files or directories within the cluster directory.
</div></div></div><div class="section2"><a id="features/object-store-support"></a><div class="section2-header"><div class="section2-title">
S3, Azure, and GCS Compatible Object Store Support
</div></div><div class="section-body"><div class="section-body-text">
<span class="backrest">pgBackRest</span> repositories can be located in <span class="host">S3</span>, <span class="host">Azure</span>, and GCS compatible object stores to allow for virtually unlimited capacity and retention.
</div></div></div><div class="section2"><a id="features/encryption"></a><div class="section2-header"><div class="section2-title">
Encryption
</div></div><div class="section-body"><div class="section-body-text">
<span class="backrest">pgBackRest</span> can encrypt the repository to secure backups wherever they are stored.
</div></div></div><div class="section2"><a id="features/postgres-compatibility"></a><div class="section2-header"><div class="section2-title">
Compatibility with ten versions of <span class="postgres">PostgreSQL</span>
</div></div><div class="section-body"><div class="section-body-text">
<span class="backrest">pgBackRest</span> includes support for ten versions of <span class="postgres">PostgreSQL</span>, the five supported versions and the last five EOL versions. This allows ample time to upgrade to a supported version.
</div></div></div></div></div><div class="section1"><a id="getting-started"></a><div class="section1-header"><div class="section1-title">
Getting Started
</div></div><div class="section-body"><div class="section-body-text">
<span class="backrest">pgBackRest</span> strives to be easy to configure and operate:
</div><ul class="list-unordered"><li class="list-unordered">
<a href="user-guide-index.html">User guides</a> for various operating systems and <span class="postgres">PostgreSQL</span> versions.
</li><li class="list-unordered">
<a href="command.html">Command reference</a> for command-line operations.
</li><li class="list-unordered">
<a href="configuration.html">Configuration reference</a> for creating <span class="backrest">pgBackRest</span> configurations.
</li></ul><div class="section-body-text">
Documentation for <span class="host">v1</span> can be found <a href="http://www.pgbackrest.org/1">here</a>. No further releases are planned for <span class="host">v1</span> because <span class="host">v2</span> is backward-compatible with <span class="host">v1</span> options and repositories.
</div></div></div><div class="section1"><a id="contributions"></a><div class="section1-header"><div class="section1-title">
Contributions
</div></div><div class="section-body"><div class="section-body-text">
Contributions to <span class="backrest">pgBackRest</span> are always welcome! Please see our <a href="https://github.com/pgbackrest/pgbackrest/blob/main/CONTRIBUTING.md">Contributing Guidelines</a> for details on how to contribute features, improvements or issues.
</div></div></div><div class="section1"><a id="support"></a><div class="section1-header"><div class="section1-title">
Support
</div></div><div class="section-body"><div class="section-body-text">
<span class="backrest">pgBackRest</span> is completely free and open source under the <a href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE">MIT</a> license. You may use it for personal or commercial purposes without any restrictions whatsoever. Bug reports are taken very seriously and will be addressed as quickly as possible.
</div><div class="section-body-text">
Creating a robust disaster recovery policy with proper replication and backup strategies can be a very complex and daunting task. You may find that you need help during the architecture phase and ongoing support to ensure that your enterprise continues running smoothly.
</div><div class="section-body-text">
<a href="http://www.crunchydata.com">Crunchy Data</a> provides packaged versions of <span class="backrest">pgBackRest</span> for major operating systems and expert full life-cycle commercial support for <span class="backrest">pgBackRest</span> and all things <span class="postgres">PostgreSQL</span>. <a href="http://www.crunchydata.com">Crunchy Data</a> is committed to providing open source solutions with no vendor lock-in, ensuring that cross-compatibility with the community version of <span class="backrest">pgBackRest</span> is always strictly maintained.
</div><div class="section-body-text">
Please visit <a href="http://www.crunchydata.com">Crunchy Data</a> for more information.
</div></div></div><div class="section1"><a id="recognition"></a><div class="section1-header"><div class="section1-title">
Recognition
</div></div><div class="section-body"><div class="section-body-text">
Primary recognition goes to Stephen Frost for all his valuable advice and criticism during the development of <span class="backrest">pgBackRest</span>.
</div><div class="section-body-text">
<a href="http://www.crunchydata.com">Crunchy Data</a> has contributed significant time and resources to <span class="backrest">pgBackRest</span> and continues to actively support development. <a href="http://www.resonate.com">Resonate</a> also contributed to the development of <span class="backrest">pgBackRest</span> and allowed early (but well tested) versions to be installed as their primary <span class="postgres">PostgreSQL</span> backup solution.
</div><div class="section-body-text">
<a href="https://thenounproject.com/search/?q=lounge+chair&i=129971">Armchair</a> graphic by <a href="https://thenounproject.com/sandorsz">Sandor Szabo</a>.
</div></div></div></div><div class="page-footer">
Copyright © 2015-2025, The PostgreSQL Global Development Group, <a href="https://github.com/pgbackrest/pgbackrest/blob/main/LICENSE">MIT License</a>. Updated January 20, 2025
</div></body></html>