Barman 1.5.0 已發布

發布於 2015-09-28,作者為 2ndQuadrant Italia

2ndQuadrant 很榮幸地宣布 Barman (PostgreSQL 的備份與復原管理器) 1.5.0 版正式發布。

這個主要版本推出了 get-wal 指令,它將 Barman 變成一個 WAL 礦場,您可以從中提取您需要的任何交易日誌檔案。現在可以輕鬆地將 Barman 與任何 PostgreSQL 備用伺服器整合,作為 WAL 同步的後備方法。

另一個重要的新功能是重試 Hook 腳本,可以在備份指令或 WAL 檔案的封存之前或之後執行。與 Barman 中已提供的標準 Hook 腳本不同,重試 Hook 腳本會無限期執行,直到成功為止。

透過 1.5.0 版本,Barman 透過新增 "wal_level" 設定的檢查、禁止刪除正在執行的備份、要求在啟動備份之前成功執行 "check" 等,來增強其穩健性。

Barman 現在會檢查衝突路徑,確保同一目錄不能被多個目標(即基本備份、WAL 封存、傳入目錄等)共用,即使在同一安裝中的不同伺服器之間也是如此。

在使用者體驗方面,「active」選項允許使用者暫時停用 Barman 中的伺服器,用於運營目的,同時仍然可以存取其目錄。

也修正了一些小錯誤。

如需完整的變更列表,請參閱以下「發布說明」部分。

功能細節

Barman get-wal:感謝 Barman 的 "get-wal" 指令,不再有與主伺服器失去同步的備用伺服器。設計複雜的 PostgreSQL 資料庫 HA 和 DR 架構,因為您現在可以依賴 '無限' 的 WAL 檔案來源,用於您的任何伺服器。請參考 "barman-wal-restore" 腳本,以了解如何將 "get-wal" 與您的 PostgreSQL 備用伺服器整合。

重試 Hook 腳本:您現在可以透過插入您的自訂腳本來擴展 Barman,無論是在執行備份操作或封存 WAL 檔案之前和之後,並且知道 Barman 會重複執行它們直到成功為止。您現在可以圍繞 Barman 建構自己的管線,例如,一旦 WAL 到達 Barman,就將其儲存在雲端。

連結

發布說明

  • 新增對 "get-wal" 指令的支援,允許使用者從特定伺服器的封存中提取任何 WAL 檔案
  • 新增對重試 Hook 腳本的支援,這是一種特殊的 Hook 腳本,Barman 會嘗試執行直到成功
  • 新增 "active" 設定選項,用於伺服器,可透過將其設定為 "False" 來暫時停用伺服器
  • 新增 "barman_lock_directory" 全域選項,以變更鎖定檔案的位置(預設值:'barman_home')
  • 在啟動備份之前執行完整的檢查套件,如果一個或多個檢查失敗,則跳過它
  • 禁止刪除正在執行的備份
  • 在 "backup" 和 "recover" 操作期間分析 PostgreSQL 伺服器的 include 指令
  • 新增對 Barman 設定中衝突路徑的檢查,包括內部(透過暫時停用伺服器)和伺服器間(透過拒絕任何指令給任何伺服器)。
  • 新增 "wal_level" 的檢查
  • 新增 "barman-wal-restore" 腳本,與 "barman get-wal" 結合使用,作為備用伺服器上的 "restore_command"
  • 實施標準且一致的錯誤管理策略
  • 改進了備份的快取管理
  • 改進了單元測試中設定的管理
  • 教學文件和 man page 來源已轉換為 Markdown 格式
  • 透過 Sphinx 新增程式碼文件
  • 完全重構了負責管理 "backup" 和 "recover" 指令的程式碼
  • 變更了備份的內部目錄結構
  • 引入 "copy_method" 選項(目前固定為 "rsync")
  • 錯誤修正
    • 管理 PostgreSQL 設定檔中沒有 '=' 的選項
    • 保留 Timeline 歷史檔案 (修正:#70)
    • SUSE Linux 上 rsync 的解決方法 (關閉:#13 和 #26)
    • 停用 postgresql.auto.conf 中的危險設定 (關閉:#68)
    • 修正了 WAL 速率計算中的錯誤

下載

關於

Barman (備份與復原管理器) 是一個開放原始碼的管理工具,用於 PostgreSQL 伺服器的災難復原,以 Python 撰寫。它允許您的組織對業務關鍵環境中的多個伺服器執行遠端備份,並在復原階段協助 DBA。Barman 最需要的功能包括備份目錄、增量備份、保留政策、遠端備份與復原、WAL 檔案和備份的封存和壓縮。Barman 根據 GNU GPL 3 發布。