【製品情報】Barman 3.16.2
音声ガイド
概要
1. Barmanとは?
Barman (Backup and Recovery Manager) は、PostgreSQL サーバーの災害復旧(ディザスタリカバリ)用に設計された、Python製のオープンソース管理ツールです。ビジネスクリティカルな環境において、複数のサーバーの物理バックアップをリモートで実行することを可能にします。GNU GPL 3ライセンスの下で配布され、EnterpriseDB社によって保守されています。
Barmanは集中管理ハブとして機能し、1台のサーバーで複数のPostgreSQLインスタンスのバックアップとリカバリを管理できます(「スタースキーマ」アーキテクチャを形成します)。
2. Barmanのメリット
Barmanは、事業継続性のための堅牢なフレームワークを提供し、主に以下のメリットをもたらします。
- データ損失の削減 (RPO): 同期ストリーミングレプリケーションを使用することで、データ損失ゼロ (RPO=0) を実現可能です。
- ポイントインタイムリカバリ (PITR): データベースを任意の時点(秒単位)の状態に復元できます。これは、誤ってテーブルを削除してしまった場合などのヒューマンエラーからの回復に不可欠です。
- 集中管理: 複数のPostgreSQLサーバーのバックアップを一箇所で管理できます。
- 増分バックアップと重複排除: 変更のないデータを前回のバックアップから再利用することで、バックアップ時間とストレージ消費量を削減します(Rsyncを使用したファイルレベルのハードリンク、またはPostgres 17以降でのpg_basebackupを使用したブロックレベルの重複排除を利用)。
- クラウド統合: クラウドオブジェクトストレージ(AWS S3, Azure Blob Storage, Google Cloud Storage)へのバックアップや、クラウドスナップショットの利用をサポートしています。
- セキュリティ: ランサムウェア対策として、暗号化(バックアップおよびWALファイル)や、イミュータブルストレージ(WORM:書き込み一度、読み出し何度でも)をサポートしています。
- 帯域幅制御: バックアップ中のネットワーク飽和を防ぐため、I/O帯域幅の使用制限を設定できます。
3. Barmanの仕組み
Barmanは、論理バックアップ(pg_dumpなど)ではなく、物理バックアップを管理することで動作します。そのメカニズムは、主にベースバックアップと先行書き込みログ(WAL)の2つの要素に依存しています。
- アーキテクチャ: Barmanは通常、PostgreSQLデータベースサーバーとは別の専用サーバーにインストールされます。
- バックアップ方式:
- ストリーミングバックアップ(推奨): PostgreSQLのネイティブプロトコル(pg_basebackup)を使用して、データベースからBarmanサーバーへデータをストリーミングします。データ転送にSSHを必要としません。
- Rsync/SSH: SSHを使用してファイルをコピーします。これにより、ファイルレベルの増分バックアップやネットワーク圧縮が可能になります。
- スナップショット: クラウドプロバイダーのAPI(AWS/Azure/GCP)を操作して、データベースが存在するディスクボリュームのスナップショットを取得します。
- WALアーカイブ: Barmanはトランザクションログ(WALファイル)を継続的に収集します。方法は以下のいずれかです。
- ストリーミング: pg_receivewalを使用してリアルタイムでデータを受信します(低レイテンシー)。
- アーカイビング: PostgreSQLのarchive_commandを使用して、完了したWALファイルをSSH/Rsync経由でBarmanに転送します。
- カタログ機能: BarmanはすべてのバックアップとWALファイルのローカルカタログ(メタデータ)を保持しており、リカバリ時に特定の時点へ復元するために必要なファイルを自動的に判別します。
4. ユースケース
Barmanは、様々な災害復旧およびコンプライアンス(法令順守)のシナリオ向けに設計されています。
- 災害復旧 (DR): ハードウェア障害、データ破損、自然災害などの壊滅的なイベントの後にデータベースを復元します。
- ポイントインタイムリカバリ (PITR): 「論理的な破損」やヒューマンエラーからの回復に使用します。
例:開発者が午前10:00に誤ってテーブルを削除した場合、Barmanを使用してデータベースを午前09:59の状態に戻すことができます。 - 長期アーカイブ: 規制順守や法的要件を満たすために、バックアップを長期間(例:数年間)保持します。
- サーバー移行: バックアップの復元を通じてレプリカを作成することで、新しいハードウェアや新しい場所へデータベースインスタンスを移動します。
- 地理的冗長性: プライマリデータセンターがダウンした場合でもデータの生存性を確保するために、プライマリBarmanサーバーから地理的に離れたデータセンターにあるパッシブBarmanサーバーへバックアップを同期します。
- ランサムウェア対策: イミュータブルストレージ設定を利用し、設定された保持期間中は悪意のある攻撃者によるバックアップの変更や削除を防ぎます。
日本語マニュアルを見る
※ 日本語マニュアルの閲覧には ユーザー登録(パスワード)が必要です。


