pgBackRest 1.0 發布

發布於 2016-04-17,作者:Crunchy Data

2016年4月17日: Crunchy Data 榮幸地宣布 pgBackRest 1.0,可靠的 PostgreSQL 備份與還原工具。

版本 1.0

pgBackRest 的第一個穩定版本引入了一種新的、功能更強大的儲存庫格式、更簡單的配置,以及對符號連結目錄和檔案的備份和還原的全面支援。

pgBackRest 1.0 中有許多重要的變更,因此在升級之前請務必仔細閱讀發布說明。

連結

功能

多執行緒備份與還原

壓縮通常是備份操作期間的瓶頸,但即使現在多核心伺服器已普及,大多數資料庫備份解決方案仍然是單執行緒的。 pgBackRest 使用多執行緒解決了壓縮瓶頸。

利用多個核心進行壓縮,即使在 1Gb/s 的鏈路上也能實現 1TB/hr 的原始吞吐量。 更多的核心和更大的管道可以實現更高的吞吐量。

本機或遠端操作

一個自訂協定允許 pgBackRest 透過 SSH 在本機或遠端備份、還原和歸檔,且只需最少的配置。 還透過協定層提供了一個查詢 PostgreSQL 的介面,因此永遠不需要遠端存取 PostgreSQL,從而增強了安全性。

完整、增量和差異備份

支援完整、差異和增量備份。 pgBackRest 不容易受到 rsync 的時間解析度問題的影響,因此差異和增量備份完全安全。

備份輪換和歸檔過期

可以為完整和差異備份設定保留策略,以覆蓋任何時間範圍。 WAL 歸檔可以為所有備份維護,也可以嚴格為最新的備份維護。 在後一種情況下,使舊備份保持一致所需的 WAL 將在歸檔中維護。

備份完整性

會計算備份中每個檔案的檢查碼,並在還原期間重新檢查。 在備份完成檔案複製後,它會等待使備份保持一致所需的每個 WAL 片段到達儲存庫。

儲存庫中的備份以與標準 PostgreSQL 叢集相同的格式儲存(包括資料表空間)。 如果禁用壓縮並啟用硬連結,則可以在儲存庫中快照備份,並直接在快照上啟動 PostgreSQL 叢集。 這對於在傳統方式中還原非常耗時的 TB 級資料庫非常有利。

所有操作都使用檔案和目錄級別的 fsync 來確保持久性。

備份恢復

可以從停止的位置恢復中止的備份。 將已複製的檔案與資訊清單中的檢查碼進行比較,以確保完整性。 由於此操作可以完全在備份伺服器上進行,因此它減少了資料庫伺服器上的負載,並節省了時間,因為檢查碼計算比壓縮和重新傳輸資料更快。

串流壓縮與檢查碼

在將檔案複製到儲存庫時,無論儲存庫位於本機還是遠端,都會在串流中執行壓縮和檢查碼計算。

如果儲存庫位於備份伺服器上,則在資料庫伺服器上執行壓縮,並且以壓縮格式傳輸檔案,並簡單地儲存在備份伺服器上。 禁用壓縮後,將使用較低等級的壓縮來有效利用可用頻寬,同時將 CPU 成本降至最低。

Delta 還原

資訊清單包含備份中每個檔案的檢查碼,以便在還原期間可以使用這些檢查碼來極大地加速處理。 在 delta 還原時,首先刪除備份中不存在的任何檔案,然後取得剩餘檔案的檢查碼。 與備份匹配的檔案將保留在原位,其餘檔案將照常還原。 由於此過程是多執行緒的,因此可以顯著減少還原時間。

進階歸檔

包含用於將 WAL 推送到歸檔和從歸檔檢索 WAL 的專用命令。

推送命令會自動檢測多次推送的 WAL 片段,並在片段相同時進行重複資料刪除,否則會引發錯誤。 推送和取得命令都透過比較 PostgreSQL 版本和系統標識符來確保資料庫和儲存庫匹配。 這排除了錯誤配置 WAL 歸檔位置的可能性。

非同步歸檔允許將壓縮和傳輸卸載到另一個維護與遠端伺服器的持續連線的進程,從而顯著提高吞吐量。 這對於具有極高寫入量的資料庫來說可能是一項關鍵功能。

資料表空間和連結支援

完全支援資料表空間,並且在還原時可以將資料表空間重新映射到任何位置。 也可以使用單一命令將所有資料表空間重新映射到一個位置,這對於開發還原非常有用。

支援 PostgreSQL 叢集中任何檔案或目錄的檔案和目錄連結。 還原時,可以將所有連結還原到其原始位置、重新映射某些或所有連結,或將某些或所有連結還原為叢集目錄中的正常檔案或目錄。

與 PostgreSQL >= 8.3 的相容性

pgBackRest 包含對 8.3 及更早版本的支援,因為舊版本的 PostgreSQL 仍然經常被使用。

關於

pgBackRest 旨在成為一個簡單、可靠的備份和還原系統,可以無縫擴展到最大的資料庫和工作負載。 pgBackRest 並非依賴 tar 和 rsync 等傳統備份工具,而是在內部實作所有備份功能,並使用自訂協定與遠端系統通訊。 移除對 tar 和 rsync 的依賴性可以更好地解決資料庫特定的備份挑戰。 自訂遠端協定允許更大的靈活性,並限制了執行備份所需的連線類型,從而提高了安全性。

Crunchy Data 支援 pgBackRest 的持續和積極開發,作為一個完全開放原始碼專案,以與 BSD 相容的 MIT 授權發布。