地理的な冗長性#
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 によって自動的に管理されます。
barman sync-info --primary、同期情報を収集するため。barman sync-backup、プライマリノードで使用可能なすべてのバックアップのローカルコピーを作成するため。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>