フックスクリプト#

Barmanでは、 :term:`DBA < DBA>`が特定のイベント中にフックスクリプトを実行できます。

重要

これらのスクリプトは、個々のサーバーに対してオーバーライドできるグローバルオプションを使用して構成できます。削除およびリカバリーフックスクリプトは version 2.4 で導入されました。

Barmanが管理できるフックスクリプトには2種類があります。

  • Standard Hook Scripts これらのスクリプトは1回実行され、リターンコードはチェックされません。

  • Retry Hook Scripts これらのスクリプトは、戻りコードによっては、複数回実行される場合があります。

再試行フックスクリプトを実行すると、 Barmanは戻りコードを確認し、次のいずれかを返すまでスクリプトの再試行を続けます。

  • SUCCESS 標準リターンコード 0

  • ABORT_CONTINUE リターンコード 62

  • ABORT_STOP リターンコード 63

他のリターンコードは一時的な障害として扱われ、 Barmanにスクリプトを再試行するように求めます。これにより、ユーザーはより詳細な制御が可能になり、フックスクリプトで障害を一時的なものと見なすかどうかを決定できます。さらに、プリフックスクリプトの場合、 ABORT_STOP を返すと、ユーザーはBarmanが失敗してメインオペレーションを中断するように要求できます。

フックスクリプトは次の順序で実行されます存在しない場合はスキップされます。

  1. Standard pre hook script 。

  2. Retry pre hook script 。

  3. Main event バックアップオペレーション、リストアオペレーションまたはWALアーカイブ、再試行プリフックスクリプトが ABORT_STOP で中止された場合を除きます。

  4. Retry post hook script 。

  5. Standard post hook script 。

フックスクリプトによって生成されたすべての出力は、Barmanのログファイルに記録されます。

注釈

現在、 ABORT_STOP は、再試行ポストフックスクリプトによって無視されます。このような場合、これにより追加の警告がログに記録され、 ABORT_STOP は ABORT_CONTINUE と同じように動作します。

バックアップを作成する前と後#

  • pre_backup_script 終了コードをチェックせずに、ベースバックアップの前に1回実行されるフックスクリプト。

  • pre_backup_retry_script ベースバックアップの前に実行される再試行フックスクリプト。成功するか中止されるまで繰り返し実行されます。

  • post_backup_retry_script ベースバックアップの後に実行される再試行フックスクリプト。成功するか中止されるまで繰り返し実行されます。

  • post_backup_script ベースバックアップの後、終了コードをチェックせずに1回実行されるフックスクリプト。

シェル環境には、 backup scripts の次の変数が含まれます。

  • BARMAN_BACKUP_DIR バックアップの宛先ディレクトリ。

  • BARMAN_BACKUP_ID バックアップのID。

  • BARMAN_BACKUP_INFO_PATH `backup.info`ファイルのパス。

  • BARMAN_CONFIGURATION Barmanが使用する構成ファイル。

  • BARMAN_ERROR 任意のエラーメッセージ post フェーズにのみ適用されます。

  • BARMAN_PHASE スクリプトのフェーズを示します pre または post 。

  • BARMAN_PREVIOUS_ID 以前のバックアップのID、使用可能な場合。

  • BARMAN_RETRY 再試行スクリプトの場合は 1 に設定します。それ以外の場合は、 0 です。

  • BARMAN_SERVER サーバーの名前。

  • BARMAN_STATUS バックアップのステータス。

  • BARMAN_VERSION Barmanのバージョン。

バックアップを削除する前と後#

  • pre_delete_script バックアップの削除の前に1回トリガーされ、終了コードチェックなしのフックスクリプト。

  • pre_delete_retry_script バックアップの削除前に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。

  • post_delete_retry_script バックアップの削除後に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。

  • post_delete_script バックアップの削除後に1回トリガーされ、終了コードチェックなしのフックスクリプト。

Delete scripts は、 Delete scripts と同じ環境変数に加えて、

BARMAN_NEXT_ID 使用可能な場合、次のバックアップのID。

