Server commands¶
前のセクションで述べたように、サーバーコマンドはPostgreSQLサーバーまたはBarmanのエリアで直接動作し、ステータスの確認、メンテナンス操作の実行、バックアップの取得、WALアーカイブの管理に役立ちます。
archive-wal¶
archive-wal
コマンドは、特定のサーバーのWALファイルでメンテナンス操作を実行します。この操作には、ストリーミング接続または
archive_command
またはその両方から受信したWALファイルの処理が含まれます。
重要
archive-wal コマンドは、直接起動できる場合でも、 cron 一般コマンドから開始されるように設計されています。
backup¶
backup コマンドは、特定のサーバーのフルバックアップ(base
backup)を取得します。新しいバックアップの対応する設定パラメータを上書きできるいくつかのオプションがあります。詳細については、マニュアルページを参照してください。
以下を使用して、特定のサーバーのフルバックアップを実行できます。
barman backup <server_name>
ちなみに
barman backup all を使用して、構成済みのすべてのサーバーを順次バックアップできます。
Barman 2.10では、 backup コマンドに -w / --wait
オプションが導入されています。設定すると、
Barmanは一時的にバックアップの状態を WAITING_FOR_WALS
に保存し、必要なすべてのWALファイルがアーカイブされるのを待ってから状態を
DONE に設定し、バックアップ後のフックスクリプトを続行します。
バックアップオプションが指定されている場合、
Barmanは指定された秒数が経過するとWALファイルの待機を停止し、状態はlabelのままになります。
check¶
check
コマンドを使用して、特定のサーバーへの接続と構成の一貫性を確認できます。
barman check <server_name>
ちなみに
barman check all を使用して、構成済みのすべてのサーバーを確認できます。
重要
check コマンドは、おそらくBarmanが実装する最も重要な機能です。アラートおよびモニタリングインフラストラクチャと統合することをお勧めします。 --nagios オプションを使用すると、Nagios / Icingaのプラグインを簡単に作成できます。
generate-manifest¶
このコマンドは、バックアップがリモートで作成され、pg_basebackupが関与せず、
backup_manifest ファイルがバックアップに存在しない場合に役立ちます。
barmanサーバーのバックアップを使用して、backup_idから
backup_manifest
ファイルを生成します。ファイルが既に存在する場合、生成コマンドはアボートされます。
コマンド例:bash barman generate-manifest <server_name> <backup_id>
backup_id [バックアップ id shortcuts]
{#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は、 barman get-wal
を使用して必要なWALファイルをフェッチするように restore_command
を設定することにより、リカバリ構成を準備します。同様に、実行時に
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がそれらの1つを適用している間に次のWALファイルを取得できる* peek *機能など、多くの便利なオプションがあります。これは、 PostgreSQLとBarman間の帯域幅の使用を最適化する優れた方法です。
barman-wal-restore は barman-cli パッケージで利用可能です。
これは、リモートリカバリの restore_command の例です。
restore_command = barman-wal-restore -U barman backup SERVER %f %p
SSHを使用してBarmanサーバーと通信するため、 postgres
ユーザがバックアップサーバで barman
としてログインするにはSSHキー認証が必要です。
次のコマンドを使用して、 barman-wal-restore
がBarmanサーバーに接続でき、必要なPostgreSQLサーバーがWALファイルを送信するようにBarmanで設定されていることを確認できます。
barman-wal-restore --test backup pg DUMMY DUMMY
backup はBarmanがインストールされているホスト、 pg
はBarmanで設定されているPostgreSQLサーバーの名前、DUMMYはプレースホルダです(
barman-wal-restore
にはWALファイル名前と宛先ディレクトリの2つの引数が必要です。これらは無視されます)。
barman-wal-restore コマンドの詳細については、 PostgreSQLサーバーで「
man barman-wal-restore 」と入力してください。
list-backups¶
以下を使用して、特定のサーバーで使用可能なバックアップのカタログをリストできます。
barman list-backups <server_name>
ちなみに
サーバー名前として all を使用して、すべてのサーバーのバックアップの完全なリストを要求できます。
機械可読な出力を得るには、 --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>
注釈
receive-wal コマンドはフォアグラウンドプロセスです。
--stop オプションを使用してコマンドを実行すると、現在実行中の
receive-wal プロセスが停止します。
receive-wal
プロセスは、ステータスファイルを使用して、トランザクションログの最後に書き込まれたレコードを追跡します。ステータスファイルをクリーニングニーズがある場合は、
--reset オプションを使用できます。
重要
レプリケーションスロットを使用していない場合、 wal_keep_segments (またはPostgreSQLバージョン13.0以降の wal_keep_size )の値に依存します。データベースのワークロードのピーク時に、 receive-wal プロセスが遅れて同期が取れなくなる可能性があることに注意してください。予防措置として、 Barmanでは現在、ユーザーが --reset オプションを使用してコマンドを手動で実行し、誤った仮定を行わないようにする必要があります。
複製スロット管理¶
receive-wal プロセスは、
BarmanのWALアーカイビングプロシージャに必要なレプリケーションスロットを作成または削除するのにも役立ちます。
--create-slot オプションを使用すると、 slot_name
構成オプションにちなんで名前付けたレプリケーションスロットがPostgreSQLサーバー上に作成されます。
--drop-slot
を使用すると、以前のレプリケーションスロットが削除されます。
replication-status¶
replication-status コマンドは、 Barmanサーバーの receive-wal
プロセス(設定されている場合)を含む、
PostgreSQLサーバーに現在接続されているストリーミングクライアントのステータスを報告します。
次のようにコマンドを実行できます。
barman replication-status <server_name>
ちなみに
サーバー名前として all を使用して、すべてのサーバーのレプリカの完全なステータスレポートを要求できます。
機械可読な出力を得るには、 --minimal オプションを使用できます。
show-servers¶
以下を使用して、特定のサーバーの構成パラメーターを表示できます。
barman show-servers <server_name>
ちなみに
では、サーバー名前として all を使用して完全な構成レポートを要求できます。
status¶
status コマンドは、サーバー名前として all を使用している場合、
PostgreSQLサーバーまたはすべてのサーバーのライブ情報とステータスを表示します。
barman status <server_name>
switch-wal¶
このコマンドは、 PostgreSQLサーバーを別のトランザクションログファイル(WAL)にスイッチ、現在のログファイルを閉じて受信し、アーカイブできるようにします。
barman switch-wal <server_name>
最後のトランザクションログファイルのスイッチ以降にトランザクションアクティビティがない場合、
--force オプションを使用してスイッチを強制ニーズがあります。
--archive オプションは、
Barmanにxlogスイッチの後にWALアーカイビングをトリガーするように要求します。デフォルトでは、30秒のタイムアウトが強制されます(これは
--archive-timeout で変更できます)。
WALファイルが受信されない場合、エラーが返されます。
注釈
Barman 2.1および2.2では、このコマンドは switch-xlog と呼ばれていました。 PostgreSQL 10以降との命名の一貫性のために名前が変更されました。
verify¶
verify コマンドは、
バックアップのbackup_manifestファイルを使用して、それに対して
pg_verifybackup を実行します。 edb_notranlate_16このコマンドは
pg_verifybackup <path_to_backup_manifest> -n (PG> =
13で利用可能)を呼び出します pg_verifybackup
バックアップサーバにインストールする必要があります。
rsyncバックアップの場合、 generate-manifest コマンドで使用できます。
backup_id [バックアップ id shortcuts] {#backup-id-shortcuts}のいずれかを使用できます。