フックスクリプト#
Barmanでは、 :term:`DBA < DBA>`が特定のイベント中にフックスクリプトを実行できます。
重要
これらのスクリプトは、個々のサーバーに対してオーバーライドできるグローバルオプションを使用して構成できます。削除およびリカバリーフックスクリプトは version 2.4 で導入されました。
Barmanが管理できるフックスクリプトには2種類があります。
Standard Hook Scripts これらのスクリプトは1回実行され、リターンコードはチェックされません。
Retry Hook Scripts これらのスクリプトは、戻りコードによっては、複数回実行される場合があります。
再試行フックスクリプトを実行すると、 Barmanは戻りコードを確認し、次のいずれかを返すまでスクリプトの再試行を続けます。
SUCCESS標準リターンコード0ABORT_CONTINUEリターンコード62ABORT_STOPリターンコード63
他のリターンコードは一時的な障害として扱われ、 Barmanにスクリプトを再試行するように求めます。これにより、ユーザーはより詳細な制御が可能になり、フックスクリプトで障害を一時的なものと見なすかどうかを決定できます。さらに、プリフックスクリプトの場合、 ABORT_STOP を返すと、ユーザーはBarmanが失敗してメインオペレーションを中断するように要求できます。
フックスクリプトは次の順序で実行されます存在しない場合はスキップされます。
Standard pre hook script 。
Retry pre hook script 。
Main event バックアップオペレーション、リストアオペレーションまたはWALアーカイブ、再試行プリフックスクリプトが
ABORT_STOPで中止された場合を除きます。Retry post hook script 。
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_CONFIGURATIONBarmanが使用する構成ファイル。BARMAN_ERROR任意のエラーメッセージpostフェーズにのみ適用されます。BARMAN_PHASEスクリプトのフェーズを示しますpreまたはpost。BARMAN_PREVIOUS_ID以前のバックアップのID、使用可能な場合。BARMAN_RETRY再試行スクリプトの場合は1に設定します。それ以外の場合は、0です。BARMAN_SERVERサーバーの名前。BARMAN_STATUSバックアップのステータス。BARMAN_VERSIONBarmanのバージョン。
バックアップを削除する前と後#
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_scriptWALファイルがメンテナンスによってアーカイブされる前に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。post_archive_retry_scriptWALファイルがメンテナンスによってアーカイブされた後に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。post_archive_scriptメンテナンスによってWALファイルがアーカイブされた後、終了コードをチェックせずに1回実行されるフックスクリプト。
WAL archive scripts は、 WAL archive scripts といくつかの環境変数を共有します。
BARMAN_CONFIGURATIONBarmanが使用する構成ファイル。BARMAN_ERROR生成されたエラーメッセージ事後フェーズのみ。BARMAN_PHASEスクリプトのフェーズ前または後。BARMAN_SERVERサーバーの名前。
さらに、次の変数は WAL archive scripts に固有です。
BARMAN_SEGMENTWALファイルの名前。BARMAN_FILEWALファイルのフルパス。BARMAN_SIZEWALファイルのサイズ。BARMAN_TIMESTAMPWALファイルのタイムスタンプ。BARMAN_COMPRESSIONWALファイルに適用される圧縮のタイプ。
WALファイルが削除される前と後#
pre_wal_delete_scriptWALファイルが削除される前に実行されるフックスクリプト。pre_wal_delete_retry_scriptWALファイルを削除する前に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。post_wal_delete_retry_scriptWALファイルが削除された後に実行される再試行フックスクリプト。成功または中止されるまで繰り返し実行されます。post_wal_delete_scriptWALファイルが削除された後に実行されるフックスクリプト。
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