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で直接取得したバックアップを復元するために使用されるスクリプト。
これらのコマンドには、使用するクラウドプロバイダーの適切なライブラリが必要です。
AWS S3:(https://github.com/boto/boto3)[boto3]
Azure Blob Storage:(https://docs.microsoft.com/en-us/python/api/azure-storage-blob/?view=azure-python)[azure-storage-blob]および(オプションで)(https ://docs.microsoft.com/en-us/python/api/azure-identity/?view=azure-python)[azure-identity]
Google Cloud Storage:(https://cloud.google.com/storage/docs/reference/libraries)[google-cloud-storage]
- aws-s3クラウドプロバイダーの資格情報をセットアップする方法については、
Credentials を参照してください。
- azure-blob-storageクラウドプロバイダーの資格情報については、
を参照してください。次の環境変数がサポートされています: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
をpre 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利用時、バケットが存在しない場合は作成されます。デフォルトオプションは、バケットの作成に使用されます。バケットに特定のオプション(リージョン、ストレージクラス、ラベル)を含める必要がある場合は、必要なものすべてに一致するようにバケットを作成および設定することをお勧めします。
env variable
GOOGLE_APPLICATION_CREDENTIALS
をサービスアカウントキーファイルパスに設定します。
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を使用する場合、バックアップデータはクラウドプロバイダーによってボリュームスナップショットとして保存され、WALとbackup_labelを含むバックアップメタデータはクラウドオブジェクトストレージに保存されます。
前提条件は 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 と一緒に使用できません。