newpage

#サーバーコマンド

前のセクションで述べたように、サーバーコマンドは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を使用して、構成済みのすべてのサーバーを順次バックアップできます。

check

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

barman check <server_name>

ヒント:> barman check allを使用して、構成済みのすべてのサーバーを確認できます。

重要:> checkコマンドは、おそらくBarmanが実装する最も重要な機能です。アラートとモニタリングインフラストラクチャに統合することをお勧めします。 --nagiosオプションを使用すると、Nagios / Icingaのプラグインを簡単に作成できます。

get-wal

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

barman get-wal [-o OUTPUT_DIRECTORY][-j|-x] <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は、コンマ区切り値のリストを受け入れるグローバル/サーバオプションです。 arecoveryオペレーション中にキーワードget-walが存在する場合、Barmanは、barman get-walを使用して必要なWALファイルを取得するようにrestore_commandを設定することにより、リカバリ構成を準備します。

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

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

get-walコマンドは常にasbarman ユーザで呼び出す必要があり、カタログからWALファイルを読み取るための正しいパーミッションが必要であることにノートしてください。これが、例でsudo -u barmanを使用している理由です。

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

このスクリプトには、WALファイルの自動圧縮と解凍、 PostgreSQLがそれらのいずれかを適用している間に次の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つの引数が必要です。これらは無視されます)。コマンド、 PostgreSQLサーバーでman barman-wal-restoreと入力します。

list-backup

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

barman list-backup <server_name>

ヒント: allをサーバー名前として使用して、すべてのサーバーのバックアップの完全なリストを要求できます。

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

rebuild-xlogdb

いつでも、特定のサーバー(またはallショートカットを使用してすべてのサーバー)のWALアーカイブのコンテンツを再生成できます。 WALarchiveは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の値に依存します。データベースのワークロードのピークが高い場合、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-server

以下を使用して、特定のサーバーの構成パラメーターを表示できます。

barman show-server <server_name>

** TIP:**サーバー名前all as>を使用して、完全な構成レポートを要求できます。

status

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

barman status <server_name>

switch-wal

このコマンドは、現在のログファイルは、閉じ受信しthenarchivedことができるように、別のTRANSACTIONLOGファイル(WAL)へのPostgreSQLスイッチになります。

barman switch-wal <server_name>

最後のtransactionlogファイルのスイッチ以降にトランザクションアクティビティがなかった場合、--forceオプションを使用してスイッチを強制ニーズがあります。

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

注: Barman 2.1および2.2では、このコマンドはswitch-xlogと呼ばれていました。> PostgreSQL 10以降との命名の一貫性のために名前が変更されました。