Barman client utilities ( barman-cli)#

以前は別のオープンソースプロジェクトであったbarman-cli は、バージョン2.8からBarmanのコアにマージされ、RPM / Debianパッケージとして配布されています。 barman-cli には、PostgreSQLサーバーとともにインストールする推奨されるクライアントユーティリティのセットが含まれています。

  • barman-wal-archive 「barman-wal-archive を介したWALアーカイブ」セクションで説明しているように、archive_command として使用するアーカイブスクリプト。

  • barman-wal-restore 上記の「get-wal 」セクションで説明したように、スタンバイサーバーと復旧サーバーでrestore_command 復旧オプションの一部として使用されるWAL復元スクリプト。

詳細については、特定のマニュアルページまたは--help オプションを参照してください。

インストール#

Barmanクライアントユーティリティは、通常、PostgreSQLがインストールされている場所にインストールされます。私たちのお勧めは、プライマリまたはスタンバイであるすべてのPostgreSQLサーバーにbarman-cli パッケージをインストールすることです。

リポジトリをインストールするには、メインの「インストール」セクションを参照してください。

root としてRedHat / CentOSシステムにパッケージをインストールするには、次のように入力します。

yum install barman-cli

Debian / Ubuntuでは、root ユーザーとして次のように入力します。

apt-get install barman-cli

Barman client utilities for the Cloud ( barman-cli-cloud)#

Barmanクライアントユーティリティは、オブジェクトストレージの統合をサポートし、WALファイルとバックアップをサポートされているクラウドプロバイダーに中継することにより、PostgreSQLデータベースのディザスターリカバリー機能を強化するように拡張されました。

サポートされているクラウドプロバイダーは次のとおりです。

  • AWS S3またはS3互換オブジェクトストア

  • Azure Blob Storage

  • Google Cloud Storage Rest API

これらのユーティリティはbarman-cli-cloud RPM/Debianパッケージで配布され、PostgreSQLサーバーと一緒にインストールできます。

  • barman-cloud-wal-archive Barmanサーバーをバイパスして、WALファイルをクラウドストレージに直接出荷するために使用されるアーカイブスクリプト。または、WALアーカイブ pre_archive_retry_script のフックスクリプトとして。

  • barman-cloud-wal-restore restore_command として使用するスクリプトで、クラウドストレージからWALファイルを取得し、 Barmanサーバーをバイパスし、PostgreSQLスタンバイに直接保存します。

  • barman-cloud-backup PostgreSQLサーバーで直接ローカルバックアップをとり、 Barmanサーバーをバイパスして、サポートされているクラウドプロバイダーに発送するために使用されるバックアップスクリプト。または、バーマンのバックアップをクラウドにコピーするためのフックスクリプトとして post_backup_retry_script)

  • barman-cloud-backup-delete barman-cloud-backup で取得した1つ以上のバックアップをクラウドストレージから削除し、関連するWALを削除するために使用されるスクリプト。

  • barman-cloud-backup-keep クラウドストレージのバックアップにアーカイブバックアップとしてフラグを立てるために使用されるスクリプト。このようなバックアップは、適用される保持ポリシーに関係なく、永久に保持されます。

  • barman-cloud-backup-list クラウドストレージからbarman-cloud-backup で取得したBarmanバックアップのコンテンツをリストするために使用されるスクリプト。

  • barman-cloud-backup-show barman-cloud-backup で取得したBarmanバックアップのメタデータを表示するために使用されるスクリプト。

  • barman-cloud-restore クラウドストレージからbarman-cloud-backup で直接取得したバックアップを復元するために使用するスクリプト。

これらのコマンドには、使用するクラウドプロバイダーの適切なライブラリが必要です。

aws-s3クラウドプロバイダーの資格情報を設定する方法については、

Credentials を参照してください。

azure-blob-storageクラウドプロバイダーの資格情報については、

Environment variables for authorization parameters を参照してください。次の環境変数がサポートされています。AZURE_STORAGE_CONNECTION_STRING

、AZURE_STORAGE_KEY 、およびAZURE_STORAGE_SAS_TOKEN 。 Azure Active Directoryを介して認証するために、 --credential オプションを使用してazure-cli またはmanaged-identity 資格情報を指定することもできます。

インストール#

クラウド用のBarmanクライアントユーティリティは、 Barmanをバイパスしてクラウドプロバイダーに直接バックアップするPostgreSQLサーバーにインストールする必要があります。

barman-cloud-backup および/またはbarman-cloud-wal-archive をフックスクリプトとして使用する場合、 Barmanサーバーにbarman-cli-cloud パッケージをインストールすることもできます。

リポジトリをインストールするには、メインの「インストール」セクションを参照してください。

root としてRedHat / CentOSシステムにパッケージをインストールするには、次のように入力します。

yum install barman-cli-cloud

Debian / Ubuntuでは、root ユーザーとして次のように入力します。

apt-get install barman-cli-cloud

barman-cloudフックスクリプト#

上記のように、 Barmanサーバーにbarman-cli-cloud パッケージをインストールします。

barman-cloud-backup は、次のBarmanバックアップフレーバーのバックアップ後スクリプトとして使用できます。

  • backup_method = rsync で取得したバックアップ。

  • backup_compression を使用しないbackup_method = postgres で取得したバックアップ。

これを行うには、 Barmanのサーバー構成に次を追加します。

post_backup_retry_script = barman-cloud-backup [ *OPTIONS* ]  *DESTINATION_URL*  ${BARMAN_SERVER}

