pgBackRest 是一個可靠的 PostgreSQL 備份與還原解決方案,能夠無縫擴展至最大的資料庫和工作負載。
pgBackRest v2.59.0 是目前的穩定發行版本。發行說明請參閱發行頁面。
如果您喜歡 pgBackRest,請在 GitHub 上給我們一個星!
2026 年 7 月 20 日 - 新的發行壓縮包
2026 年 7 月 20 日 - pgBackRest 2.59.0 發行
2026 年 5 月 18 日 - pgBackRest 將繼續前進!
沒有贊助,pgBackRest 將不復存在。撰寫新功能、修復錯誤、審查貢獻、回答社群問題以及維護都需要大量的時間。如果您在企業中使用 pgBackRest,請考慮贊助。
我們的贊助商:AWS、Supabase、pgEdge、Tiger Data、Percona、Eon、Xata、Dalibo、Data Egret。
我們感謝我們的贊助商投資於造福整個 PostgreSQL 社群的開源基礎設施。
過去的贊助商:Crunchy Data、Resonate。
壓縮通常是備份作業中的瓶頸,因此 pgBackRest 透過平行處理和更有效的壓縮演算法(如 lz4 和 zstd)來解決這個問題。
自訂協議允許 pgBackRest 透過 TLS/SSH 本地或遠端備份、還原和歸檔,只需最少的設定。該協議層還提供查詢 PostgreSQL 的介面,因此永遠不需要遠端存取 PostgreSQL,從而增強了安全性。
多個儲存庫允許,例如,一個具有最小保留期的本地儲存庫用於快速還原,以及一個具有較長保留期的遠端儲存庫用於冗餘和跨企業的存取。
支援完整、差異和增量備份。pgBackRest 不易受 rsync 的時間解析度問題影響,使得差異和增量備份安全,無需對每個檔案進行校驗和。區塊級備份僅複製已變更的檔案部分,從而節省空間。
可以為完整和差異備份設定保留策略,以涵蓋任何時間範圍。WAL 歸檔可以維護所有備份,或僅維護最近的備份。在後者情況下,將在歸檔中維護使舊備份一致所需的 WAL。
為備份中的每個檔案計算校驗和,並在還原或驗證期間重新檢查。備份完成檔案複製後,它會等待直到使備份一致所需的每個 WAL 區段到達儲存庫。
儲存庫中的備份可以儲存為標準 PostgreSQL 叢集(包括表空間)的相同格式。如果禁用壓縮並啟用硬連結,則可以對儲存庫中的備份進行快照,並直接在快照上啟動 PostgreSQL 叢集。這對於傳統方式還原耗時的 TB 級資料庫非常有利。
所有作業都利用檔案和目錄級別的 fsync 來確保持久性。
如果啟用了頁面校驗和,pgBackRest 將在備份期間複製的每個檔案驗證校驗和。在完整備份期間會驗證所有頁面校驗和,在差異和增量備份期間會驗證已變更檔案中的校驗和。
驗證失敗不會停止備份過程,但會將包含確切失敗頁面詳細資訊的警告輸出到主控台和檔案日誌。
此功能允許在包含有效資料副本的備份過期之前,及早偵測到頁面級別的損壞。
中斷的備份可以從停止點恢復。已複製的檔案會與清單中的校驗和進行比較,以確保完整性。由於此操作可以完全在儲存庫主機上進行,因此可以減少 PostgreSQL 主機的負載,並節省時間,因為校驗和計算比壓縮和重新傳輸資料更快。
壓縮和校驗和計算在檔案複製到儲存庫時以串流方式執行,無論儲存庫是本地還是遠端。
如果儲存庫位於儲存庫主機上,則在 PostgreSQL 主機上執行壓縮,並以壓縮格式傳輸檔案,然後在儲存庫主機上儲存。當禁用壓縮時,會利用較低級別的壓縮來有效利用可用頻寬,同時將 CPU 成本降至最低。
清單包含備份中每個檔案的校驗和,因此在還原期間可以使用這些校驗和極大地加快處理速度。在增量還原時,首先移除備份中不存在的檔案,然後為剩餘檔案生成校驗和。與備份匹配的檔案將保留在原位,其餘檔案將照常還原。平行處理可以顯著縮短還原時間。
包含專用命令用於將 WAL 推送到歸檔和從歸檔獲取 WAL。兩個命令都支援平行處理以加速處理,並異步運行以提供最快的 PostgreSQL 回應時間。
WAL 推送會自動偵測多次推送的 WAL 區段,並在區段相同時進行去重複,否則會引發錯誤。異步 WAL 推送允許將傳輸卸載到另一個進程,該進程會平行壓縮 WAL 區段以獲得最大吞吐量。對於寫入量極大的資料庫,這可能是一項關鍵功能。
異步 WAL 獲取維護一個本地 WAL 區段佇列,這些區段已解壓縮並準備好進行重放。這減少了向 PostgreSQL 提供 WAL 所需的時間,從而最大化重放速度。高延遲連線和儲存(如 S3)將從中受益最多。
推送和獲取命令都透過比較 PostgreSQL 版本和系統識別碼來確保資料庫和儲存庫匹配。這幾乎消除了配置 WAL 歸檔位置錯誤的可能性。
完全支援表空間,並且在還原時可以將表空間重新映射到任何位置。也可以使用單一命令將所有表空間重新映射到一個位置,這對於開發還原很有用。
支援 PostgreSQL 叢集中任何檔案或目錄的檔案和目錄連結。還原時,可以將所有連結還原到其原始位置,重新映射部分或全部連結,或將部分或全部連結還原為叢集目錄內的普通檔案或目錄。
pgBackRest 儲存庫可以位於 S3、Azure 和 GCS 相容的物件儲存中,以實現幾乎無限的容量和保留期。
pgBackRest 可以加密儲存庫,以保護儲存在任何地方的備份。
當儲存庫儲存在版本化的物件儲存中時,pgBackRest 可以讀取儲存庫在特定時間點的狀態。如果備份因意外、惡意軟體或勒索軟體而被刪除或損壞,可以使用目標時間從損壞發生前的狀態恢復資料。
版本控制由 S3、Azure 和 GCS 相容的物件儲存支援。S3 的物件鎖定以及 GCS 或 Azure 的軟刪除可以提供額外的防篡改保護。
pgBackRest 支援十個版本的 PostgreSQL,包括五個支援版本和最後五個已終止支援的版本。這為升級到受支援版本提供了充足的時間。
pgBackRest 致力於易於設定和操作:
隨時歡迎對 pgBackRest 的貢獻!請參閱我們的貢獻指南,了解如何貢獻功能、改進或報告問題的詳細資訊。
pgBackRest 在 MIT 授權下完全免費且開源。您可以不受任何限制地將其用於個人或商業用途。錯誤報告會被非常認真地對待,並會盡快處理。請在此處報告錯誤。
建立一個具有適當複寫和備份策略的強健災難復原策略可能是一項非常複雜且艱鉅的任務。您可能會發現需要在架構階段獲得協助,以及持續的支持,以確保您的企業順利運行。
我們的贊助商提供的產品和服務包括 pgBackRest 支持,並能協助您滿足災難復原的需求。
可靠的 PostgreSQL 備份與還原