Barmanクライアントユーティリティ 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クライアントユーティリティ 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-archivearchive_commandとして使用して、 BarmanサーバーをバイパスしてWALファイルをクラウドストレージに直接出荷するアーカイブスクリプト。または、WALアーカイブpre_archive_retry_scriptのフックスクリプトとしてbarman-cloud-wal-restorerestore_commandとして使用するスクリプトで、クラウドストレージからWALファイルを取得し、 Barmanサーバーをバイパスし、PostgreSQLスタンバイに直接保存します。barman-cloud-backupPostgreSQLサーバーで直接ローカルバックアップをとり、 Barmanサーバーをバイパスして、サポートされているクラウドプロバイダーに発送するために使用されるバックアップスクリプト。または、バーマンのバックアップをクラウドにコピーするためのフックスクリプトとしてpost_backup_retry_script)barman-cloud-backup-deletebarman-cloud-backupで取得した1つ以上のバックアップをクラウドストレージから削除し、関連するWALを削除するために使用されるスクリプト。barman-cloud-backup-keepクラウドストレージのバックアップにアーカイブバックアップとしてフラグを立てるために使用されるスクリプト。このようなバックアップは、適用される保持ポリシーに関係なく、永久に保持されます。barman-cloud-backup-listクラウドストレージからbarman-cloud-backupで取得したBarmanバックアップのコンテンツをリストするために使用されるスクリプト。barman-cloud-backup-showbarman-cloud-backupで取得したBarmanバックアップのメタデータを表示するために使用されるスクリプト。barman-cloud-restoreクラウドストレージからbarman-cloud-backupで直接取得したバックアップを復元するために使用するスクリプト。
これらのコマンドには、使用するクラウドプロバイダーの適切なライブラリが必要です。
AWS S3 [boto3][boto3]
Azure Blob Storage [azure-storage-blob][azure-storage-blob]およびオプションで[azure-identity][azure-identity]
Google Cloud Storage [google-cloud-storage][google-cloud-storage]
aws-s3クラウドプロバイダーの資格情報をセットアップする方法については、[“Credentials”セクションのBoto 3 documentation][boto3creds]を参照してください。
azure-blob-storageクラウドプロバイダーの資格情報については、[“Environment
variables for authorization parameters”セクションのAzure
documentation][azure-storage-auth]を参照してください。次の環境変数がサポートされています。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}
警告
フックスクリプトとして実行する場合、 barman-cloud-backupは、バックアップのステータスがDONEである必要があり、バックアップが他のステータスの場合、失敗します。このため、バックアップは`-w / --wait` オプションを使用して実行して、バックアップのステータスが`WAITING_FOR_WALS` であるときにフックスクリプトが実行されないようにすることをお勧めします。
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-storageAzure Blob Storageサービス。google-cloud-storageGoogle 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
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 とともに使用できません。