Barman#

インスタンスがconfig.yml のbarman ロールを持つ場合、TPAはインスタンスを Barman サーバーとして構成して、backup 設定で名前を付けている他のインスタンスのバックアップを取ります。

instances:

- Name: one
  backup: two
  …


- Name: two
  role:
  - barman
  …

複数のpostgres インスタンスは、backup と同じ名前のBarmanサーバーを持つことができます。 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は、1分ごとに実行され、barman cron を呼び出してメンテナンスタスクを実行するcronジョブを/etc/cron.d/barman にインストールします。

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

SSHキー#

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