地理的な冗長性#

Barmanを使用してカスケードバックアップアーキテクチャをセットアップすることが可能です。ここで、 Barmanバックアップサーバーのソースは、PostgreSQLサーバーではなく別のBarmanインストールです。

この機能を使用すると、ユーザーはPostgreSQLバックアップの地理的に分散したコピーを透過的に保持できます。

Barmanの専門用語では、PostgreSQLサーバーではなく別のBarmanインストールに接続されているBarmanバックアップサーバーは、パッシブノードとして定義されます。パッシブノードは primary_ssh_command オプションを介して構成され、グローバルプライマリBarmanインストールの完全なレプリカの場合とサーバーレベル直接サーバーとパッシブサーバーの両方を持つ混合シナリオの場合の両方で使用できます。

同期情報#

barman sync-info コマンドは、 Barmanサーバーの現在のステータスに関する情報を収集するために使用されます。同期に役立ちます。使用可能な構文は次のとおりです。

barman sync-info [--primary] <server_name> [<last_wal> [<last_position>]]

コマンドは、以下を含むJSONオブジェクトを結果ます。

  • そのサーバーのステータスが DONE であるすべてのバックアップを含むマップ。

  • アーカイブされたすべてのWALファイルのリスト。

  • サーバーの構成。

  • 最後に読み取られた位置xlogデータベースファイル内。

  • 最後に読み取られたWALファイルの名前。

JSON応答には、 primary と passive ノード間の同期に必要なすべての情報が含まれています。

--primary が指定された場合、コマンドはローカルにではなく、定義されたプライマリノードで実行されます。

構成#

サーバーをパッシブノードとしての構成は、簡単な操作です。サーバー構成に次のオプションを追加するだけです。

primary_ssh_command = ssh barman@primary_barman

このオプションは、プライマリサーバーへのSSH接続パラメーターを指定し、パッシブサーバーのバックアップデータのソースを指定します。

-c/--config オプションを使用してbarmanを呼び出しており、パッシブノードがプライマリノードでbarmanを呼び出すときに同じオプションを使用する場合、次のオプションを追加します。

forward_config_path = true

ノードの同期#

ノードがパッシブとしてマークされている場合、 Barmanによって特別な方法で扱われます。

  • 標準メンテナンス操作の対象外です。

  • barman backup を含むPostgresへの直接操作は禁止されています。

パッシブサーバーとそのプライマリ間の同期は、以下を透過的に呼び出す barman cron によって自動的に管理されます。

  1. barman sync-info --primary 、同期情報を収集するため。

  2. barman sync-backup 、プライマリノードで使用可能なすべてのバックアップのローカルコピーを作成するため。

  3. barman sync-wals 、プライマリノードで使用可能なすべてのWALファイルをローカルにコピーするため。

手動同期#

barman cron はパッシブ/プライマリノードの同期を自動的に管理しますが、次の方法でバックアップの同期を手動でトリガーすることが可能です。

barman sync-backup <server_name> <backup_id>

sync-backup barmanは primary_ssh_command を使用してプライマリサーバーに接続し、リモートマシンにバックアップが存在する場合、rsyncを使用してすべてのファイルのコピーを開始します。バックアップごとに一度に1つの同期プロセスのみが許可されます。

WALファイルは、次の方法で同期することもできます。

barman sync-wals <server_name>