PostgreSQLサーバーのBarman構成に次を追加することにより、プレWALアーカイブスクリプトとしてbarman-cloud-wal-archive を構成します。

pre_archive_retry_script = barman-cloud-wal-archive [ *OPTIONS* ]  *DESTINATION_URL*  ${BARMAN_SERVER}

クラウドプロバイダーの選択#

--cloud-provider オプションを使用して、バックアップとWALのクラウドプロバイダーを選択します。これは、次のいずれかに設定できます。

  • aws-s3 [DEFAULT] AWS S3またはS3互換オブジェクトストア。

  • azure-blob-storage Azure Blob Storageサービス。

  • google-cloud-storage Google Cloud Storageサービス。

プロバイダーによる特異性#

Google Cloud Storage#

セットアップ#

google_storage_client依存関係が必要です。

pip3 install google-cloud-storage

資格情報を設定するには

そして、サービスアカウントキーを作成します。

  • バケットのアクセス権限を設定します。

バケットのサービスアカウントに Storage Admin Role を付与することをお勧めします。

  • barman_cloudを使用する場合 バケットが存在しない場合、作成されます。デフォルトオプションはバケットの作成に使用されます。バケットに特定のオプションリージョン、ストレージクラス、ラベルを含める必要がある場合は、ニーズをすべて満たすようにバケットを作成および設定することをお勧めします。

  • env variable GOOGLE_APPLICATION_CREDENTIALS をサービスアカウントキーファイルパスに設定します。

postgresarchive_commandまたはrestore_commandからbarmanクラウドを実行している場合、 postgres環境ファイルでGOOGLE_APPLICATION_CREDENTIALS を設定することを忘れないでください。

使用法#

一部の詳細は、すべてのバーマンクラウドコマンドに固有です。

  • Google Cloud Storage--cloud-provider=google-cloud-storage を選択します

  • SOURCE_URL は、gsとhttps形式の両方をサポートしています。例

gs://BUCKET_NAME/path
or
https://console.cloud.google.com/storage/browser/BUCKET_NAME/path

一部の詳細は、すべてのバーマンクラウドコマンドに固有です。

  • Google Cloud Storage--cloud-provider=google-cloud-storage を選択します

  • SOURCE_URL は、gsとhttps形式の両方をサポートしています。例

gs://BUCKET_NAME/path
or
https://console.cloud.google.com/storage/browser/BUCKET_NAME/path

barman-cloudとスナップショットのバックアップ#

barman-cloudクライアントユーティリティは、クラウドオブジェクトストアにアップロードする代わりに、クラウドスナップショットを使用してバックアップを作成および管理することもできます。

この方法でbarman-cloudを使用する場合、バックアップデータはボリュームスナップショットとしてクラウドプロバイダーによって保存され、WALとbackup_labelを含むバックアップメタデータはクラウドオブジェクトストレージに保存されます。

前提条件は same as for snapshot backups using Barman で、barman-cloudによって使用される資格情報がオブジェクトストアに対して読み取り/書き込み/更新操作を実行できる必要があるという要件が追加されています。

スナップショットの### barman-cloud-backup

barman-cloudでスナップショットバックアップを取得するには、次の追加引数とともにbarman-cloud-backup を使用します。

  • --snapshot-disk 複数のディスクに複数回使用できます

  • --snapshot-instance

--cloud-provider がgoogle-cloud-storage の場合、次の引数も必要です。

  • --gcp-project

  • --gcp-zone

--cloud-provider がazure-blob-storage の場合、次の引数も必要です。

  • --azure-subscription-id

  • --azure-resource-group

--cloud-provider がaws-s3 の場合、次のオプションの引数を使用できます。

  • --aws-profile

  • --aws-region

クラウドスナップショットが要求される場合、次のオプションはbarman-cloud-backup では使用できません。

  • --bzip2 、--gzip または--snappy

  • --jobs

バックアップが作成されると、 barman-cloud-backup-delete やbarman-cloud-backup-keep などの標準のbarman-cloudコマンドを使用して管理できます。

barman-cloud-restore for スナップショット#

barman-cloudを使用してスナップショットバックアップからリカバリーするプロセスは、

barman backups のプロセスと非常に似ていますが、リカバリインスタンスがプロビジョニングされたら、barman recover

の代わりにbarman-cloud-restore を実行する必要があります。これは、 barman recover と同じリカバリー前チェックを実行し、バックアップラベルをリカバリインスタンスの所定の場所にコピーします。

リカバリインスタンスのプロビジョニングに必要なスナップショットメタデータは、 barman-cloud-backup-show を使用して照会できます。

オブジェクトストア型バックアップでbarman-cloud-restore を使用する場合と同様に、コマンドはリカバリのためにPostgreSQLを準備しないことに注意してください。 PostgreSQLが起動する前に必要なPITRオプション、カスタムrestore_command 値、またはWALファイルは、手動または外部ツールで処理する必要があります。

クラウドスナップショットで作成されたバックアップを復元するときは、 barman-cloud-restore とともに次の追加引数を使用する必要があります。

  • --snapshot-recovery-instance

gcp プロバイダーには、次の追加引数が必要です。

  • --gcp-zone

azure プロバイダーには、次の追加引数が必要です。

  • --azure-resource-group

aws-s3 プロバイダーでは、次の追加引数を使用できます。

  • --aws-region

クラウドスナップショットバックアップを復元する場合、 --tablespace オプションはbarman-cloud-restore とともに使用できません。