Server commands

前のセクションで述べたように、サーバーコマンドはPostgreSQLサーバーまたはその領域で動作し、ステータスの確認、メンテナンスオペレーションの実行、バックアップ、 Barmanアーカイブの管理に役立ちます。

archive-wal

archive-wal コマンドは、特定のサーバーのWALファイルに対してメンテナンス操作を実行します。この操作には、ストリーミング接続またはarchive_command またはその両方から受信したWALファイルの処理が含まれます。

重要

The archive-wal command, even if it can be directly invoked, is designed to be started from the cron general command.

backup

backup コマンドは、指定されたサーバーの完全バックアップ(base backup)を取得します。新しいバックアップに対応する構成パラメーターをオーバーライドできるオプションがいくつかあります。詳細については、マニュアルページを参照してください。

次を使用して、特定のサーバーの完全バックアップを実行できます。

barman backup <server_name>

Tip

You can use barman backup all to sequentially backup all your configured servers.

Tip

You can use barman backup <server_1_name<server_2_name> to sequentially backup both <server_1_name> and <server_2_name> servers.

Barman 2.10では、 backup コマンドに-w /--wait オプションが導入されました。設定されると、 Barmanはバックアップの状態を一時的にWAITING_FOR_WALS に保存し、必要なすべてのWALファイルがアーカイブされるのを待ってから、状態をDONE に設定し、バックアップ後のフックスクリプトを続行します。 --wait-timeout オプションが提供されている場合、 Barmanは指定された秒数後にWALファイルの待機を停止し、状態はWAITING_FOR_WALS のままになります。 cron コマンドは、欠落しているWALファイルがアーカイブされていることを引き続き確認し、バックアップにDONE のラベルを付けます。

check

check コマンドを使用して、特定のサーバーへの接続と構成の一貫性を確認できます。

barman check <server_name>

Tip

You can use barman check all to check all your configured servers.

重要

The check command is probably the most critical feature that Barman implements. We recommend to integrate it with your alerting and monitoring infrastructure. The --nagios option allows you to easily create a plugin for Nagios/Icinga.

generate-manifest

このコマンドは、バックアップがリモートで作成され、pg_basebackupが関与せず、backup_manifest ファイルがバックアップに存在しない場合に役立ちます。 barmanサーバーのバックアップを使用して、backup_idからbackup_manifest ファイルを生成します。ファイルが既に存在する場合、生成コマンドは中断されます。

コマンド例:

barman generate-manifest <server_name> <backup_id>
``` backup_id [backup idshortcuts]{#backup-id-shortcuts}のいずれかを使用できます。

このコマンドは、次のようにpost_backupフックスクリプトとして使用することもできます。

```bash
post_backup_script=barman generate-manifest ${BARMAN_SERVER} ${BARMAN_BACKUP_ID}

get-wal

Barmanでは、ユーザーがget-wal コマンドを使用してWALアーカイブからxlogファイルを要求できます。

barman get-wal [-o OUTPUT_DIRECTORY]()  <server_name> <wal_id>

要求されたWALファイルがサーバーアーカイブで見つかった場合、特に指定がない限り、非圧縮のコンテンツがSTDOUT に返されます。

get-wal コマンドでは、次のオプションを使用できます。

  • -o により、ユーザーはBarmanが要求されたWALファイルを保存する宛先ディレクトリを指定できます

  • -j はbzip2 アルゴリズムを使用して出力を圧縮します

  • -x はgzip アルゴリズムを使用して出力を圧縮します

  • -p SIZE は、要求されたファイルから始めて、アーカイブからWALファイルまでをのぞきます

リカバリオペレーション中に get-wal を使用して、 BarmanサーバーをサーバーのWALハブに変換できます。これは、 get-wal 値をrecovery_options グローバル/サーバー構成オプションに追加することで自動的に実現できます。

recovery_options = get-wal

recovery_options は、コンマ区切りの値のリストを受け入れるグローバル/サーバーオプションです。リカバリー操作中にキーワードget-wal が存在する場合、 Barmanはrestore_command を設定してリカバリー構成を準備し、barman get-wal を使用して必要なWALファイルをフェッチします。同様に、実行時にrecover コマンドに--get-wal オプションを使用できます。

get-wal がrecovery_options に設定されているが、リカバリー操作中には必要ない場合、 --no-get-wal オプションをrecover コマンドで使用して、 get-wal リカバリーオプションを無効にできます。

これは、ローカルリカバリのrestore_command の例です。

restore_command = sudo -u barman barman get-wal SERVER %f > %p

get-wal コマンドは常にbarman ユーザーとして呼び出す必要があり、カタログからWALファイルを読み取るには正しい権限が必要であることに注意してください。これが、例で sudo -u barman を使用している理由です。

リモートリカバリーのためにrecovery_options をget-wal に設定すると、代わりにbarman-wal-restore スクリプトを使用してrestore_command が生成されます。 barman-wal-restore は、SSH接続エラーを管理する、より回復力のあるシェルスクリプトです。

このスクリプトには、WALファイルの自動圧縮と解凍や、PostgreSQLがそれらのいずれかを適用しているときに次のWALファイルを取得できるピーク機能など、多くの便利なオプションがあります。これは、 PostgreSQL とBarman間の帯域幅使用を最適化する優れた方法です。

barman-wal-restore は、 barman-cli パッケージで利用できます。

これは、リモートリカバリのrestore_command の例です。

