Barman

インスタンスにconfig.ymlでbarman ロールが付与されると、TPAはそれを Barman サーバーとして構成し、 backup 設定で名前を付けた他のインスタンスのバックアップを取得します。

instances:

- Name: one
  backup: two
  …


- Name: two
  role:
  - barman
  …

複数のpostgres インスタンスは、それらのbackup と名前付けされた同じBarmanサーバーを持つことができます。同様に、1つのpostgres インスタンスは、そのbackup として名前付けられたBarmanサーバーのリストを持つことができ、名前付けされたすべてのサーバーにバックアップが取られます。

デフォルトのBarman構成は、 pg_receivewalを使用してPostgreSQLに接続してWALの継続的なバックアップを取得し、週2回ssh経由でrsyncを使用してインスタンスの完全バックアップを取得します。完全バックアップとWALは、過去4週間の任意の時点へのリカバリを可能にするのに十分な期間保持されます。

Barman構成

各barmanサーバーで、グローバル構成ファイルが/etc/barman.conf として作成されます。これには、多くのbarman構成変数のデフォルト値が含まれています。バックアップされるpostgresサーバーごとに、追加のBarman構成ファイルが作成されます。サーバーone をバックアップするため、ファイルは/etc/barman.d/one.conf になり、バックアップは/var/lib/barman/one に保存されます。ファイルとディレクトリの名前は、バックアップされたインスタンスのbackup_name 設定から取得され、デフォルトでインスタンスの名前になります。

次の変数は、バックアップされたインスタンスで設定でき、プレフィックスbarman_ が削除されてBarmanの構成に渡されます。

variable

default

barman_archiver

false

barman_log_file

/var/log/barman.log

barman_backup_method

rsync

barman_compression

pigz

barman_reuse_backup

link

barman_parallel_jobs

1

barman_backup_options

concurrent_backup

barman_immediate_checkpoint

false

barman_network_compression

false

barman_basebackup_retry_times

3

barman_basebackup_retry_sleep

30

barman_minimum_redundancy

3

barman_retention_policy

RECOVERY WINDOW OF 4 WEEKS

barman_last_backup_maximum_age

1 WEEK

barman_pre_archive_retry_script

barman_post_backup_retry_script

barman_post_backup_script

barman_streaming_wals_directory

バックアップスケジュール

TPAは、毎分実行され、barman cron を呼び出してメンテナンスタスクを実行する/etc/cron.d/barman にcronジョブをインストールします。

バックアップされるインスタンスごとに、そのインスタンスのバックアップを取得する/etc/cron.d/<backup_name> に別のcronジョブをインストールします。このジョブは、インスタンスのbarman_backup_interval 変数の決定に従って実行されます。デフォルトでは、毎週水曜日と土曜日の04:00にバックアップが作成されます。

SSHキー

TPAは postgres および barman ユーザーのsshキーペアを生成し、それぞれの~/.sshディレクトリにインストールし、互いのauthorized_keysファイルに追加します。 postgresユーザーは、WALセグメントをアーカイブするためにbarmanサーバーにsshできる必要があります(構成されている場合)。 barmanユーザーは、Postgresインスタンスにsshしてバックアップを取得または復元できる必要があります。