簡介與核心概念

本標準作業程序 (SOP) 旨在提供一套詳盡的指南,用於在 Ubuntu 24.04 LTS 伺服器上為 PostgreSQL 17 資料庫部署一套符合生產環境標準的 pgBackRest 備份與還原系統。遵循本文件中的步驟,您將能建立一個安全、高效且自動化的備份與災難復原解決方案。這不僅是一項技術操作,更是保障企業資料可靠性與業務連續性的關鍵措施。


pgBackRest 核心優勢分析

pgBackRest 作為專為 PostgreSQL 設計的備份還原解決方案,其核心價值在於其深度整合與專為大型資料庫工作負載優化的演算法。以下是其關鍵特性及其對維運的戰略影響:

  • 可靠性與彈性 (Reliability & Flexibility) 支援完整 (Full)、差異 (Differential) 及增量 (Incremental) 三種備份類型,提供靈活的備份策略組合。內建的備份完整性檢查確保了每一個備份集的一致性與可還原性,從根本上提升了資料保護的信賴度。
  • 高效能 (High Performance) 利用平行處理 (Parallel Processing),透過多執行緒顯著加速備份與還原過程。同時,支援如 zst 等先進壓縮演算法,能在大幅降低儲存空間佔用的同時,維持極高的處理速度,縮短備份窗口並加速災難復原時間 (RTO)。
  • 安全性 (Security) 完整支援 AES-256 等級的儲存庫加密 (Repository Encryption),確保備份資料在儲存與傳輸過程中的機密性。這使得資料即使被未經授權的第三方取得,也無法讀取其內容,符合嚴格的資料安全與合規要求。
  • 災難復原能力 (Disaster Recovery) 完整支援 WAL (Write-Ahead Log) 歸檔,這是實現精確時間點復原 (Point-in-Time Recovery, PITR) 的技術基礎。PITR 允許您將資料庫還原到故障發生前的任意一個時間點,是應對資料誤刪或邏輯損壞等災難的終極手段。
  • 擴展性 (Scalability) 專為從小型部署到數 TB 等級的大型資料庫叢集設計,能夠無縫擴展以滿足業務增長的需求。其高效的演算法確保了即使在資料量巨大的情況下,備份與還原操作依然能維持高效能。

這些優勢使其在現代化的資料庫維運中,相較於傳統工具更具競爭力。


與傳統工具 (pg_dump) 及內建物理備份 (pgbasebackup) 的比較

雖然 pg_dump 是內建的邏輯備份工具,pgbasebackup 是內建的物理備份工具,但在面對企業級的大型生產資料庫需求時,它們的功能各有缺口。下表精確對比了三者的核心差異:

特性pgBackRestpgbasebackup (內建物理)pg_dump (內建邏輯)
備份層級物理層級 (檔案區塊)物理層級 (檔案區塊)邏輯層級 (SQL 指令)
備份類型支援完整、差異、增量主要是完整 (Full)*僅支援完整邏輯備份
壓縮功能支援 (多種高效演算法且平行化)支援 (gzip, lz4, zstd)支援
加密功能支援 (AES-256)不支援 (儲存時不加密)不支援
異地儲存 (S3等)原生完整支援不支援 (需透過 Pipe 或腳本)不支援 (需額外腳本)
備份速度極快 (高度最佳化的平行處理)快 (但在大量小檔案時較慢)較慢 (需解析資料結構)
WAL 歸檔管理內建完整儲存庫管理不支援 (僅能串流當下 WAL)不支援
PITR 復原自動化支援 (簡易指令完成)支援 (但需繁瑣手動設定)不支援

*註:PostgreSQL 17 開始 pgbasebackup 雖加入了增量備份功能,但在管理便利性、儲存庫管理與自動化復原上,仍遠不及 pgBackRest 成熟。


關鍵備份類型解析

理解 pgBackRest 支援的三種備份類型及其依賴關係,是制定高效備份策略的基礎。

  1. 完整備份 (Full Backup)
    • 定義: 這是所有備份的基礎,包含 PostgreSQL 資料庫叢集 ($PGDATA) 下所有檔案的完整副本。
    • 依賴關係: 首次備份必須是完整備份。它可以獨立用於還原,不依賴任何其他備份。
  2. 差異備份 (Differential Backup)
    • 定義: 僅備份自上一次完整備份以來發生變更的資料檔案。
    • 依賴關係: 還原時,需要「最新的差異備份」以及它所依賴的「前一個完整備份」。其還原鏈較短,但比增量備份佔用更多空間。
  3. 增量備份 (Incremental Backup)
    • 定義: 僅備份自上一次備份(無論是完整、差異或另一次增量備份)以來發生變更的資料檔案。
    • 依賴關係: 這是最節省空間的備份方式,但還原鏈最長。還原時,需要目標增量備份、所有介於它與前一個完整備份之間的所有中間備份,以及最初的完整備份。

相關文件

  1. pgBackRest基礎建置
  2. 資料寫入到備份的流程