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-restore :barman-cloud-backup でクラウドストレージから直接取得したバックアップを復元するために使用されるスクリプト;

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

注: これらのライブラリの最新バージョンは、2020年1月から end-of-lfe であるため、Python 2をサポートしていません。 Python 2システムでBarmanクラウドユーティリティを使用している場合は、Python 3にアップグレードすることをお勧めします。まだPython 2でBarmanクラウドユーティリティを使用したい場合は、各ライブラリが次のバージョン要件を満たしていることを確認する必要があります。

  • 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}

警告

When running as a hook script barman-cloud-backup requires that the status of the backup is DONE and it will fail if the backup has any other status. For this reason it is recommended backups are run with the -w / --wait option so that the hook script is not executed while a backup has status WAITING_FOR_WALS .

以下を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

資格情報を設定するには:

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

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

バケットのサービスアカウントに 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