Barman 3.19.0

日本語訳|Barman 3.19.0

※GoogleのAutoML Translationを使用して翻訳しております。

英語原文|Barman 3.19.0

概要

1. Barmanとは
Barman (Backup and Recovery Manager) は、ビジネスにおいて極めて重要な環境にあるPostgreSQLサーバーの物理バックアップと災害復旧(ディザスタリカバリ)を目的として設計された、Python製のオープンソース管理ツールです。

EnterpriseDB(EDB)によって開発・メンテナンスされており、GNU GPL 3ライセンスのもとで配布されています。Barmanは、データベース管理者(DBA)に対して、リモートまたはローカルにある複数のPostgreSQLインスタンスの物理バックアップとトランザクションログ(WAL)を安全に一元管理するためのサーバー(ホスト)を提供します。論理バックアップツール(pg_dumpなど)とは異なり、データベースの物理ファイルのコピーに特化しているため、より迅速なリストアや高度な復旧(リカバリ)戦略を可能にします。

2. Barmanの仕組み
Barmanは、PostgreSQLインスタンスと連携してデータベースのクラスタディレクトリをコピーし、トランザクション情報を管理します。主に以下の仕組みで動作します。

  • 物理ファイルのコピー: データをSQL文に変換するのではなく、ファイルシステムから直接、データベースのバイナリファイルをコピーします。
  • バックアップ手法:
    • ストリーミングバックアップ(pg_basebackup): PostgreSQL固有のストリーミングレプリケーションプロトコルを使用します。SSH接続を必要としないため、コンテナ環境(Dockerなど)や、ネットワークセキュリティの制約が厳しい環境に適しています。
    • Rsyncバックアップ: SSH経由のRsyncを使用してデータベースファイルをコピーします。PostgreSQLの低レベルバックアップAPIを利用し、データベースをバックアップモードに移行・解除しながら実行します。
    • スナップショットバックアップ: クラウドプロバイダー(AWS、Azure、GCP)と連携してディスクボリュームのスナップショットを作成します。Barmanはバックアップカタログの管理を担当します。
  • トランザクションログ(WAL)のアーカイブ:
    • WALアーカイブ: PostgreSQLのarchive_commandパラメータ(多くの場合、barman-wal-archiveユーティリティを併用)を使用して、完了したWALファイル(通常は16MB単位)をBarmanホストにコピーします。
    • WALストリーミング: pg_receivewalを使用してトランザクションをリアルタイムでストリーミングします。WALセグメントが完全に閉じるのを待つことなく、生成されたトランザクションを即座に取得できるため、データ損失のリスクが軽減されます。
  • リカバリとリストア: barman restoreコマンドは、ベースバックアップと必要なWALシーケンスを組み合わせることでリストア先ディレクトリを準備し、起動時にPostgreSQLがクラッシュリカバリ処理をスムーズに完了できるようにします。

3. Barmanの機能とメリット

  • 一元管理(スタートポロジ): 1台のBarmanサーバーで、地理的に異なる、または独立した複数のPostgreSQLインスタンスのバックアップを統合管理・監視できます。
  • ポイントインタイムリカバリ (PITR): ベースバックアップの開始からアーカイブされたトランザクションログの終点までの間で、特定のトランザクションID、LSN(ログシーケンス番号)、またはタイムスタンプを指定して任意の時点に復旧できます。
  • データ損失ゼロ (RPO=0): PostgreSQLクラスタ内で同期WALレシーバーとして統合するように設定することで、障害発生時のデータ損失をゼロに抑える構成に対応しています。
  • 増分バックアップ:
    • ファイルレベル: Rsyncのハードリンクを利用して、前回のバックアップから変更されたファイルのみをコピー・保存します。
    • ブロックレベル: PostgreSQL 17以降と連携し、ストリーミング接続を通じてページレベル(ブロックレベル)でデータの重複排除を行います。
  • 自動的な保持ポリシー: 冗長性(指定したバックアップ世代数の維持)またはリカバリウィンドウ(指定した過去の期間内のバックアップ維持)に基づいて、バックアップのライフサイクルポリシーを自動的に適用します。
  • フックスクリプト: バックアップの作成・削除、WALのアーカイブ、リストアの前後でカスタムスクリプトを実行し、管理ワークフローを自動化できます。
  • クラウドオブジェクトストレージのサポート: Amazon S3、Azure Blob、Google Cloud Storageなどのクラウドプロバイダーへ、バックアップやWALファイルを直接ストリーミングして保存できます。

4. リリース 3.19.0 の新機能
バージョン 3.19.0 では、クラウド統合機能、バックアップ共有、パフォーマンスの向上に関連する以下のアップデートが導入されました。

  • クラウドストレージからのリストア対応: local-to-cloudまたはpostgres方式で取得し、クラウドオブジェクトストレージに保存されているバックアップを、標準のbarman restoreコマンドを使用して直接復元できるようになりました。
  • 並行クラウドWAL取得: リカバリ中にクラウドストレージからWALファイルを直接フェッチするためのbarman cloud-wal-restoreコマンドが導入されました。並行ダウンロードに対応しており、リストア時のパフォーマンスが向上します。
  • バックアップのエクスポートとインポート:
    • barman export-backup: フルバックアップを1つの圧縮アーカイブ(tarball、形式はgzip、bzip2、またはxzをサポート)としてエクスポートします。これにより、バックアップの共有やテープなどの長期外部媒体への保存が容易になります。
    • barman import-backup: エクスポートされたバックアップtarballをBarmanのカタログに再登録し、再びリストア可能な状態にします。
  • クラウドバックアップの進捗可視化向上: 実行中のクラウドバックアップが、barman-cloud-backup-listにおいて即座にSTARTEDステータスでカタログ上に表示されるようになり、管理者が実行中タスクを監視しやすくなりました。
  • AWS S3 オブジェクトロックのサポート: aws_check_object_lock設定オプションが追加されました。有効にすると、バックアップファイルを削除する前にS3オブジェクトロックのステータスを確認し、保護されたバケットでの誤削除を防ぎます。
  • 代替GCPユニバースの対応: GOOGLE_CLOUD_UNIVERSE_DOMAIN環境変数を介して、非標準のGCPエンドポイントや代替GCPユニバースとの連携が可能になりました。
  • クラウドへの並行WALアーカイブ: barman cloud-wal-archiveに–parallelフラグが追加され、アップロード準備が整った複数のWALファイルを同時に送信できるようになりました。高負荷環境でのWAL滞留を軽減します。
  • 不完全WAL(.partial)復元のオプトイン: barman restoreに–partial-walフラグ(–no-get-walと併用)が追加されました。書きかけの不完全なWALファイル(.partial)をリカバリディレクトリにコピーし、RPO(目標復旧時点)の短縮を図ることができます。
    依存関係のクリーンアップ: 実行時の依存関係からsetuptoolsが削除されました。

EFM

前の記事

Failover Manager(EFM)5.3.0
HA

次の記事

EDB Postgres Distributed(PGD)6.4.0