WALがアーカイブされる前と後#

  • pre_archive_script 終了コードをチェックせずに、メンテナンスによってWALファイルがアーカイブされる前に、通常はBarman cronを介して1回実行されるフックスクリプト。

  • pre_archive_retry_script WALファイルがメンテナンスによってアーカイブされる前に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。

  • post_archive_retry_script WALファイルがメンテナンスによってアーカイブされた後に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。

  • post_archive_script メンテナンスによってWALファイルがアーカイブされた後、終了コードをチェックせずに1回実行されるフックスクリプト。

WAL archive scripts は、 WAL archive scripts といくつかの環境変数を共有します。

  • BARMAN_CONFIGURATION Barmanが使用する構成ファイル。

  • BARMAN_ERROR 生成されたエラーメッセージ事後フェーズのみ。

  • BARMAN_PHASE スクリプトのフェーズ前または後。

  • BARMAN_SERVER サーバーの名前。

さらに、次の変数は WAL archive scripts に固有です。

  • BARMAN_SEGMENT WALファイルの名前。

  • BARMAN_FILE WALファイルのフルパス。

  • BARMAN_SIZE WALファイルのサイズ。

  • BARMAN_TIMESTAMP WALファイルのタイムスタンプ。

  • BARMAN_COMPRESSION WALファイルに適用される圧縮のタイプ。

WALファイルが削除される前と後#

  • pre_wal_delete_script WALファイルが削除される前に実行されるフックスクリプト。

  • pre_wal_delete_retry_script WALファイルを削除する前に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。

  • post_wal_delete_retry_script WALファイルが削除された後に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。

  • post_wal_delete_script WALファイルが削除された後に実行されるフックスクリプト。

WAL delete scripts は、 WAL delete scripts と同じ環境変数を利用します。

バックアップを復元する前と後#

  • pre_recovery_script 終了コードをチェックせずに、バックアップ復元の前に1回実行されるフックスクリプト。

  • pre_recovery_retry_script バックアップ復元の前に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。

  • post_recovery_retry_script バックアップ復元の後に実行される再試行フックスクリプト。成功するか中止されるまで繰り返し実行されます。

  • post_recovery_script バックアップ復元後に終了コードをチェックせずに1回実行されるフックスクリプト。

Recovery scripts は、 Recovery scripts と同じ環境変数に加えて、

  • BARMAN_DESTINATION_DIRECTORY 新しいインスタンスが復元されるディレクトリ。

  • BARMAN_TABLESPACES 表領域の再配置マップJSON形式、該当する場合。

  • BARMAN_REMOTE_COMMAND 復元中に使用されるsecure Shellコマンド該当する場合。

  • BARMAN_RECOVER_OPTIONS 追加のリカバリオプションJSON形式、該当する場合。

barmanでフックとして barman-cloud-* スクリプトを使用する#

installation section のプロセスに従って、 installation section の使用を開始します。

注釈

構成オプションの詳細については、 configuration セクションを参照してください。

barman-cloud-backup は、次のBarmanバックアップタイプの post-backup script として使用できます。

  • backup_method = rsync で作成されたバックアップ。

  • backup_compression が適用されない場合に backup_method = postgres で作成されたバックアップ。

これを構成するには、 Barmanのサーバー構成に次の行を追加します。

post_backup_retry_script = barman-cloud-backup [ OPTIONS ] DESTINATION_URL SERVER_NAME

警告

barman-cloud-backup は、フックスクリプトとして使用する場合、バックアップステータスが DONE である必要があります。バックアップに他のステータスがある場合、バックアップは失敗します。問題を回避するには、 -w / --wait オプションを使用してバックアップを実行し、バックアップステータスが WAITING_FOR_WALS 中にフックスクリプトが実行されないようにすることをお勧めします。

さらに、PostgresサーバーのBarman構成に次の行を追加することにより、WAL以前のアーカイブスクリプトとして barman-cloud-wal-archive をセットアップします。

pre_archive_retry_script = barman-cloud-wal-archive [ OPTIONS ] DESTINATION_URL SERVER_NAME