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 パッケージをインストールすることをお勧めします。

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

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

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ストレージ

  • Google Cloud Storage(Rest API)

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

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

  • barman-cloud-wal-restore :restore_command として使用して、 BarmanサーバーをバイパスしてクラウドストレージからWALファイルを取得し、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 でクラウドストレージから直接取得したバックアップを復元するために使用されるスクリプト;

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

  • boto3<1.18.0

  • azure-storage-blob<12.10.0 およびazure-identity<1.8.0

  • google-cloud-storage<2.0.0

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

Credentials を参照してください。

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

Environment variables for authorization parameters

を参照してください。次の環境変数がサポートされています。AZURE_STORAGE_CONNECTION_STRING 、AZURE_STORAGE_KEY 、およびAZURE_STORAGE_SAS_TOKEN 。 --credential オプションを使用して、Azure Active Directoryを介して認証するために、 azure-cli またはmanaged-identity の資格情報を指定することもできます。

インストール

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

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

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

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

yum install barman-cli-cloud

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

apt-get install barman-cli-cloud

barman-cloudフックスクリプト

上記の説明に従って、 Barmanサーバーにbarman-cli-cloud パッケージをインストールします。

以下をPostgreSQLサーバーのBarman構成に追加して、barman-cloud-backup をポストバックアップスクリプトとして構成します。

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

警告

フックスクリプトとして実行する場合 barman-cloud-backupはバックアップのステータスがDONEである必要があり、バックアップが他のステータスの場合は失敗します。このため、バックアップのステータスが`WAITING_FOR_WALS` であるときにフックスクリプトが実行されないように、 -w / --wait オプションを使用してバックアップを実行することをお勧めします。

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

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

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

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

  • aws-s3 [デフォルト]: 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を使用する場合、バケットが存在しない場合は作成されます。バケットの作成にはデフォルトのオプションが使用されます。バケットに特定のオプション(リージョン、ストレージクラス、ラベル)が必要な場合は、必要なものすべてに一致するようにバケットを作成して設定することをお勧めします。

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

postgres(archive_commandまたはrestore_command)からbarman cloudを実行している場合は、postgres環境ファイルにGOOGLE_APPLICATION_CREDENTIALS を設定することを忘れないでください。

使用法

一部の詳細は、すべての barman cloud コマンドに固有です。

  • 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 コマンドに固有です。

  • 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を使用すると、バックアップデータはクラウドプロバイダーによってボリュームスナップショットとして保存され、backup_labelを含むWALとバックアップメタデータはクラウドオブジェクトストレージに保存されます。

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

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

barman-cloudでスナップショットバックアップを作成するには、次の追加の引数を指定して barman-cloud-backup を使用します。

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

  • --snapshot-instance

  • --snapshot-zone

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

  • --snapshot-gcp-project

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

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

  • --jobs

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

スナップショットのbarman-cloud-restore

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

  • --snapshot-recovery-zone

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