restore_command = barman-wal-restore -U barman backup SERVER %f %p

Barmanサーバーとの通信にSSHを使用するため、 postgres ユーザーがバックアップサーバーにbarman としてログインするにはSSHキー認証が必要です。 SSHのデフォルトの22以外のポートを使用する必要がある場合は、 --port オプションを追加して、SSH接続に使用するポートを指定できます。

barman-wal-restore がBarmanサーバーに接続できること、および必要なPostgreSQLサーバーがBarmanで次のコマンドでWALファイルを送信するように構成されていることを確認できます。

barman-wal-restore --test backup pg DUMMY DUMMY

backup はBarmanがインストールされているホスト、 pg はBarmanで構成されたPostgreSQLサーバーの名前であり、 DUMMYはプレースホルダーです(barman-wal-restore にはWALファイル名と宛先ディレクトリに2つの引数が必要ですが、無視されます)。

すべてが正しく構成されている場合、次の出力が表示されます。

Ready to retrieve WAL files from the server pg

barman-wal-restore コマンドの詳細については、PostgreSQLサーバーでman barman-wal-restore と入力してください。

list-backups

次を使用して、特定のサーバーで使用可能なバックアップのカタログをリストできます。

barman list-backups <server_name>

Tip

You can request a full list of the backups of all servers using all as the server name.

機械可読な出力を得るには、 --minimal オプションを使用します。

rebuild-xlogdb

いつでも、特定のサーバー(または all ショートカットを使用してすべてのサーバー)のWALアーカイブのコンテンツを再生成できます。 WALアーカイブはxlog.db ファイルに含まれており、 Barmanが管理するすべてのサーバーには独自のコピーがあります。

xlog.db ファイルは、 rebuild-xlogdb コマンドでリビルドできます。これにより、アーカイブされたすべてのWALファイルがスキャンされ、アーカイブのメタデータが再生成されます。

例:

barman rebuild-xlogdb <server_name>

receive-wal

このコマンドは、ストリーミングプロトコルを使用してPostgreSQLストリーミング接続からWALファイルを受信するreceive-wal プロセスを管理します。

receive-walプロセス管理

オプションを指定せずにコマンドを実行すると、 receive-wal プロセスが起動されます。このコマンドは、 pg_receivewal PostgreSQLコマンドに基づいています。

barman receive-wal <server_name>

注釈

The receive-wal command is a foreground process.

--stop オプションを指定してコマンドを実行すると、現在実行中のreceive-wal プロセスが停止します。

receive-wal プロセスは、ステータスファイルを使用して、トランザクションログの最後に書き込まれたレコードを追跡します。ステータスファイルをクリーニングする必要がある場合は、 --reset オプションを使用できます。

重要

If you are not using replication slots, you rely on the value of wal_keep_segments (or wal_keep_size from PostgreSQL version 13.0 onwards). Be aware that under high peaks of workload on the database, the receive-wal process might fall behind and go out of sync. As a precautionary measure, Barman currently requires that users manually execute the command with the --reset option, to avoid making wrong assumptions.

レプリケーションスロット管理

receive-wal プロセスは、 BarmanがWALアーカイブ手順に必要とするレプリケーションスロットを作成または削除する場合にも役立ちます。

--create-slot オプションを使用すると、 slot_name 構成オプションにちなんで名付けられたレプリケーションスロットがPostgreSQLサーバーに作成されます。

--drop-slot では、以前のレプリケーションスロットが削除されます。

replication-status

replication-status コマンドは、 Barmanサーバー(構成されている場合)のreceive-wal プロセスを含む、現在PostgreSQLサーバーに接続されているストリーミングクライアントのステータスを報告します。

次のようにコマンドを実行できます。

barman replication-status <server_name>

Tip

You can request a full status report of the replica for all your servers using all as the server name.

機械可読な出力を得るには、 --minimal オプションを使用します。

show-servers

次のコマンドで、特定のサーバーの構成パラメーターを表示できます。

barman show-servers <server_name>

Tip

you can request a full configuration report using all as the server name.

status

status コマンドは、PostgreSQLサーバーまたはサーバー名としてall を使用している場合はすべてのサーバーのライブ情報とステータスを表示します。

barman status <server_name>

switch-wal

このコマンドは、PostgreSQLサーバーを別のトランザクションログファイル(WAL)に切り替え、現在のログファイルを閉じ、受信してアーカイブできるようにします。

barman switch-wal <server_name>

最後のトランザクションログファイルの切り替え以降、トランザクションアクティビティが発生していない場合は、 --force オプションを使用して切り替えを強制する必要があります。

--archive オプションは、xlogスイッチの後にWALアーカイブをトリガーするようにBarmanに要求します。デフォルトでは、30秒のタイムアウトが適用されます(これは--archive-timeout で変更できます)。 WALファイルを受信しない場合、エラーが返されます。

注釈

In Barman 2.1 and 2.2 this command was called switch-xlog . It has been renamed for naming consistency with PostgreSQL 10 and higher.

verify

verify コマンドは、バックアップからのbackup_manifestファイルを使用し、それに対してpg_verifybackup を実行します。

edb_notranlate_17 このコマンドはpg_verifybackup <path_to_backup_manifest> -n を呼び出します(PG>=13で使用可能) pg_verifybackup バックアップサーバーにインストールする必要があります。 rsyncバックアップの場合、 generate-manifest コマンドで使用できます。

backup_id backup idshortcutsのいずれかを使用できます。