Barmanリリースノート#
© Copyright EnterpriseDB UK Limited 2025 - 無断複写・転載を禁じます。
3.19.02026-05-20#
重要な変更#
クラウドストレージからのバックアップ復元のサポートを追加します
Barmanは、クラウドオブジェクトストレージに保存されている場合、
backup_method = local-to-cloudまたはbackup_method = postgresで取得されたバックアップを復元できるようになりました。標準の
barman restoreコマンドを使用して、このようなバックアップをリストアできます。WALリストアの場合、リカバリ中にクラウドストレージからWALファイルを直接取得するための新しい
barman cloud-wal-restoreコマンドが導入されました。このコマンドは、PostgreSQLのrestore_commandとして使用でき、パフォーマンスの向上のための並列取得をサポートしています。また、サーバーがクラウドストレージを使用するように
wals_directoryが構成されている場合、リストア操作に常にget-walが必要になるようになりました。--no-get-walが指定されている場合、またはget-walがrecovery_optionsにない場合、 Barmanは自動的にget-walを有効にし、警告を発行して、リストアを中断せずに続行できるようにします。これにより、クラウドバックアップのライフサイクルが完了し、完全にクラウドでのシームレスなバックアップとリカバリーのワークフローが可能になります。
参考文献 BAR-929。
バックアップをtarballにエクスポートするための新しいbarman allow-backupコマンドを追加
バックアップをtarball形式にエクスポートする新しい
barman export-backupコマンドを導入しました。このコマンドは、サーバー名、バックアップID、および宛先ディレクトリを引数として受け取り、バックアップデータを含むtarボールを作成します。これにより、バックアップを共有またはアーカイブする簡単な方法を提供します。参考文献 BAR-1180。
tarballからバックアップをインポートするための
barman import-backupコマンドを追加しますtarball形式からバックアップをインポートする新しい
barman import-backupコマンドを導入しました。このコマンドは、サーバー名とtarballパスを引数として取り、以前にエクスポートしたバックアップをBarmanカタログに登録し戻す方法を提供します。参考文献 BAR-1223。
マイナー変更#
GOOGLE_CLOUD_UNIVERSE_DOMAIN環境変数を介して代替GCPユニバースをサポート
Barmanは、
GOOGLE_CLOUD_UNIVERSE_DOMAIN環境変数を読み取ることにより、代替GCPユニバースS3NS / T-Systemsなどをサポートするようになりました。設定すると、値はclient_optionsとしてGCSストレージクライアントに渡され、barman-cloud-*コマンドが非標準のGCPエンドポイントに対して動作できます。この機能は、コミュニティメンバー@mgarsteckiによって寄稿されました。参考文献 BAR-1017。
barman-cloud-wal-restoreでの並列WALリストアのサポートを追加並列処理のサポートが
barman-cloud-wal-restoreコマンドに追加され、ユーザーはWALのリカバリー中に並列してダウンロードするWALの数を指定できます。この機能強化により、複数のWALファイルを同時にプリフェッチすることにより、WAL復元の全体的なパフォーマンスが向上します。詳細については、barman-cloud-wal-restoreのドキュメントを確認してください。参考文献 BAR-1253。
削除前にS3オブジェクトロックをチェックするためのaws_check_object_lock構成オプションを追加
新しい
aws_check_object_lock構成オプションを導入しました。有効にすると、 BarmanはS3ストレージからベースバックアップファイルを削除する前にS3オブジェクトロックをチェックします。オブジェクトがロックされている場合、削除は中止されます。これにより、ロックされたオブジェクトのBarmanの動作がbarman-cloud-deleteに調整されます。 S3ストレージにのみ適用されます。非S3クラウドプロバイダーでこのオプションが有効になっている場合、警告がログに記録されます。参考文献 BAR-1113。
進行中のクラウドバックアップをバックアップカタログで可視化する
進行中のクラウドバックアップが
barman-cloud-backup-listにすぐに表示され、アーカイブステータス列にSTARTEDが表示され、空の終了時間が表示されます。以前は、バックアップは正常に完了した場合にのみ表示されます。barman-cloud-backup-delete、barman-cloud-restore、およびlast/latest/first/oldestショートカットはすべて、それぞれ冗長数、自動復元選択、およびショートカットの解決から除外することにより、進行中のバックアップを安全に扱います。参考文献 BAR-1235。
実行時依存関係としてのsetuptoolsを削除
Barmanのランタイム依存関係としてSetuptoolsは必要ありません。 Setuptoolsは、以前にPython 3.12+互換性の非推奨のdistutilsモジュールを提供するために含まれていましたが、別の実装に置き換えられました。 Setuptoolsは、パッケージ化の目的でビルド時に利用可能なままです。
参考文献 BAR-1170。
オプトイン.partial WALファイルコピーのためのバーマンリストアに-partial-walフラグを追加します
新しい
--partial-walフラグがbarman restore --no-get-walに追加されました。設定すると、 Barmanは.partialWALファイルをリカバリーに含め、.partialサフィックスを削除して、PostgreSQLが再生中にそれらを見つけられるようにします。 2つのソースがサポートされています。ストリーミングWALディレクトリ 復元時に
pg_receivewalによって書き込まれている進行中のセグメント。これを含めると、最後に完了したWALセグメント以降に書き込まれたトランザクションがリカバリ中に利用可能になるため、RPOが削減されます。WALアーカイブ
wals/.partialサフィックスでアーカイブされたセグメント。 スタンバイが昇格し、PostgreSQLが進行中のセグメントでarchive_commandを呼び出したとき。圧縮および暗号化されたファイルは透過的に処理されます。
--get-walを使用する場合、.partialファイルは既に透過的に処理されているため、このフラグは効果がありません。参考文献 BAR-695。
並列WALアーカイブサポートを
barman cloud-wal-archiveに追加しますbarman cloud-wal-archiveは、--parallelフラグと、対応するcloud_wal_archive_parallel構成オプションをサポートするようになりました。これにより、アーカイブ中に追加のWALファイルの日和見的プリフェッチが有効になります。--parallel Nが設定されている場合N > 1、プライマリWALが正常にアーカイブされた後、pg_wal/archive_statusで準備ができている最大N-1個の追加WALファイルが識別され、バックグラウンドワーカープロセスで同時にアップロードされます。これにより、WAL生成が多い期間にWALアーカイブのバックログを大幅に削減できます。 WALファイルが以前の呼び出しによって既にアップロードされている場合、そのWALの後続のarchive_command呼び出しはそれを検出し、0ですぐに終了し、冗長なアップロードを回避します。参考文献 BAR-1101。
バグ修正#
クラウドストレージで更新されないバックアップメタデータを修正する
注この修正は、 Barmanサーバー、つまりバックアップ先としてクラウドストレージを使用する
backup_method = local-to-cloudまたはbackup_method = postgresで構成されたサーバーのクラウド統合を対象としています。これは、barman-cloud-*スクリプトbarman-cloud-backupなどの問題ではありません。バックアップメタデータbackup.infoファイルはクラウドストレージで更新されておらず、これにより、たとえば、クラウドのバックアップのステータスがローカルのものと比較して古くなりました。これは、クラウドからのメタデータが主な情報ソースである可能性がある復元フェーズで問題になる可能性があります。この問題は修正されました。
参考文献 BAR-1227。
使用できない.partial WALファイルをコピーする
barman restore --no-get-walを修正barman restore --no-get-wal、.partialを実行すると、WALアーカイブに存在するWALファイルがリカバリ先にコピーされました。ただし、 Barmanによって生成されたrestore_commandは、.partialサフィックスを考慮していないbarman_walディレクトリのcpを使用します。したがって、これらのファイルは、リカバリ中にPostgreSQLによって使用されることはありません。 Barmanは、デフォルトで.partialファイルをスキップするようになりました。それらを明示的に含めるには、新しい--partial-walフラグを使用します。参考文献 BAR-1265。
PostgreSQL 12+の新しいタイムラインからWALをコピーしない
--no-get-walリストアを修正PostgreSQL 12以降、
recovery_target_timelineのデフォルトがcurrentからlatestに変更されました。--no-get-walモードでPITRオプションたとえば--target-timeを使用して復元する場合、 Barmanはバックアップの元のタイムラインからWALファイルをコピーしているだけでした。これにより、復旧ターゲットが新しいタイムラインにある場合、リストアが失敗する可能性があります。Barmanは、デフォルトのPostgresリカバリ動作と一致する、PostgreSQL 12+でPITRを実行するときに、利用可能な最新までのすべてのタイムラインからWALファイルを正しくコピーするようになりました。
参考文献 BAR-1054。
中間ファイルが削除されないに関する複数の警告を修正する
WAL圧縮を使用する場合、 Barmanは、圧縮プロセス中にアーカイブディレクトリに中間ファイルを作成します。中間ファイルパスはリストに保存され、ファイルアーカイブの最後に削除されます。
ただし、複数のファイルをバッチでアーカイブする場合、各ファイルが処理された後に中間ファイルのリストがクリアされなかったため、後のアーカイブで存在しないファイルを削除しようとし、以下のような警告が発生しました。
WARNING: Could not remove intermediary file /home/gustavo/pg/streaming/0000000100000013000000FD: [Errno 2] No such file or directory: '/home/gustavo/pg/streaming/0000000100000013000000FD'
このバグは、バージョン3.18、コミット5db8ca9bで導入されました。現在は修正され、このような警告は発生しないはずです。
参考文献 BAR-1228、CP-59700。
3.18.02026-03-12#
重要な変更#
クラウドストレージでのインクリメンタル バックアップのサポートを追加します
クラウドストレージでのブロックレベルのインクリメンタルバックアップのサポートが追加され、ユーザーは変更されたデータをアップロードするだけでバックアップストレージを効率的に管理し、コストを削減できます。
この新機能は、ネイティブのPostgresバックアップ
pg_basebackupで取得したBarmanへの、およびBarmanからクラウドストレージへの動的ストリーミングに依存しています。Barmanホストに完全なバックアップを保存することなく、小さなステージング領域のみを使用します。ステージング領域の場所とサイズは、それぞれ新しいcloud_staging_directoryおよびcloud_staging_max_size構成オプションを介して構成できます。この機能を構成するには、
backup_method = postgresとbasebackups_directoryとwals_directoryをクラウドストレージURLs3://my-bucket/barmanなどに設定します。構成例
[myserver] backup_method = postgres basebackups_directory = s3://my-bucket/barman wals_directory = s3://my-bucket/barman cloud_staging_directory = /tmp/barman/cloud-staging cloud_staging_max_size = 30Gi
クラウドストレージのバックアップ構造は、現在のbarman-cloud-/*スクリプトと同じパターンに従います。つまり、バックアップファイルは
tarでアーカイブされ、サーバー名とバックアップID、たとえばmy-bucket/barman/<server_name>/base/<backup_id>/...に基づいて名前付けられたディレクトリの下にあります。一方、WALファイルはサーバーディレクトリの下のwalsサブディレクトリ、つまりmy-bucket/barman/<server_name>/wals/...に保存されます。この意味で、basebackups_directoryおよびwals_directoryは、クラウドストレージのバックアップパスとWALパスのプレフィックスとして機能します。これにより、既存のバックアップ管理実践との互換性が保証されます。重要な注意事項
これは実験的な機能であり、注意すべき制限がいくつかあります。詳細については、ドキュメントを参照してください。
この方法で作成されたバックアップの復元は、現在Barmanでは直接サポートされておらず、これを手動でまたはカスタムスクリプト/プロセスを介して実行するのはユーザーの責任です。このようなバックアップの復元は、将来のリリースで提供される予定です。
これは、バーマンクラウドエクスペリエンスを統合し、クラウドバックアップ操作を簡素化するための最初のステップであり、将来のリリースではより多くの機能と改善が追加されます。
参考文献 BAR-928。
local-to-cloudバックアップ方法をbarmanCLIに追加新しい
local-to-cloudバックアップ方法を追加することにより、メインのbarmanCLIを介した直接クラウドバックアップのサポートを導入しました。以前は、クラウドバックアップは、スタンドアロンのbarman-cloud-*スクリプトを介してのみ利用できました。この機能強化により、
backup_method = local-to-cloudとbasebackups_directorys3://bucket/pathなどのクラウドストレージURLを使用して、バーマン構成ファイルにクラウドバックアップを直接構成できるようになりました。これは、すべてのバックアップ方法に統一インターフェイスを提供し、スタンドアロンのbarman-cloud-*スクリプトを非推奨にするための最初のステップです。新しい
CloudBackupExecutorは、既存のバーマンバックアップインフラストラクチャとシームレスに統合し、低レベルバックアップAPIを使用してPostgreSQLと連携し、バックアップをクラウドオブジェクトストレージに直接アップロードします。構成例
[myserver] backup_method = local-to-cloud basebackups_directory = s3://my-bucket/barman/backups conninfo = host=postgres-host dbname=postgres
これは、バーマンクラウドエクスペリエンスを統合し、クラウドバックアップ操作を簡素化するための最初のステップです。
次の構成オプションは再利用またはBarman構成に追加されて、
barman-cloudスクリプトと機能パリティを提供します。cloud_upload_min_chunk_sizeaws_regionaws_read_timeoutaws_encryptionaws_sse_kms_key_idbandwidth_limitcloud_delete_batch_sizecloud_upload_max_archive_size
参照BAR-1095、BAR-1116、BAR-1122、BAR-1109、BAR-1120、BAR-1121、BAR-1117、BAR-1112、BAR-1115。
ローカルからクラウドへのWALアーカイブ用に`barmancloud-wal-archive'コマンドを追加
'local-to-cloud'バックアップ方法を使用する場合に、PostgreSQL
pg_walディレクトリからクラウドオブジェクトストレージへの直接WALファイルアーカイブを有効にする新しいbarman cloud-wal-archiveコマンドを導入しました。このコマンドは、 BarmanサーバーがPostgreSQLインスタンスと同じホストで実行されている場合、PostgreSQLarchive_commandとして使用するように設計されています。クラウドオブジェクトストレージに送信されるWALファイルは、既存の
compressionおよびcompression_level構成オプションを使用して、アップロードする前に圧縮することもできます。圧縮されたWALファイルは、barman-cloud-wal-archiveで既に使用されている規則に従って、適切なファイル拡張子たとえば.gz、.lz4で保存されます。次のインメモリ圧縮アルゴリズムがサポートされています。
gzip、bzip2、xz、snappy、zstd、およびlz4。pigzおよびcustomは、外部プロセスに依存するため、クラウドWALストレージではサポートされていません。構成例
[myserver] backup_method = local-to-cloud archiver = on wals_directory = s3://my-bucket/barman/wals compression = gzip compression_level = 6
参照元 BAR-1098、BAR-1124
マイナー変更#
S3互換ストレージプロバイダーの
--addressing-styleオプションを追加AWS S3またはS3互換ストレージプロバイダーを使用する場合、barman-cloudコマンドで新しい
--addressing-styleオプションが利用できるようになりました。このオプションを使用すると、ユーザーはS3アドレススタイルを明示的にauto、virtual、またはpathに設定できます。boto3は非S3エンドポイントのパススタイルのアドレス指定を自動的にデフォルトにするため、仮想ホストスタイルのアドレス指定を必要とするS3互換ストレージシステムを使用する場合に役立ちます。PR #1134でこの機能を報告および寄稿していただいた@ChandonPierreに感謝します。
参考文献 BAR-1011
クラウド操作のPython 3.14互換性サポートを追加
クラウドバックアップ操作に影響を与える
functools.partialの重大な変更を修正することにより、Python 3.14のサポートを追加しました。このバージョンでは、functools.partialは、クラス属性として使用されたときに動作を変更するメソッド記述子になりました。この更新により、Python 3.14にアップグレードしてもBarmanクラウド操作がシームレスに動作し続けます。このパッチは、@pvbiesenによるオリジナルのアイデアに基づいています。彼は機能を提案し、PR #1143に貢献しました。同様の修正は、PR #1109で@mjlshenによって提案されました。
参考文献 BAR-1012
圧縮を使用したバックアップのフックとしてbarman-cloud-backupを使用しないようにする
圧縮して取得されたバックアップのフックとしての
barman-cloud-backupの使用は、適切なメッセージでエラーアウトすることにより防止されるようになりました。この変更により、圧縮を含むバックアップが誤ってクラウドバックアップフックで使用されることがなくなります、そのような使用はこれまでサポートされていなかった。
この動作は、警告ノートとともに文書化されています。
参考文献 BAR-1015。
BarmanクラウドのLZ4圧縮サポートを追加
barman-cloud-backupコマンドでのLZ4圧縮のサポートを追加しました。 –lz4オプションを指定して、クラウドストレージにアップロードする前にLZ4圧縮を使用してバックアップファイルを圧縮できるようになりました。このオプションは他の圧縮オプション-gzip、-bzip2、-snappyと相互排他的であり、lz4Pythonライブラリをインストールする必要があります。この機能は、PR #1144で@vietcgiによって提案および実装されました。
参考文献 BAR-1013。
WarehousePGデータベースID構成の実験的なサポート
WarehousePGの実験的なサポートの追加。これには、ユーザーがPostgreSQLバックアップ方法を使用するときにWarehousePGセグメントのデータベースIDを指定できる新しい構成オプション
warehousepg_dbidが含まれます。この構成は、バックアップおよびリストア操作のためにWarehousePGとのより適切な統合を有効にすることを目的としています。archive_timeoutがWarehousePGセグメントのpg_settingsで公開されていないため、Postgresパラメーターの収集も向上しています。参考文献 BAR-1092。
バーマンリカバリー操作のカスタム復元コマンドのサポートを追加します
barman recoverコマンドに新しい--restore-commandオプションを追加しました。これにより、ユーザーはBarmanのデフォルトのrestoreコマンドをカスタムコマンドでオーバーライドできます。 Barmanがビルドしたデフォルトのrestoreコマンドは、ほとんどの場合に適していますが、このオプションを使用すると、セットアップで必要な場合に代替コマンドを指定できます。以前は、ユーザーは復旧後にPostgreSQLリカバリ構成ファイルを手動で編集してrestoreコマンドを変更する必要がありましたが、これはエラーが発生しやすく、追加の手動介入が必要でした。この新しいオプションを使用すると、ユーザーはコマンドラインを介してカスタム復元コマンドを直接指定できるようになりました。
この機能強化は、@PaganMuffinによって#881で報告された問題のために適用されました。
参考文献 BAR-201。
バグ修正#
長時間実行されているWALアーカイブサービスのファイルハンドルリークを修正
WALファイルをクラウドストレージにアップロードした後、ファイルハンドルが適切に閉じられない、クラウドWALアーカイブ機能のリソースリークを修正しました。この問題は、主に、複数のWALファイルを順番に処理する長期実行WALアーカイブサービスに影響を与える可能性があります。開いているファイルハンドルが蓄積すると、最終的に「Too many open files」エラーが発生し、それ以上のWALアーカイブ操作が妨げられる可能性があります。
この修正により、圧縮が使用されるかどうかに関係なく、およびアップロード失敗が発生した場合でも、各アップロード操作が完了した直後にファイルハンドルが適切に閉じられるようになりました。これにより、クラウドプロバイダーへの継続的または高頻度のWALアーカイブを実行するサービスでのハンドルの枯渇を防ぎます。
PR #1129でこの機能に貢献した@ethiebautgeorge-nasuniに感謝します。
参考文献 BAR-973。
3.17.02026-01-07#
重要な変更#
非アクティブ/無効なサーバーでのクエリー、取得、および選択的な操作を有効にする
複数のBarmanコマンドは、安全プロファイルに基づいて、非アクティブで無効になったサーバーで動作するようになりました。
Query commands
list-backups非アクティブ/無効なサーバーからバックアップを表示するstatus非アクティブ/無効になったサーバーのステータスを確認しますshow-backup非アクティブ/無効なサーバーからのバックアップの詳細を表示しますlist-files非アクティブ/無効なサーバー上のバックアップからファイルをリストするverify-backup非アクティブ/無効なサーバーでのバックアップを検証します
Fetch commands
restore非アクティブなサーバーからバックアップを復元するget-wal非アクティブなサーバーからWALファイルを取得します
Modification commands
delete非アクティブなサーバーからバックアップを削除しますconfig-switch非アクティブ/無効なサーバーのスイッチ構成モデル
この変更により、サーバーが手動で無効になっている非アクティブな場合、または構成に問題がある無効な場合でも、ユーザーはバックアップ情報を照会し、復元操作を実行できるため、運用の柔軟性が向上します。無効になったサーバーの異なる動作により、潜在的な構成の競合またはパスの問題があるサーバーでの操作に対する安全性が提供されます。
参考文献 BAR-976。
WALファイルのカスタム圧縮を非推奨にする
custom圧縮オプションとその関連構成オプションcustom_compression_filter、custom_decompression_filter、およびcustom_compression_magicは非推奨であり、将来のリリースでは削除されます。現在カスタム圧縮を使用しているユーザーは、 Barmanがサポートするビルトイン圧縮アルゴリズムのいずれかに移行することをお勧めします。
カスタム圧縮機能は、特定の圧縮要件を持つユーザーに柔軟性を提供するように設計されましたが、任意の外部圧縮ツールとの互換性を維持することは、複雑でエラーが発生しやすいことがわかっています。ビルトイン圧縮オプションは、より良いパフォーマンス、信頼性、および保守性を提供します。
カスタム圧縮を使用する既存の構成は、現在のリリースでも引き続き動作しますが、ユーザーは機能が削除される前に構成の移行を計画する必要があります。
参考文献 BAR-993。
マイナー変更#
ファイル暗号化のチェック時に非UTF8出力を処理する
barman-wal-restoreまたはbarman rebuild-xlogdbを実行してWALを復旧する場合、 Barmanはfileコマンドを実行して、ファイルが暗号化されているかどうかを確認します。macOSシステム公式にサポートされていない場合、このコマンドは、その出力にUTF-8を使用してデコードできないバイトが含まれている場合、
UnicodeDecodeError例外を発生させると報告されています。これを防ぐために、 Barmanはデコード不能なバイトを適切に処理し、プロセスを中断せずに続行できるようになりました。
Github issue #1117
参考文献 BAR-926。
--recovery-option-portをbarman restoreコマンドに追加get-walモードでリモート復元を実行する場合、 Barmanはbarman-wal-restoreを呼び出してWALを取得するrestore_commandを書き込みます。ただし、現在、作成されたbarman-wal-restoreコマンドにカスタムポートを指定する方法はありません。この変更では、
--recovery-option-portフラグがbarman restoreコマンドに導入され、ユーザーはリモートリストア中にbarman-wal-restoreコマンドの--portオプションの値を指定できます。参考文献 BAR-943。
barman-cloudでのバックアップの削除のためのS3オブジェクトロックのサポートを追加します
barman-cloud-backup-deleteは、AWS S3でバックアップを削除する前にオブジェクトロックのチェックをサポートするようになりました。この機能は、コンプライアンスまたはガバナンス保持ポリシーによって保護されたオブジェクトの削除を防止するのに役立ちます。新しい
--check-object-lockオプションが追加され、削除前にオブジェクトロックの検証が有効になります。有効にすると、ベースバックアップのすべてのオブジェクトの削除操作は、これらのオブジェクトのいずれかがロックされている場合に中止されます。パフォーマンス上の理由から、ロックチェックはベースバックアップファイルに対してのみ実行されます。ベースバックアップが削除されると、対応するWALファイルは使用できなくなるためです。この機能は、削除するオブジェクトごとに追加のAPI呼び出しを必要とするため、削除操作にオーバーヘッドが追加されることに注意してください。この機能はAWS S3互換オブジェクトストアでのみ利用でき、正しく機能するには適切な権限が必要です。
参考文献 BAR-946。
バグ修正#
バックアップ削除のための非準拠S3オブジェクトストアのカバレッジを拡大する
この修正では、バックアップ削除の非準拠S3オブジェクトストアのカバレッジを拡大します。
「content-MD5」を含むメッセージを返すエラーコードをキャッチできなかった場合に、返されるメッセージと一致していた式を削減しました。
これにより、バックアップ削除の非準拠のS3オブジェクトストアのほぼすべてがカバーされると考えています
参考文献 BAR-974。
同期していないパッシブノードを修正する
Barman 3.16では、
barman diagnoseコマンドの“config”キーから“name”フィールドが削除されました。パッシブノードを同期するときにも同じ「config」データが使用され、「name」フィールドの欠如が同期に失敗することがわかりました。この変更により、“name”フィールドが“config”キーに追加され、パッシブノードの同期が修正されます。
GitHub issue #1125で報告されました。
参考文献 BAR-971。
デルタリストアが機能しないを修正
デルタリストア機能は、 Barmanが復元を実行する前に宛先ディレクトリを削除している見落としにより、正しく機能していませんでした。この問題は、特定の操作で宛先ディレクトリの削除を回避することにより修正されました。 GitHub issue #1139で報告されました。
参考文献 BAR-1002。
リストア中の「rmexecution failed」エラーを修正する
バージョン3.15のリリース中に実装されたリファクタリングの結果、 Barmanは、バックアップファイルをコピーする前に復元操作の宛先ディレクトリの削除を開始しました。これは、ファイルが常にクリーンなディレクトリにコピーされるようにするためです。
ただし、宛先ディレクトリがマウントポイント、またはユーザーが親に対する十分な権限を持っていないサブディレクトリである場合、ディレクトリの削除は失敗し、「rm実行に失敗しました」のようなエラーが発生します。
この問題は、リストアの最終的な宛先でのPGDATAの宛先ディレクトリとテーブルスペースの削除を回避することにより修正されました。
参考文献 BAR-975。
3.16.22025-11-04#
バグ修正#
barman-cloudの削除回避策を改善して、エラーメッセージのコンテンツを検査する
一部のS3互換ストレージは、削除操作中に「MissingContentMD5」の代わりに「InvalidRequest」エラーを結果ます。エラーコードのみに依存することはできないため、これにより、エラーメッセージテキストも検査してMissingContentMD5のような問題を検出し、適切なフォールバックを適用するようにロジックが更新されます。
参考文献 BAR-947。
3.16.12025-10-14#
重要な変更#
自動バケット作成がbarman-cloud-check-wal-archiveに追加されました
barman-cloud-check-wal-archiveコマンドは、ターゲットバケットが構成済みのクラウドストレージAWS S3に存在するかどうかを確認し、存在しない場合は自動的に作成します。以前は、自動バケットの作成は
barman-cloud-backupによって処理されていました。この変更により、この動作に依存するCloudNativePG CNPGオートメーションとの互換性が復元され、 Barman 3.16.0のリリース後に影響を受けました。CloudNativePGチームと協力して、私たちはこの機能を
barman-cloud-check-wal-archiveに再導入して、CNPGワークフローと内部テストのシームレスなオペレーションを保証しながら、通常のBarmanユーザーが意図した動作と簡単さを維持します。参考文献 BAR-931。
3.16.02025-10-02#
重要な変更#
ローカルリストアの
restore_commandには、sudoが含まれなくなりましたローカル復元に
barman restore --get-walを使用する場合つまり--remote-ssh-commandなしで、生成されたrestore_commandにはsudo -u $USERプレフィックスが含まれません。これにより、ローカルに復元されたPostgresクラスターがbarman restore操作の終了までに既にファイルを所有しているbarmanユーザーによって実行される一般的な場合のプロセスが簡素化されます。Action Required: 復元されたクラスターを別のユーザーたとえば
postgresとして実行する予定がある場合は、適切なsudo -u postgresプレフィックスをリカバリ構成のrestore_commandに手動で追加し、ファイルの所有権が正しいことを確認する必要があります。参考文献 BAR-675。
pygzipおよびpybzip2圧縮オプションを非推奨にしますpygzipおよびpybzip2圧縮オプションは非推奨であり、将来のリリースでは削除される予定です。ユーザーはgzipおよびbzip2オプションに移行する必要があります。これらはPythonの内部ライブラリを使用するようになりました。この変更は、パフォーマンスとコードの一貫性を向上させるために行われました。以前は、
gzipおよびbzip2オプションは外部サブプロセスに依存していましたが、対応するpyはネイティブPythonライブラリを使用していました。gzipおよびbzip2のコア圧縮ロジックは、Pythonのビルトインライブラリを使用するように更新され、pygzipおよびpybzip2オプションが冗長になっています。参考文献 BAR-878。
delta-restoreフラグとリカバリオプションをバーマンリストアに追加
barmanリストアの-delta-restoreフラグを導入し、デルタリストアモードを有効にします。このモードでは、宛先ディレクトリに既に存在する同一のデータを再利用してバックアップを復元します。これにより、復元時間とネットワークトラフィックが大幅に削減されます。
この機能は、サーバー構成ファイルのdelta-restoreと呼ばれる新しいフィールドとしての`recovery_options'を介してサーバーごとに構成することもできます。
参考文献 BAR-788。
boto3 >=1.36に準拠していないオブジェクトストアのS3オブジェクト削除フォールバック
一部の非準拠のS3互換オブジェクトストアで
delete_objects()を使用する場合、ユーザーはMissingContentMD5ClientErrorが発生する可能性があります。boto3 1.36の破壊的変更により、BotocoreがContent-MD5ヘッダーを自動的に計算および設定しなくなりました。これに対処するために、 Barmanはフォールバックメカニズムを実装するようになりました。
delete_objects()を介した一括削除は、引き続き最初に試行されます。delete_objects()がMissingContentMD5で失敗した場合、 Barmanは自動的にフォールバックし、Content-MD5ヘッダーを必要としないdelete_object()を使用してオブジェクトを個別に削除します。他のエラーは、以前と同様に例外を発生させます。
この変更により、 Barmanは、ユーザー側で変更を必要とせずに非準拠オブジェクトストアとの互換性を維持できます。
古いS3互換ストレージを使用するユーザーは、障害なしでバックアップクリーンアップの実行を継続できますが、新しいオブジェクトストアは影響を受けません。
参考文献 BAR-909。
クラウド接続チェックは、
-t/--testフラグを使用してのみ実行されます。以前は、 Barmanはほとんどのコマンドでクラウド接続とバケットの存在を常にテストし、接続に失敗した場合、またはバケットが存在しない場合にエラーを生成しました。
-t/--testフラグが指定された場合にのみ、両方のチェックが実行されるようになりました。唯一の例外はbarman-cloud-check-wal-archiveでしたが、これは引き続き接続とバケットの存在をチェックします。さらに、バケットは自動的に作成されなくなりました。Barmanは、ターゲットバケットが既に存在することを想定しているため、ユーザーの責任で事前にバケットをプロビジョニングします。
リファレンス BAR-895、BAR-908、BAR-918。
マイナー変更#
barman restoreコマンドにcombine-modeオプションを追加--combine-modeオプションをbarman restoreコマンドに追加しました。これは、リストア中にインクリメンタルバックアップを組み合わせるときにpg_combinebackupのコピーモードを指定するために使用できます。使用可能なモードはcopy、link、clone、およびcopy-file-rangeであり、それぞれpg_combinebackupオプション--copy、--link、--clone、および--copy-file-rangeと同等です。同等のcombine_mode構成オプションは、構成ファイルで指定できます。この機能により、基になるファイルシステム機能に基づいて、復元プロセスのより大きな最適化が可能になります。
参考文献 BAR-870。
バーマン診断JSONのフィールドを再編成する
バーマン診断JSONでは、実際の構成フィールドではない場合でも、サーバーの「config」セクションの下にいくつかのフィールドが表示されます。
フィールド“barman_lock_directory”、“lock_directory_cleanup”、および“config_changes_queue”は、グローバル構成を表すため、“global”キーの下に再配置されました。サーバー名が既にキーとして使用されているため、“name”フィールドが削除されました。さらに、“msg_list”がサーバーの名前キーの下に保存されるようになりました。
参考文献 BAR-134。
--get-walがTrueの場合、barman-wal-restoreコマンドに`-p JOBS'を追加します--get-walまたはget_wal構成オプションがTrueであり、JOBSが-pフラグまたはparallel_jobs構成オプションを介してユーザーが選択したジョブの数である場合、barman-wal-restoreコマンドに`-p JOBS'を追加します。参考文献 BAR-857。
/barman show-backup/`コマンドは、バックアップの圧縮方法を表示するようになりました
barman show-backupコマンドの出力が強化され、新しいBackup Compressionフィールドが含まれます。圧縮を有効にしてバックアップが取得された場合、このフィールドには、使用された圧縮アルゴリズムzstdなどが表示されます。これにより、バックアップの圧縮ステータスをすばやく確認することが簡単になります。参考文献 BAR-901。
バグ修正#
barman-wal-restoreの並列処理を修正します –Parallelオプション
Barman 3.12.0で
--keep-compressionオプションを導入したときにbarman-wal-restoreにリグレッションがあり、--parallelオプションが予想通りにプロセスを呼び出しません。この問題は修正されました。参考文献 BAR-865。
staging_locationがremoteの場合、PATHでpg_combinebackupが見つからない問題を修正staging_locationがremoteに設定されているリモートサーバーにインクリメンタルバックアップをリカバリーする場合、 BarmanはリモートPATHでpg_combinebackupが利用できるかどうかを確認します。ただし、以前の問題により、ローカルのPATHも誤ってチェックされ、pg_combinebackupがローカルにインストールされていない場合にエラーが発生しました。この問題は、pg_combinebackupが実際に実行されるサーバーでのみチェックが実行されるようにすることにより修正されました。参考文献 BAR-903。
3.15.02025-08-05#
重要な変更#
圧縮と暗号化を使用してインクリメンタル バックアップを取得できます
以前は、 Barmanは、圧縮が有効になっている場合、または親バックアップが既に圧縮されている場合、インクリメンタルバックアップが実行されないようにしていました。 Barmanでの暗号化には圧縮が必要であるため、これは、暗号化では増分バックアップを取得できないことを意味しました。
この制限は、このようなバックアップの復元の複雑さのために存在し、復号化、解凍、およびバックアップの組み合わせのための複数のステージングフェーズが関係します。
重要なリファクタリングの努力の後、 Barmanは、圧縮および/または暗号化の両方を使用したインクリメンタルバックアップの取得を完全にサポートするようになりました。これにより、より柔軟なバックアップ戦略が可能になり、ユーザーは使用可能なすべての機能を制限なく利用できます。
リファレンス BAR-764、BAR-801、BAR-841。
local_staging_pathおよびrecovery_staging_path構成オプションの非推奨local_staging_pathおよびrecovery_staging_path構成オプションは非推奨であり、新しいstaging_pathおよびstaging_locationオプションを優先します。古いオプションは下位互換性のために引き続き機能しますが、ユーザーはより良い明確さと柔軟性を得るために新しい構成オプションに移行することをお勧めします。リファレンス BAR-571、BAR-801。
ステージング領域構成の柔軟性と一貫性の向上
圧縮、暗号化、またはインクリメンタルバックアップを復元するときは、 Barmanは、解凍または復号化されたファイルなどの中間ファイル、または結合されたインクリメンタルバックアップデータを処理するためのステージング領域が必要です。
以前は、 Barmanには、シナリオごとに異なる構成オプションがありました。
インクリメンタル バックアップの場合、ステージング領域はBarman構成の
local_staging_pathを介して指定されました。これは、 Barmanホスト内のパスのみです。圧縮バックアップの場合、ステージング領域は
recovery_staging_pathを介して指定されました。これは、 Barmanホスト内のパスローカルリカバリの場合またはターゲットサーバー内のパス別のサーバーへのリモートリカバリの場合。暗号化されたバックアップの場合、ステージング領域はBarman構成の
local_staging_pathを介して指定されました。これは、 Barmanホスト内のパスのみです。暗号化には圧縮を有効にする必要があるため、暗号化されたバックアップを復元するとき、ユーザーはrecovery_staging_pathとlocal_staging_pathの両方を指定する必要があることに注意してください。
Barmanは、単一の統合されたより柔軟なステージングエリア構成を提供するようになりました。
新しい
staging_path構成オプションを使用して、中間ファイルが保存されるステージング領域の絶対パスを指定できます。デフォルト値は/tmpです。新しい
staging_location構成オプションを使用して、ステージング領域がBarmanホストlocal上にあるか、リモートサーバーremote上にあるかを指定できます。デフォルト値はlocalです。
これは、ステージングパスの統合された構成を持つことに加えて、ユーザーがBarmanホストまたはリモートPostgresサーバーのいずれかにステージング領域を配置する場所をより柔軟に指定できることを意味します。
ストレージの使用量も最適化されて、可能な限りリソースの消費量が削減されます。これには以下が含まれます
中間ファイルが必要でなくなったらすぐに削除します。
必要以外の場合、ステージング領域の使用を避けてください。 圧縮されたバックアップをローカルに復元する場合、ステージングは必要なく、バックアップは最終的な宛先に直接解凍されます。
この変更により、構成が簡素化され、一貫性とリソースの使用率が向上し、エンドユーザーにとって復旧管理がより透明で予測可能になります。
リファレンス BAR-764、BAR-765、BAR-801、BAR-841。
マイナー変更#
--staging-pathおよび--staging-locationをbarman restoreに追加--staging-pathおよび--staging-locationオプションをbarman restoreコマンドに追加して、ユーザーがリストアプロセス中にステージング領域のカスタムパスを指定できるようにします。--staging-pathは、--staging-locationがその場所、つまりlocalまたはremoteを定義するときに使用される絶対パスです。barman.confには、それぞれstaging_pathおよびstaging_locationとして同等の構成オプションがあります。参考文献 BAR-570。
オプション
--if-not-existsをbarman receive-wal --create-slotに追加新しい
--if-not-existsフラグがbarman receive-wal --create-slotコマンドに追加されました。これにより、既に作成されたレプリケーションスロットを作成しようとしたときにコマンドが失敗するのが防止され、スクリプトでの使用の信頼性が向上します。PRを作成し、 Barmanに貢献してくださった@crazybolillo antonio@zoftko.com別名@antonag32に感謝します。
参考文献 BAR-527。
バックアップメタデータで予期しないフィールドが見つかった場合、正常に失敗します。
この更新では、 Barmanが現在のバージョンで不明なフィールドを含むバックアップメタデータを処理する方法を改善します。この状況は、 Barmanの新しいバージョンで作成されたバックアップを古いバージョンを使用して復元しようとしているときに発生する可能性があります。たとえば、新しいバージョンが暗号化に関するメタデータを追加し、古いバージョンがそのフィールドを認識しない場合。これは、この変更が関連する場合です。
以前は、これにより役に立たない例外が発生していました。ここで、 Barmanは、バックアップが新しいバージョンで作成され、現在のバージョンと互換性がない可能性を説明する明確なメッセージを表示します。
参考文献 BAR-763。
適切なクリーンアップのための孤立したバックアップの警告を改善しました
孤立したバックアップの警告メッセージが改善され、ユーザーが不完全または手動で削除されたバックアップを完全にクリーンアップしやすくなりました。以前は、メッセージに
backup.infoファイルの場所が記載されておらず、混乱を招いていました。更新されたメッセージは、backup.infoファイルの場所を明確に示し、ユーザーが適切に削除できるようになりました。参考文献 BAR-793。
クラウドコマンドのタグ処理を改善して解析エラーを修正
barman-cloud-backupおよびbarman-cloud-wal-archiveの--tagsコマンドラインオプションは、解析の信頼性を向上させ、標準のCLI実践と調整するために置き換えられました。以前のスペース区切り形式では、特に位置引数の前に配置された場合、解析エラーが発生する可能性がありました。コマンドは、複数の
--tagフラグを、キーと値のペアごとに1つずつ受け入れるようになりました。Before:
barman-cloud-backup ... --tags key1,val1 key2,val2After:
barman-cloud-backup ... --tag key1,val1 --tag key2,val2--tagsオプションは非推奨になりました。古い--tags形式を使用する既存のスクリプトは引き続き動作しますが、ユーザーはスクリプトを新しい形式に更新することをお勧めします。この変更には下位互換性があり、重大な変更は導入されません。参考文献 BAR-441。
barman show-backup出力の
WAL Numberラベルを明確にbarman show-backup出力の誤解を招くWAL Numberラベルの名前をNumber of WALsに変更します。参考文献 BAR-791。
show-backupコマンドの「No of files」を「Number of files」に変更します
show-backupコマンドのWal Informationセクションでは、“No of files”の出力が“Number of files”に変更されました。
参考文献 BAR-798。
config-updateを介してサーバーとモデルに渡されたオプションを検証するbarman config-updateコマンドは、変更をエンキューする前に、提供された各セクションで追加の検証を実行するようになりました。とりわけ、すべての必須フィールドが存在すること、提供された値が予想される型に準拠していること、および各値がそれぞれのパーサーも渡すことを検証します。さらに、チェックが失敗した場合にコマンドはエラーになるようになりました。これにより、部分的または不正な形式の更新が適用されるのを防ぎます。参考文献 BAR-142。
barman checkおよびbarman backupコマンドに--check-timeout引数を追加barman checkおよびbarman backupコマンドに新しいCLIオプションが導入され、チェックオペレーションの時間が設定されたcheck_timeoutを超え、バックアップがスケジュールされない状況に対処します。このオプションを使用すると、ユーザーはタイムアウトを無効にするか、デフォルトまたは構成済みのcheck_timeout値をオーバーライドできます。参考文献 BAR-219。
--list-empty-directoriesをbarman list-filesコマンドに追加新しい
--list-empty-directories引数をlist-filesコマンドに追加して、空のディレクトリをリストに追加します。参考文献 BAR-220。
自動WALスイッチとアーカイブによるアーカイブチェックの向上
ユーザーエクスペリエンス、特にサーバーの初期構成中のユーザーエクスペリエンスを向上させるために、
barman checkコマンドがより堅牢になりました。以前は、WALアーカイブが空の場合、チェックは失敗し、手動介入が必要でした。
Barmanは、最初にBarmanサーバーに存在する既存のWALをアーカイブしようとすることにより、これをインテリジェントに処理するようになりました。存在しない場合、PostgresサーバーのWALスイッチを自動的にトリガーし、結果のファイルをアーカイブしようとします。この機能強化により、一般的な手動手順が自動化され、すぐに使える初期ヘルスチェックの信頼性が向上します。
参考文献 BAR-718。
BarmanクラウドスクリプトでバックアップIDとしてショートカットをサポート
Barmanクラウドコマンドでバックアップを参照するときに、ショートカット
first/oldest、last/latestおよびlast-failedを指定できるようになりました。 Barmanは、これらのショートカットを自動的に解析し、関連するバックアップIDを返すようになりました。参考文献 BAR-717。
バグ修正#
バックアップ中に一時テーブルのデータファイルを無視する
一時関係ファイルのパターンと一致するファイルは、
pg_basebackupによって暗黙的に実行される除外と同様に、rsyncバックアップ中に無視されるようになりました。これは、rsyncが既に削除された一時ファイルをコピーしようとする場合があり、手動でブロックが解除されるまでBarmanをハングアップする可能性があるため、多くの一時テーブルを作成およびドロップするPostgresインスタンスに対してrsyncコンカレントモードでBarmanを実行する際のエラーを回避するために必要です。参考文献 BAR-266。
pg_combinebackupが見つからない場合のエラーメッセージを改善以前は、インクリメンタルバックアップを復元し、PATHで
pg_combinebackupが利用できない場合、 Barmanは例外を適切に処理せず、エラーを理解して修正することが困難でした。現在、適切な例外が発生し、ターゲットサーバーでpg_combinebackupが見つからなかったことを示す明確なメッセージが表示されます。参考文献 BAR-840。
ターゲットデータまたはテーブルスペースディレクトリが空でない場合、リストアは失敗します。
以前、 Barmanは、復元する前にテーブルスペースの宛先ディレクトリが空かどうかを検証しなかったため、コンテンツがサイレントに上書きされ、データの損失または破損が発生する可能性がありました。ここで、復元プロセスは、続行する前に、データとテーブルスペースを含むすべての宛先ディレクトリが空であることを確認します。そうでないものがある場合、 Barmanはオペレーションを停止し、適切なエラーメッセージを表示し、ローカルとリモートの両方の復元の安全性とデータの完全性を大幅に向上させます。
参考文献 BAR-787。
孤立した古いバックアップを削除する際のエラーを修正する
バックアップが孤立していて古い場合、保持ポリシーの適用が失敗する場合がある問題を解決しました。 Barmanは、ベースバックアップディレクトリを削除しようとする前に、ベースバックアップディレクトリが存在することを確認し、ディレクトリが既に削除されている場合のエラーを防止するようになりました。
参考文献 BAR-794。
PG17境界LSNの正しいWALセグメントの名前付けを確認します
barmanバックアップ
<server>を使用する場合にPostgreSQL 17以降のバージョンで発生したバックアップのハング問題を修正し、低アクティビティのインスタンスで待機し、 pg_walfile_name()およびpg_walfile_name_offset()と対話するメソッドとプロパティ内のロジックを変更します。barman#1041で説明しているように、PostgreSQL 17では、バックアップの終了WALが、最後に完了したWALファイルではなく、現在書き込まれているWALファイルになりました。アクティビティが最小限のサーバーでは、この現在のWALファイルはすぐに完了またはアーカイブされない場合があり、 pg_switch_wal()が発生するまでバックアッププロセスが無期限に停止する場合があります。
PostgreSQLの変更の詳細については、
https://www.postgresql.org/docs/release/17.0/を参照してください。参考文献 BAR-519。
スナップショットバックアップがAWSのNitroインスタンスの非ルートEBSボリュームをサポートするようになりました
スナップショットバックアップがAWSのNVMeNitroデバイスの非ルートEBSボリュームを検出できなかった問題を解決しました。スナップショットバックアップは、インスタンスに接続されているすべての非ルートEBSボリュームで確実に動作するようになりました。
リファレンス BAR-500
3.14.12025-06-18#
バグ修正#
WALアーカイブのパフォーマンス問題を修正する
Barman WALアーカイブプロセスは、現在の実行でアーカイブされないWALファイルの処理が原因でパフォーマンスの低下が発生していました。また、3.14で導入された暗号化ロジックにも誤りがあり、 BarmanはサーバーにストリーミングされるWALファイルの暗号化をチェックしました。ストリーミングされたWALはGPG暗号化も圧縮もされないため、これは不要です。両方の問題が修正されると、アーカイブプロセスが大幅に高速化され、リソース効率が向上します。
問題1087の詳細な分析をしていただいた@thealex55に感謝します。
参考文献 BAR-775。
3.14.02025-05-15#
重要な変更#
tarバックアップとWALファイルのGPG暗号化の実装
tarバックアップのGPG暗号化を実装します。暗号化はバックアップの最後に開始され、PGDATAのバックアップとバックアップディレクトリに存在するテーブルスペースが暗号化されます。暗号化されたバックアップファイルには、
.gpg拡張子が追加されます。Barmanは、新しい
encryption_passphrase_command構成オプションで取得したパスフレーズを使用して、GPG暗号化されたバックアップの復号化と復元をサポートしています。復元プロセス中に、復号化されたファイルはBarmanホストのlocal_staging_path設定でステージングされ、信頼性の高い安全な復元プロセスが保証されます。バックアップとWALファイルの暗号化と復号化に必要な新しい構成オプションを追加する必要があります。新しいオプションは
encryption、encryption_key_id、およびencryption_passphrase_commandです。encryption = gpgの場合、WALファイルはすべてGPGで暗号化されます。これには、xlogdbレコードの読み取りおよび書き込み方法の変更下位互換性の維持、およびファイルが暗号化されるタイミングと暗号化プロセス自分自身を検出する新しいロジックが含まれます。barman listコマンドのget-walおよびno-get-walフラグを使用する場合、復元プロセス中のGPG暗号化WALファイルの復号化。これにより、
encryption_passphrase_command構成オプションを介してバックアップを復号するために追加された機能が拡張されます。show-backupには、バックアップが暗号化されたかどうかを公開する新しいフィールドがあり、使用された暗号化方法がある場合は指定します。barman checkコマンドは、ユーザーの暗号化設定がBarmanサーバーで正しく構成され、予想通りに機能しているかどうかを確認します。参照BAR-683、BAR-687、BAR-693、BAR-669、BAR-671、BAR-692、BAR-685、BAR-680、BAR-670、BAR-681、BAR-702。
Pythonバージョン3.6および3.7の非推奨
Barmanのバージョン3.14の時点で、Python 3.6および3.7のサポートを非推奨にします。これらはPythonコミュニティでサポートされていません。 Barmanは、必要なすべてのモジュールが含まれているRHEL 8システムで利用可能な最新バージョンであるPython 3.8を引き続きサポートしています。
参考文献 BAR-737。
マイナー変更#
BarmanサーバーでWAL圧縮の圧縮レベルを指定できるようにします
新しい
compression_levelパラメーターをBarman構成に追加します。このオプションは、有効な整数値または事前定義されたオプションのいずれかlow、medium、およびhighを受け入れます。各オプションは、選択した圧縮アルゴリズムに応じて異なるレベルに対応します。参考文献 BAR-540。
クライアントサイドの圧縮を
barman-wal-archiveに追加するクライアントサイドの圧縮オプションが
barman-wal-archiveに追加され、 Barmanサーバーで使用可能なものと同じアルゴリズムをサポートしています。有効にすると、圧縮はWALをBarmanサーバーに送信する前にクライアント側で適用されます。--compression-levelパラメーターを使用すると、選択したアルゴリズムに目的の圧縮レベルを指定できます。参考文献 BAR-262。
–compression-levelパラメーターをbarman-cloud-wal-archiveに追加します
compression-levelと呼ばれるパラメーターがbarman-cloud-wal-archiveに追加されました。これにより、使用中の圧縮アルゴリズムのレベルを指定できます。参考文献 BAR-557。
Snappy圧縮アルゴリズムをBarmanサーバーに追加する
Snappy圧縮は、以前は
barman-cloud-wal-archiveでのみ使用できましたが、標準のBarmanサーバーでも使用できるようになりました。他のすべてのアルゴリズムと同様に、compression構成パラメーターでsnappyを設定することにより構成できます。参考文献 BAR-557。
サーバープロセスをリストするための新しい
list-processesサブコマンドの紹介Barmanサーバーのすべてのアクティブなサブプロセスを出力する新しい
list-processesコマンドを追加します。このコマンドは、各プロセスのPIDとタスクを表示します。参考文献 BAR-664。
Barmanサブプロセスを終了するための新しい
terminate-processサブコマンドの紹介新しい
terminate-processコマンドを追加して、ユーザーはタスク名を指定して、特定のサーバーのアクティブなBarmanサブプロセスを終了できます。 Barmanは、指定されたサーバーに属し、現在アクティブである限り、サブプロセスを終了します。参考文献 BAR-665。
クラウドスクリプトで使用されるboto3バージョンからピンを削除します
boto3 > = 1.36の問題を徹底的に調査した後、バージョン1.35で依存関係を維持したピンを削除することにしました。
AWSとMinIOオブジェクトストアは両方とも最新バージョンで正常に動作し、boto3のバージョン> = 1.36を使用すると、 BarmanクラウドスクリプトがFIPS準拠の環境で動作します。
参考文献 BAR-637。
バグ修正#
最小限の冗長性チェックでは「非インクリメンタル バックアップ」のみを考慮するようにしてください
冗長数にインクリメンタル バックアップが含まれるため、
minimum_redundancyルールに違反する可能性がある問題が報告されました。例として、カタログに1つの完全バックアップと2つの依存増分バックアップが含まれ、ユーザーがminimum_redundancy = 2であったシナリオでは、ルールは誤って満たされたと考えられました。その結果、完全なバックアップを削除すると、そのインクリメンタルな依存関係のカスケード削除がトリガーされ、カタログにはバックアップがありません。この問題は、非インクリメンタルバックアップのみつまりフル、rsync、スナップショットのみを考慮するように
minimum_redundancyロジックを更新することにより修正されました。これにより、構成された最小の冗長レベルに違反する場合、完全なバックアップを削除できません。参考文献 BAR-707。
gzip、bzip2、およびpigz圧縮アルゴリズムを使用して、--keep-compressionでのbarman-wal-restoreの使用を修正します--keep-compressionを指定しているときにgzip、bzip2またはpigzで圧縮されたWALを復元しようとすると、予期しないエラーが発生するbarman-wal-restoreの問題を修正します。参考文献 BAR-722。
3.13.32025-04-24#
バグ修正#
ブロックレベルのインクリメンタルバックアップのローカルリストアを修正する
ブロックレベルのインクリメンタルバックアップのローカル復元を実行すると、 Barmanは次のようなエラーに直面していました。
ERROR: Destination directory '/home/vagrant/restore/internal_no_get_wal' must be empty
そのエラーは、オプション
--staging-wals-directoryがバージョン3.13.0で導入されたときの回帰によって発生しました。それとともに、続行する前にWAL宛先ディレクトリが空であることを確認する新しいチェックが付属しました。ただし、ブロックレベルのインクリメンタルバックアップをローカルに復元する場合、 Barmanはこのチェックを実行する前にWAL宛先ディレクトリを設定していたため、上記のエラーがトリガーされました。参考文献 BAR-655。
barman-cloud-backupをフックとして実行する場合の回帰を修正Barman 3.13.2は、WORM環境の問題を修正するために提供された作業の一部として、
backup.infoメタデータファイルの場所を変更しました。ただし、これらの変更は、 Barmanサーバーでバックアップフックとして
barman-cloud-backupを使用する場合に回帰を導入しました。フックは、メタデータファイルの新しい場所を認識しませんでした。この更新ではその問題が修正されるため、
barman-cloud-backupは新しいフォルダー構造を認識し、backup.infoファイルを適切に見つけて、実行時障害を回避します。参考文献 BAR-696。
カスタム圧縮が構成されている場合、部分的なWALファイルの解凍を回避する
カスタム圧縮が構成されているときにBarmanが部分的なWALファイルを解凍しようとした問題を修正しました。部分的なWALファイルは圧縮されないため、
barman-wal-restoreまたはbarman get-walで--partialフラグを使用すると、それらを解凍しようとするとエラーが発生します。参考文献 BAR-697。
barman-cloud-backupが一時パーツファイルをリサイクルしないを修正したこれにより、一時パーツファイルがクラウドにアップロードされた後に削除されず、ディスク領域の枯渇につながる
barman-cloud-backup問題が修正されます。この問題は、Python > = 3.12を使用している場合にのみ発生し、名前付け一時ファイルオブジェクトのdelete属性を削除するPythonの変更によるものでした。内部チェックを実行するときにBarmanが依存していました。参考文献 BAR-674。
WORM環境でのバックアップアノテーションの使用を修正
Barmanは、以前に
barman keepやbarman deleteのような操作を追跡するために使用されるバックアップアノテーションファイルをバックアップディレクトリ自分自身内に保存していました。これらの注釈は、バックアップを保持するか、削除用にマークを付けるかを決定するのに役立ちます。ただし、WORM環境では、バックアップディレクトリ内のファイルは、特定の期間が経過すると変更または削除できないため、バックアップ状態の管理に問題が発生しました。この修正では、アノテーションファイルを専用のメタデータディレクトリに再配置して、このような操作がWORM環境で正しく機能することを保証します。参考文献 BAR-663。
3.13.22025-03-27#
マイナー変更#
不変ストレージを使用する際のエラーを修正する
新しい
worm_mode構成を追加して、 BarmanでのWrite Once ReadManyの処理を有効にし、不変ストレージへのバックアップをサポートできるようにします。この修正では、backup.infoファイルの自動再配置も提供します
backup_directory内の新しいディレクトリmeta。これにより、 Barmanは将来必要に応じて更新できます。Barmanは、最初のバックアップを実行するときに必要とされないWALファイルのwalsディレクトリをパージしません。これにより、この最初のバックアップが時代遅れで削除されたときに再利用される追加の領域が追加されますその時までに、バックアップとWALは保持ポリシーウィンドウの範囲外になります。
バックアップ用の不変ストレージで実行する場合の制限を説明する追加ノートをドキュメントに追加しました。特に、ファイルの不変性における猶予期間の必要性と、
barman keepがこれらの環境ではサポートされていないという事実。参照BAR-649、BAR-645、BAR-650、BAR-651、BAR-652。
3.13.12025-03-20#
マイナー変更#
バックアップショートカットの動作を改善します
last-full/latest-fullショートカット
last-full/latest-fullは、サーバーの最後の完全なバックアップではなく、インクリメンタルバックアップの親としての資格のあるサーバーの最後の完全なバックアップを取得していました。これは予想された動作ですが、コミュニティからのフィードバックでは、ユーザーが混乱していることが示されています。
今後、ショートカット
last-full/latest-fullは、そのバックアップがインクリメンタルバックアップの親として適格であるかどうかにかかわらず、 Barmanサーバーの最後の完全なバックアップを取得します。インクリメンタルバックアップの親としてのフルバックアップの適格性は、後の手順でBarmanによって検証され、親として適合しない場合には、適切なメッセージが表示されます。
参考文献 BAR-555。
バグ修正#
barman restoreの無効な--target-timeを解析する際のエラーメッセージを修正barman restoreコマンドを使用する場合、無効な--target-time文字列を解析したときのエラーメッセージは次のとおりです。EXCEPTION: local variable 'parsed_target' referenced before assignment
その例外は、理解可能なエラーメッセージに置き換えられました。
参考文献 BAR-627。
クラウド復元コマンドの相互排他的な引数を修正する
barman-cloud-restoreコマンドでは、target_tliおよびtarget_lsnが相互排他的な引数であることを確認していました。ここで、チェックする正しいペアはtarget_timeおよびtarget_lsnになります。参考文献 BAR-624。
custom_decompression_filterを尊重しないBarmanを修正指定された圧縮アルゴリズムがBarmanによってネイティブにサポートされている場合、 Barmanが設定された
custom_decompression_filterを尊重しない問題を修正しました。 WALファイルを解凍するときに、カスタムフィルタがネイティブハンドラーより優先されるようになりました。参考文献 BAR-584。
–no-get-walおよび-standbyを使用してバーマンの復元を修正する
--no-get-walと--standby-modeが一緒に指定されている場合、リカバリー中にBarmanがpg_walディレクトリを削除していた問題を修正しました。この問題は、 Barmanがrecovery_end_commandを含むpg_walを参照するリカバリパラメーターを誤って入力したために発生し、この問題が発生しました。 Barmanは、この特定のケースに必要ないため、このようなパラメーターの入力を無視します。リファレンス BAR-630。
barman restoreおよびbarman-cloud-restoreの引数解析の問題を修正Barman 3.13.0では、回帰が導入され、
barman restoreおよびbarman-cloud-restoreコマンドを使用するとエラーが発生しました。具体的には、そのバージョンでオプショナルになったbackup_id位置引数は他の引数と競合し、認識されない引数とエラーを発生させました。例、次のように
barman-cloud-restoreを実行します。barman-cloud-restore source_url server_name backup_id --cloud-provider aws-s3 recovery_dir
次のようなエラーがトリガーされます。
barman-cloud-restore: error: unrecognized arguments: recovery_dir
この修正では、
backup_idを再度必須引数にすることにより問題を解決します。さらに、新しい“auto”値がbackup_idとして受け入れられるようになったため、 Barmanは特定のbackup_idを必要とせずに、復元に最適なバックアップを自動的に選択できます。この更新では、引数処理を修正しましたが、ユーザーはスムーズで柔軟な復元プロセスを可能にします。参考文献 BAR-596。
3.13.02025-02-20#
重要な変更#
新しいxlogdb_directory構成を追加します
新しい
xlogdb_directory構成オプションを導入します。このパラメーターは、グローバルまたはサーバーごとに設定でき、xlog.dbファイルのカスタムディレクトリを指定できます。このファイルには、アーカイブされたWALファイルのメタデータが保存され、さまざまなシナリオでBarmanによって内部的に使用されます。設定されていない場合、デフォルトのwals_directoryの値が使用されます。さらに、ファイルの名前も変更されて、サーバー名が接頭辞として含まれます。参考文献 BAR-483。
バックアップを復元するときに“backup_id”をオプショナルにする
歴史的に、 Barmanはバックアップを復元するには常に「backup_id」を必要とし、そのバックアップを復元のソースとして使用していました。
この機能により、リストアのソースとして使用するバックアップを指定する必要がなくなり、オプショナルになります。
この変更は、 Barmanとbarman-cloudスクリプトの両方に適用されます。
これで、ユーザーは次の方法でバックアップを復元できるようになりました。
“backup_id”を提供します
“backup_id”は指定しないでください。最新のバックアップを取得します
“backup_id”は提供しませんが、次のようなリカバリターゲットを提供します。- “target_time” target_lsnと相互排他的 “target_time”の前に最も近いバックアップを取得します。 “target_lsn”-“target_tli”“target_time”または“target_lsn”と組み合わせて使用する前に、最も近いバックアップを取得します。タイムラインと一致する最新のバックアップを取得します。他の復旧ターゲットと組み合わせる場合、タイムラインと一致するtarget_timeまたはtarget_lsnの前に最新のバックアップを取得します
リカバリターゲット
--target-xid、--target-nameおよび--target-immediateはサポートされておらず、使用するとメッセージでエラーアウトします。この機能は、postgresクラスターを復元する際の柔軟性と簡単さを提供します。
リファレンス BAR-541、BAR-473。
マイナー変更#
現在アクティブなモデルを
barman show-serverおよびbarman statusに追加します以前は、構成モデルを適用した後、サーバーで現在アクティブなモデルを確認する唯一の方法は、
barman diagnoseコマンドを使用することでした。この更新により、barman statusおよびbarman show-serverコマンドは、サーバーの現在アクティブな構成モデルがある場合はそれも表示するようになりました。リファレンス BAR-524、BAR-400。
--staging-wal-directoryオプションをbarman restoreコマンドに追加して、PITRの代替WALディレクトリを許可します新しいコマンドラインオプション
--staging-wal-directoryがrestore/recoverコマンドに追加され、PITRの実行時にWALファイルの代替の宛先ディレクトリを使用できます。以前は、WALファイルは復元先ディレクトリ内のbarman_walディレクトリにコピーされていました。この機能強化により、リカバリ中にWALを別のパーティションに保存するなど、柔軟性が向上します。参考文献 BAR-224。
boto3バージョンを任意のバージョン<= 1.35.99に固定します
Boto3バージョン1.36は、S3の完全性をチェックする方法を変更したため、このバージョンは現在のBarmanコードと互換性がなく、次のエラーが生成されます。
PutObjectオペレーションを呼び出すときにエラーMissingContentLengthが発生しました
一時的な回避策として、 boto3のバージョンは、 Barmanで1.36のサポートが実装されるまで、バージョン<= 1.35.99に固定されます。
参考文献 BAR-535。
重複したWALファイルを処理する際にbarman-wal-archiveをよりスマートに
一部の特殊なケースでは、Postgresは同じWALを2回アーカイブしようとする場合があります。例えば
barman-wal-archiveはWALファイルをBarmanホストにコピーしますが、スクリプトはPostgresに成功を報告する前に中断された場合。 WALは既にPostgresからBarmanにコピーされていますが、非同期Barman WALアーカイバーによってまだ処理されていないため、同じファイルを再度アーカイブしようとすると、barman-wal-archiveの新しい実行が失敗する場合があります。このマイナーな変更は、既存のファイルと着信ファイルのチェックサムを確認することにより、この状況に対処します。チェックサムが一致する場合、着信ファイルは無視され、そうでない場合、出力情報メッセージが送信され、着信ファイルはerrorsディレクトリに移動されます。コードは、どちらの状況も0で終了し、
archive_commandの障害が原因でPostgresホストにWALが蓄積するのを回避します。参考文献 BAR-225。
WALアーカイブ障害チェックをクリアするための文書手順
Barmanドキュメントの再デザイン中に、サーバーがアイドル状態で
barman checkが「WALアーカイブ」で失敗を返した場合、switch-walコマンドを実行するようにユーザーにアドバイスするノートの追加を忘れていました。これにより、以前のドキュメントから残ったギャップが解消されます。
参考文献 BAR-521。
可能であれば、ディレクトリ全体を一度に削除してWALを削除します
以前は、WALファイルを削除する必要がある場合、バックアップの削除など、 BarmanはすべてのWALファイルを反復し、個別に削除していました。これにより、主にZFSファイルシステムを使用するシステムでパフォーマンスの問題が発生する可能性があります。この変更により、ディレクトリ内のすべてのファイルがBarmanによって必要とされなくなったことに気づくたびに、ディレクトリ全体が削除されます。
参考文献 BAR-511。
Azure認証での
DefaultAzureCredentialオプションのサポートを追加しますユーザーは、サーバー構成の
azure_credentialのdefaultオプションまたはbarman-cloud-*の場合は--azure-credential defaultオプションを使用することにより、認証にAzureのDefaultAzureCredentialを明示的に使用できるようになりました。以前は、資格情報が提供されず、環境変数が設定されていない場合に、フォールバックとしてのみ設定できました。参考文献 BAR-539。
リテンションポリシー情報の診断出力を改善します
barman promoteコマンドの出力を改善して、より使いやすい文字列表現を表示します。具体的には、`retention_policy'属性の「redundancy 2 b」の代わりに「REDUNDANCY 2」が表示され、`wal_retention_policy'属性は「simple-wal 2 b」の代わりに「MAIN」が表示されます。
参考文献 BAR-100
バグ修正#
barman restoreを--target-tliとともに使用する場合のPITRを修正Barmanは、次の場合に
recovery.signalを作成せず、postgresql.auto.confにrecovery_target_timelineを埋めていません。barman restoreに渡された唯一のリカバリターゲットは--target-tliでした。または--target-tliは他の--target-*オプションで指定されましたが、指定されたターゲットタイムラインは、選択したバックアップのタイムラインと同じでした。
--target-*オプションがbarman restoreに渡される場合、それはPITRとして正しく扱われるようになりました。参考文献 BAR-543。
割り当て前にAWS `profile`変数が参照される場合のバグを修正
問題は、 Barman 3.12.0リリースの一部としてBAR-242によって導入されました。この問題により、
--aws-profile引数またはaws_profile構成が設定されていない場合、barman-cloud-backup-deleteおよび場合によっては他のコマンドが次のようなエラーで失敗します。ERROR: Barman cloud backup delete exception: local variable 'profile' referenced before assignment`
参考文献 BAR-518。
barman-cloud-wal-archiveの-zstdフラグを修正する
barman-cloud-wal-archiveの--zstdフラグのバグを修正しました。基本的に無視され、アップロード前にWALファイルを実際に圧縮していません。参考文献 BAR-567。
3.12.12024-12-09#
バグ修正#
json出力にバックアップの開始時間と終了時間のisoformatフィールドを追加します
このパッチは、 infofileオブジェクトのjson出力を変更し、2つの新しいフィールド
begin_time_isoおよびend_time_isoを追加します。新しいフィールドにより、より標準のタイムゾーンを認識する時間形式を使用でき、以前のバージョンとの互換性を維持できます。将来的には、日付のiso形式がバーマンが日付を保存するために使用する標準になり、人間が判読できない出力が要求される場所はどこでも使用されることに注意してください。作業の一部として、このパッチは、 Barman 3.12.0で導入されたBAR-316を元に戻します。
参考文献 BAR-494。
3.12.02024-11-21#
マイナー変更#
BarmanにFIPSサポートを追加する
md5ハッシュアルゴリズムはFIPSに準拠していないため、sha256に置き換えられます。sha256はFIPSに準拠しており、広く使用されており、ほとんどの実用的な目的において安全であると考えられています。このリリースまでは、BarmanのWALアーカイブクライアントはhashlib.md5を使用して、 Barmanサーバーに送信される前にtarファイルのチェックサムを生成していました。ここで、 tarファイルは、複数のファイルをバンドルするために使用されるファイル形式であり、チェックサムとそれに対応するパスをリストするMD5SUMSファイルです。このリリースでは、md5ハッシュアルゴリズムは、デフォルトとしてsha256に置き換えられました。その結果、 tarファイルのチェックサムはsha256を使用して計算され、MD5SUMSファイルの名前はSHA256SUMSになります。 Barmanは、ユースケースがある場合、クライアントからデフォルト以外のmd5アルゴリズムとMD5SUMSファイルを使用する機能があります。ユーザーは、--md5フラグをbarman-wal-archivearchive_commandに追加するだけです。参考文献 BAR-155、CP-34954、CP-34391
el7、debian10、およびubuntu1804サポートを削除しました。 DebianとSLESを更新しました。
el7、debian10、およびubuntu1804のサポートが削除されました。さらに、バージョン12とバージョン名「bookworm」がDebianに追加され、以前に欠落していたエントリに対処しました。 SLESイメージバージョンもsp4からsp5に更新されました。
参考文献 BAR-389。
Postgres Extended 17PGEおよびPostgres Advanced Server 17EPASのサポートを追加します
テストはPostgres Extended 17PGEおよびPostgres Advanced Server 17EPASで実施され、 Barmanの最新機能との完全な互換性が確認されました。この検証により、PGEおよびEPASの最新バージョンのユーザーは、 Barmanのすべての新機能を自信を持って活用できます。
参考文献 BAR-331。
zstd、lz4、およびxzアルゴリズムでWAL圧縮を向上させるWALファイルのxz圧縮のサポートを導入しました。
compressionサーバーパラメーターでxzを指定することにより、有効にできます。 WALは、BarmanのWALアーカイブに入るときに圧縮されます。クラウドの場合、barman-cloud-wal-archiveの実行時に--xzを指定することにより有効にできます。WALファイルでのzstandard圧縮のサポートを導入しました。
compressionサーバーパラメーターでzstdを指定することにより、有効にできます。 WALは、BarmanのWALアーカイブに入るときに圧縮されます。クラウドの場合、barman-cloud-wal-archiveの実行時に--zstdを指定することにより有効にできます。WALファイルのlz4圧縮のサポートを導入しました。
compressionサーバーパラメーターでlz4を指定することにより、有効にできます。 WALは、BarmanのWALアーカイブに入るときに圧縮されます。クラウドの場合、barman-cloud-wal-archiveの実行時に--lz4を指定することにより有効にできます。リファレンス BAR-265、BAR-423、BAR-264。
マルチパートアップロードを回避することにより、S3バケットでのWALアップロードパフォーマンスを向上させます
以前は、WALファイルは、
upload_fileobjメソッドを介してboto3ライブラリが提供するマルチパートアップロードを使用してS3バケットにアップロードされていました。マルチパートアップロードは、WALセグメントなどの小さなファイルに使用すると、単一のPUT要求でアップロードする場合と比較して、時間がかかることに注意しました。これは、100MB未満のファイルのマルチパートアップロードを回避することにより改善されました。この変更により、各WALファイルの平均アップロード時間は約15%削減される予定です。参考文献 BAR-374。
KEEP:STANDALONEフルバックアップのリテンションポリシーを適用する際の動作を変更しますbackup_method = postgresで作成されたフルバックアップにリテンションポリシーを適用する場合、 Barmanは以前に、使用されるKEEPターゲットに関係なく、すべての依存子インクリメンタルバックアップをVALIDとしてマーキングしていました。ただし、このアプローチは間違っています。KEEP:STANDALONEというラベルのバックアップの場合、 Barmanは、サーバーをそのバックアップの正確な状態に復元するために必要なWALファイルのみを保持します。これらのバックアップは自己完結型であるため、ルートバックアップが保持ポリシーの範囲外になると、依存子のバックアップは必要ありません。対照的に、
KEEP:FULLとマークされたバックアップは、ポイントインタイムリカバリーを目的としています。これをサポートするために、 BarmanはすべてのWALと子バックアップを保持して、バックアップの一貫性を保証し、可能な最新のポイントへのリカバリーを可能にします。
この違いにより、
KEEP:STANDALONEバックアップは特定の瞬間のスナップショットとして機能しますが、KEEP:FULLバックアップは完全なポイントインタイムリカバリーに必要なすべてを保持します。参考文献 BAR-366。
Barmanの復旧プロセスのドキュメントとユーザー向け機能を更新します。
Barmanドキュメントとツール自分自身は、両方とも以下を参照するために「recover」/「recovery」という用語を使用していました。
Postgresの復旧プロセス。
バックアップを復元し、リカバリーの準備をするプロセス。
コードとドキュメントの両方が変更され、「restore」および「recover」/「recovery」という用語の使用を正確に反映しています。
また、
barman recoverコマンドはbarman restoreに名前が変更されました。古い名前は、下位互換性のためのエイリアスとして残されています。参考文献 BAR-337。
–keep-compressionフラグをbarman-wal-restoreおよびget-walに追加します
新しい
--keep-compressionオプションがbarman-wal-restoreとget-walの両方に追加されました。このオプションは、圧縮されたWALファイルを取得する前にBarmanサーバーで解凍するかどうかを制御します。get-walで指定される場合、デフォルトの解凍はスキップされ、出力は元の状態のWALファイルコンテンツです。barman-wal-restoreで指定すると、WALファイルはそのまま取得され、圧縮されている場合はクライアントサイドで解凍されます。参考文献 BAR-435。
ランサムウェア保護-AWSスナップショットロックのサポートを追加
Barmanは、Amazon EBSスナップショットの誤ってまたは悪意のある削除を防ぐための新しい統合機能であるAWS EBS Snapshot Lockをサポートするようになりました。スナップショットがロックされている場合、ユーザーは削除できませんが、完全にアクセスして使用できます。この機能を使用すると、スナップショットを指定した期間Write-Once-Read-Many形式で保存できます。ロックの有効期限が切れるまでデータを安全に改ざん防止に保つことにより、規制要件を満たすのに役立ちます。
この機能を開始したコミュニティ貢献者Rui Marinhoに心より感謝いたします。
参考文献 BAR-242。
バックアップの削除中のクラッシュから孤立したファイルが残されないようにします
このコミットは、バックアップの削除中にシステムがクラッシュした場合、バックアップにファイルが残る問題を修正します。
バックアップが削除されると、最初に「削除マーカー」を取得します。バックアップの削除中にクラッシュが発生した場合、マーカーは、サーバー再起動時に不完全なバックアップ削除を認識するのに役立ちます。
Barman cronジョブは、これらの削除されたマーカーを検索するように更新されました。 「削除マーカー」を含むバックアップが見つかった場合、プロセスを完了します。
参考文献 BAR-244。
スナップショットでタグを使用するサポートを追加します
Barmanは、 barman-cloud-backup scriptコマンドを使用してバックアップを作成するときに、スナップショットのタグ付けをサポートするようになりました。 –tagsと呼ばれる新しい引数が追加されました。
この機能を開始したコミュニティ貢献者Rui Marinhoに心より感謝いたします。
参考文献 BAR-417。
BarmanクラウドコマンドのJSON出力を生成するときは、ctimeの代わりにISO形式を使用します
ctime形式には、タイムスタンプに関連付けられたタイムゾーンに関する情報がありません。それに加えて、そのフォーマットは人間が使用するのにより適しています。マシンでの使用には、ISO形式の方が適しています。
参考文献 BAR-316。
バグ修正#
レプリケーションスロットに対して誤った結果を返すバーマンチェックを修正
以前は、スタンバイノードからバックアップし、プライマリからWALをストリーミングするアーキテクチャを使用している場合、 Barmanはレプリケーションチェックに
conninfoスタンバイサーバーをポイントして誤って使用し、次のようなエラーを引き起こしていました。replication slot (WAL streaming): FAILED (replication slot 'barman' doesn't exist. Please execute 'barman receive-wal --create-slot pg17')これにより、
wal_conninfoが設定されている場合はWALレプリケーションチェックに使用されるようにすることにより、次の問題 #1024 _が修正されます。両方が設定されている場合、
wal_conninfoはwal_streaming_conninfoより優先されます。この変更により、wal_conninfoのみが設定されている場合、それが使用され、conninfoにフォールバックしません。また、ドキュメントでは、
conninfoがスタンバイサーバーをポイントする場合、正確なレプリケーションステータスチェックにはwal_conninfoを設定および使用する必要があることを明示的に変更しました。参考文献 BAR-409。
barman keepの欠落しているオプションを修正オプションなしで
barman keepを実行したときにBarman CLIが出力したエラーメッセージは、statusとreleaseのショートカットエイリアスが存在することを示唆していました。これらのエイリアス-sおよび-rは存在しないため、エラーメッセージは誤解を招くものでした。これは、これらの短いオプションをBarman CLIに含め、これらのショートカットが既に存在するbarman-cloud-backup-keepのような他のツールと調整することにより、問題を修正します。参考文献 BAR-356。
conninfoおよびprimary_conninfoに関連するスタンバイチェックを軽減する
スタンバイサーバーをバックアップするときに、 Barmanはいくつかのチェックを実行して、
conninfoが実際にスタンバイリカバリモードを指していること、およびprimary_conninfoがプライマリ非リカバリーを指していることをアサートします。問題#704および#744で報告されたように、フェールオーバーが発生すると、
conninfoが代わりにプライマリを指すようになり、チェックが失敗し始めるため、ユーザーはフェールオーバーが発生するたびにBarman構成を手動で変更する必要があることです。この修正では、このようなチェックを非クリティカルにすることにより問題を解決しました。つまり、チェックはまだ失敗しますが、 Barmanは関係なく動作し続けます。基本的に、 Barmanは
conninfoがスタンバイをポイントしていない場合、primary_conninfoを無視します。この構成の誤りに関する警告は、 Barmanコマンドを実行するたびに出力されるため、ユーザーが気づくことができます。参考文献 BAR-348。
Barmanでpg_has_roleを呼び出すときにMEMBERではなくUSAGEを確認する
正しく動作するには、 Barmanデータベースユーザーを一部のロールに含める必要があります。 Barmanは、Postgresで
pg_has_roleを呼び出すことにより、条件が満たされることを確認していました。ただし、USAGEではなくMEMBER特権のチェックでした。この見落としは修正されました。この変更は、@RealGreenDragonからの貢献です。
参考文献 BAR-489。
3.11.12024-08-22#
バグ修正#
barman-cloud-backup-deleteの障害を修正します。このコマンドは、以前のリリースで導入されたバグのため、保持ポリシーを適用するときに失敗していました。
3.11.02024-08-22#
重要な変更#
Postgres 17+のインクリメンタルバックアップのサポートを追加します。この主要機能は、いくつかの小さな変更で構成されています。
--incrementalコマンドラインオプションをbarman backupコマンドに追加します。これは、インクリメンタルバックアップを作成するときに親バックアップを指定するために使用されます。親は、完全バックアップまたは別のインクリメンタルバックアップのいずれかです。latest-fullショートカットバックアップIDを追加します。latestと同様に、これは、インクリメンタルバックアップの親バックアップを選択するショートカットとして使用できます。latestは、フルまたはインクリメンタルの場合を独立して取得しますが、latest-fullは最新のフルバックアップを取得します。barman keepコマンドは、backup_method = postgresの場合のフルバックアップにのみ適用できます。保持ポリシーでは、インクリメンタル バックアップは考慮されません。インクリメンタル バックアップは、完全なバックアップまでで使用可能なバックアップの完全なチェーンがないと復旧できないため、完全なバックアップのみが保持ポリシーを考慮します。フルバックアップに依存するインクリメンタルバックアップがあり、リテンションポリシーが適用される場合、フルバックアップはそのステータスを、関連するインクリメンタルバックアップに伝播します。フルバックアップに
KEEPターゲットでフラグが設定されている場合、 Barmanは関連するすべてのインクリメンタルバックアップのステータスをVALIDに設定します。バックアップを削除すると、それに依存するすべての増分バックアップがある場合は、それも削除されます。
barman recoverは、リカバリ時に完全バックアップとインクリメンタルバックアップのチェーンを組み合わせる必要があります。新しいCLIオプション--local-staging-path、および対応するlocal_staging_path構成オプションは、インクリメンタルバックアップをリカバリーするときにバックアップが結合されるBarmanホスト内のパスを指定するために使用されます。
barman show-backup出力の変更「推定クラスターサイズ」フィールドを追加します。バックアップを復元するときに、クラスターのデータディレクトリのサイズを推定すると役立ちます。これは、圧縮バックアップまたはインクリメンタルバックアップを復旧する場合、バックアップのサイズがPostgresのデータディレクトリのサイズを反映していない場合に特に役立ちます。 JSON形式では、これは
cluster_sizeとして保存されます。「WAL resumer」フィールドを追加します。このフィールドは、バックアップが作成されたときにPostgresで
summarize_walが有効になっていたかどうかを示します。 JSON形式では、これはserver_information.summarize_walとして保存されます。このフィールドは、Postgres 16以前では省略されます。「Data checksums」フィールドを追加します。これは、バックアップが取得されたときにPostgresで
data_checkumsが有効になっていたかどうかを示します。 JSON形式では、これはserver_information.data_checksumsとして保存されます。「バックアップ方法」フィールドを追加します。これは、このバックアップに使用されたバックアップ方法を示します。 JSON形式では、これは
base_backup_information.backup_methodとして保存されます。フィールド「Disk Capacity」の名前を「Backup Size」に変更します。後者は、 Barmanホストのバックアップのサイズを表すより包括的な名前を提供します。
base_backup_informationの下のJSONフィールドの名前もdisk_usageからbackup_sizeに変更されました。「WALサイズ」フィールドを追加します。これは、バックアップに必要なWALのサイズを示します。 JSON形式では、これは
base_backup_information.wal_sizeとして保存されます。フィールド「インクリメンタルサイズ」をリファクタリングします。これは名前が“Resources Saving”になり、
rsyncまたはpg_basebackupでインクリメンタルバックアップを取得したときに節約されるリソースの推定値を表示するようになりました。バックアップサイズと推定クラスターサイズを比較して、インクリメンタルバックアップを行うことにより保存されたディスクリソースとネットワークリソースの量を推定します。 JSON形式では、フィールドの名前がincremental_sizeからbase_backup_informationの下のresource_savingsに変更されました。system_idフィールドをJSONドキュメントに追加します。このフィールドには、Postgresのシステム識別子が含まれています。コンソール形式では存在しましたが、JSON形式ではありませんでした。Postgresのインクリメンタル バックアップに関連するフィールドを追加します。
“Backup type” Postgresバックアップがフルかインクリメンタルかを示します。 JSON形式では、これは
base_backup_informationの下のbackup_typeとして保存されます。「ルートバックアップ」 1つ以上のインクリメンタルバックアップのチェーンのルートである完全バックアップのID。 JSON形式では、これは
catalog_information.root_backup_idとして保存されます。「親バックアップ」 この増分バックアップが取得された完全または増分バックアップのID。 JSON形式では、これは
catalog_information.parent_backup_idとして保存されます。“Children Backup(s)” このバックアップを親として取得したインクリメンタルバックアップのID。 JSON形式では、これは
catalog_information.children_backup_idsとして保存されます。「バックアップチェーンサイズ」 このインクリメンタルバックアップからルートバックアップまでのチェーン内のバックアップの数。 JSON形式では、これは
catalog_information.chain_sizeとして保存されます。
barman list-backup出力の変更JSON出力にバックアップタイプが含まれるようになりました。これは、 rsyncで取得したバックアップの場合は
rsync、pg_basebackupで取得したバックアップの場合はfullまたはincremental、またはクラウドスナップショットの場合はsnapshotです。コンソールに出力する場合、バックアップタイプは、対応するラベルR、F、IまたはSで表されます。出力からテーブルスペース情報を削除します。それは出力が肥大化していました。表領域情報は、
barman show-backupの出力で引き続き見つかります。
recovery_target_time〜barman recoverを構成するときは、常にタイムゾーンを使用してタイムスタンプを設定します。以前は、--target-timeを介してタイムゾーンが明示的に設定されていない場合、 BarmanはPostgresでタイムゾーンなしでrecovery_target_timeを構成していました。タイムゾーンがないと、PostgresはPostgresのtimezoneGUCを介して構成されているものを想定しています。今後、 Barmanは--target-timeオプションを介してユーザーがタイムゾーンを設定していない場合、 Barmanホストのタイムゾーンでrecovery_target_timeを構成します。--target-lsnが設定されている場合、「no get wal」アプローチでバックアップをリカバリーする場合、構成したターゲットに到達するために必要なWALファイルのみをコピーします。以前は、 BarmanがアーカイブからPostgresにすべてのWALファイルをコピーしていました。--target-immediateが設定されている場合、「no get wal」アプローチでバックアップをリカバリーする場合、一貫性のあるポイントに到達するために必要なWALファイルのみをコピーします。以前は、 BarmanがアーカイブからPostgresにすべてのWALファイルをコピーしていました。barman-wal-restoreは、WALをコピーする代わりに、スプールディレクトリからpg_walに移動するようになりました。これにより、spoolディレクトリとpg_walディレクトリが同じパーティションにある場合、パフォーマンスが向上します。barman check-backupは、バックアップが出力とログでFAILEDとしてマークされた理由を表示するようになりました。以前は、バックアップがFAILEDとしてマークされた理由を知るには、barman show-backupコマンドを実行する必要がありました。構成オプション
aws_await_snapshots_timeoutと、対応する--aws-await-snapshots-timeoutコマンドラインオプションをbarman-cloud-backupに追加します。これは、スナップショットバックアップが完了状態に到達するまで待機するタイムアウトを秒単位で指定します。rsyncベースのバックアップにキープアライブメカニズムを追加します。以前は、
pg_backup_start()およびpg_backup_stop()を実行するためにBarmanによって作成されたPostgresセッションは、ベースバックアップコピーがかかる間アイドル状態のままでした。これにより、ファイアウォールまたはルーターが長時間アイドル状態であったために接続がドロップされる可能性があります。キープアライブメカニズムは、その接続を介してハートビートクエリをPostgresに送信するため、接続がドロップされる可能性が減少します。ハートビート間の間隔は、新しい構成オプションkeepalive_intervalと、barman backupコマンドの対応するCLIオプション--keepalive-intervalを介して制御できます。
バグ修正#
「no get wal」アプローチと
--target-time設定を使用してバックアップをリカバリーする場合、すべてのWALファイルをコピーします。以前は、 Barmanは、Postgresが構成したターゲット時間に到達するために必要なWALファイルを「推測」しようとしました。ただし、このメカニズムは、 BarmanホストのWALファイルの統計、具体的には作成時間に基づいていたため、十分に堅牢ではありませんでした。例えば PostgresとBarmanの間でアーカイブまたはストリーミングの遅延があった場合、ファイル統計に基づいたチェックが弱いためにBarmanは必要なすべてのWALファイルのコピーを逃すため、リカバリーが失敗するのに十分である可能性があります。Python 3.6以前でBarmanを実行する場合、
python-snappyを0.6.1に固定します。python-snappyの新しいバージョンには、cramjamバージョン2.7.0以降が必要です。これらはPython 3.7以降でのみ使用できます。barman receive-walは、次の場合に0ではなくコード1で終了するようになりました。pg_receivewalが実行されているため、--resetフラグを使用して実行できません。pg_receivewalプロセスは既に実行されているため、開始できません。
barman diagnose出力のPythonに関する情報を修正および改善します。このコマンドは、
python_verJSONキーを介してPythonバージョンを出力するときに、 Barmanがインストールされているのと同じPythonインタープリターを使用するようになりました。以前は、環境に複数のPythonインストールおよび/または仮想環境が含まれる場合、別のPythonインタープリターから取得される可能性があるため、最終的に出力が誤解を招く可能性がありました。python_executableキーをJSON出力に追加しました。これには、 Barmanが使用する正確なPythonインタープリターへのパスが含まれています。
3.10.12024-06-12#
バグ修正#
一部のプラットフォームでのインストールの問題を回避するには、
argcompleteをオプショナルにします。ファイルが存在する場合にのみ
barman.auto.confをロードします。cfg_changes.queueファイルの形式が不正な場合に警告を発します。pg_checkpointが利用可能なpostgresqlバージョンのドキュメントを修正します。--no-partialオプションをbarman-cloud-wal-restoreに追加します。
3.10.02024-01-24#
重要な変更#
新しいCLIオプション
--max-bandwidthで設定された値に従って、AWS S3またはAzure Blob Storageにバックアップするときにbarman-cloud-backupが使用する平均帯域幅を制限します。新しい構成オプション
lock_directory_cleanupを追加します。これにより、cronは、未使用のロックファイルからbarman_lock_directoryを自動的にクリーンアップします。modelと呼ばれる新しいタイプの構成のサポートを追加します。モデルは、特定のBarmanサーバーの構成オプションのオーバーライドのセットとして機能します。JSONを使用して構成の作成と更新を可能にする新しいbarmanコマンド
barman config-updateを追加します
バグ修正#
Barmanのフックスクリプトとしてbarman-cloud-backupを使用する場合、
--min-chunk-sizeが無視される原因になったバグを修正します。
3.9.02023-10-03#
重要な変更#
ユーザーが
pg_checkpointロールを持っている場合、PG>=14に対してbarman switch-wal --forceを実行できます。このパッチはtoydarianに感謝します。チェックタイムアウトが発生すると、現在のチェックを
infoレベルでログに記録します。S3またはAzure Blob Storageで
barman-cloud-backupを使用する場合のアップロードチャンクの最小サイズを、--min-chunk-sizeオプションを使用して指定できるようになりました。backup_compression = noneは、pg_basebackupを使用する場合にサポートされます。PostgreSQL 15以降の場合
zstdおよびlz4の許可されるbackup_compression_level値が、pg_basebackupで許可される値と一致するように更新されました。15より前のPostgreSQLバージョンの場合
backup_compression_level = 0をbackup_compression = gzipとともに使用できるようになりました。
バグ修正#
新しいプロセスを開始するときにマルチプロセッシングがデフォルトでスポーンを使用するプラットフォームで
barman recoverを修正します。
3.8.02023-08-31#
重要な変更#
パッケージのインストールを明確にする。 barmanは、各オペレーティングシステムのデフォルトのPythonバージョンがパッケージされています。
minimum-redundancyオプションがbarman-cloud-backup-deleteに追加されます。常に使用可能なバックアップの最小数を設定できます。新しい
primary_checkpoint_timeout構成オプションを追加します。新しいWALファイルが生成されない場合、プライマリサーバーにチェックポイントを強制する前に、バックアップの最後にBarmanが待機する秒数を定義できます。
バグ修正#
バーマンリテンションポリシーアプリケーションの競合状態を修正します。要求されたバックアップで別の削除が進行中の場合、バックアップの削除で警告が発生するようになりました。
barman-cloud-backup-showのマニュアルページのインストールを修正します。
3.7.02023-07-25#
重要な変更#
EBSボリュームを使用したAWSでのスナップショットバックアップのサポートが追加されました。
barman-cloud-*スクリプトの--profileオプションの名前が--aws-profileに変更されます。古い名前は非推奨であり、将来のリリースでは削除される予定です。backup_method = rsyncで作成されたバックアップの完了時に、バックアップマニフェストを自動的に生成できるようになりました。これは、autogenerate_manifest構成変数を設定することにより有効になり、--manifestおよび--no-manifestCLIオプションを使用してオーバーライドできます。
バグ修正#
barman-cloud-*スクリプトは、継続トークンを正しく使用して、AWS S3互換オブジェクトストアのオブジェクトをページングするようになりました。これにより、barman-cloud-backup-deleteがバックアップの削除後に最も古い1000の対象WALのみを削除するバグが修正されます。マイナーなドキュメントの修正。
3.6.02023-06-15#
重要な変更#
PostgreSQLバージョン10はサポートされなくなりました。
管理対象ディスクを使用したMicrosoft Azureでのスナップショットバックアップのサポートが追加されました。
--snapshot-recovery-zoneオプションは、他のプロバイダー固有のオプションとの一貫性を保つために--gcp-zoneに名前変更されました。古い名前は非推奨であり、将来のリリースでは削除される予定です。snapshot_zoneオプションと--snapshot-zone引数の名前は、それぞれgcp_zoneと--gcp-zoneに変更されます。古い名前は非推奨であり、将来のリリースでは削除される予定です。snapshot_gcp_projectオプションと--snapshot-gcp-project引数の名前がgcp_projectおよび--gcp-projectに変更されます。古い名前は非推奨であり、将来のリリースでは削除される予定です。
バグ修正#
Barmanは、パッシブノードに対して
replication-statusコマンドを実行しようとしなくなりました。backup_labelは、barman-cloud-backup-deleteでスナップショットバックアップが削除されるときに、クラウドストレージから削除されます。generate-manifestおよびverify-backupコマンドのマニュアルページが追加されました。マイナーなドキュメントの修正。
3.5.02023-03-29#
重要な変更#
Python 2.7はサポートされなくなりました。サポートされている最も古いPythonバージョンは3.6になりました。
EL7の
barman、barman-cliおよびbarman-cli-cloudパッケージでは、python 2.7ではなくpython 3.6が必要になりました。サポートされている他のプラットフォームの場合、 Barmanパッケージには既にPythonバージョン3.6以降が必要であるため、パッケージ化は影響を受けません。PostgreSQL 10のサポートは、将来のBarmanリリースで廃止されます。 3.5.xは、PostgreSQL 10をサポートするBarmanの最後のバージョンです。
barman-cloud-backupまたはbarman-cloud-wal-archiveで--kms-key-nameオプションを使用することにより、Google Cloud StorageにアップロードされたバックアップとWALを特定のKMSキーを使用して暗号化できるようになりました。AWS S3にアップロードされたバックアップとWALは、
barman-cloud-backupまたはbarman-cloud-wal-archiveとともに--sse-kms-key-idオプションを使用することにより、特定のKMSキーを使用して暗号化できるようになりました--encryption=aws:kms。2つの新しい構成オプションが提供され、
backup_method = rsyncを使用したバックアップおよびリカバリー中にパラレルワーカーが起動されるレートを制限できます。parallel_jobs_start_batch_sizeは、単一のバッチで起動されるパラレルワーカーの量を制限するように設定でき、parallel_jobs_start_batch_periodは、ワーカーの単一バッチが開始される秒単位の時間を定義できます。これらは、barman backupおよびbarman recoverコマンドで引数--jobs-start-batch-sizeおよび--jobs-start-batch-periodを使用してオーバーライドできます。新しいオプション
--recovery-conf-filenameがbarman recoverに追加されます。これは、 BarmanがPostgreSQLリカバリオプションを書き込むファイルをデフォルトのpostgresql.auto.confから別の場所に変更するために使用できます。
バグ修正#
barman-cloud-backup-showが、barman backupで作成され、barman-cloud-backupによってバックアップ後フックスクリプトとしてアップロードされたバックアップのバックアップメタデータを表示できないバグを修正しました。バックアップ圧縮設定の検証に使用されるPostgreSQL接続が、 Barmanコマンドが終了するまで開いたままになるバグを修正しました。
idle_session_timeoutを超える期間実行すると、rsync-concurrentバックアップが失敗する原因となった問題を修正します。--waitフラグがbarman backupで使用された場合、バックアップ名がバックアップメタデータに保存されないバグを修正しました。mojtabash78、mhkarimi1383、epolkerman、barthisrael、およびhzettersの貢献に感謝します。
3.4.02023-01-26#
重要な変更#
これは、Python 2をサポートするBarmanの最後のリリースであり、新機能にはPython 3.6以降が必要です。
snapshotという名前の新しいbackup_methodが追加されます。これにより、クラウドストレージボリュームのスナップショットを取得することにより、バックアップが作成されます。現在、Google Cloud Platformのみがサポートされていますが、将来のBarmanリリースでは、AWSおよびAzureのサポートが続く予定です。この機能には、Python最小バージョン3.7が必要であることに注意してください。詳細については、 Barmanのマニュアルを参照してください。スナップショットバックアップのサポートも
barman-cloud-backupに追加され、スナップショットバックアップのリストアの最小限のサポートがbarman-cloud-restoreに追加されます。新しいコマンド
barman-cloud-backup-showが追加されました。これは、クラウドオブジェクトストレージに保存されているバックアップメタデータを表示し、barman show-backupに似ています。これは、復元時にスナップショットのメタデータを簡単に取得できるように提供されていますが、barman-cloud-backupで作成されたバックアップのメタデータを検査する便利な方法でもあります。ドキュメントのRPMからBarmanをインストールする手順が更新されました。
ドキュメントのNFS要件のフォーマットが修正されました。
サポートされているPostgreSQLバージョンは、ドキュメントで更新されています。これはドキュメントの修正のみです。サポートされている最小メジャーバージョンはまだ10です。
3.3.02022-12-14#
重要な変更#
barman backupおよびbarman-cloud-backupコマンドでサポートされた新しい--nameオプションを使用して、バックアップ時にバックアップに名前を付けることができるようになりました。バックアップと対話するコマンドを実行するときに、バックアップIDの代わりにバックアップ名を使用できます。さらに、バックアップをリストおよび表示するコマンドが更新され、プレーンテキストおよびJSON出力形式でバックアップ名が含まれるようになりました。PostgreSQLバージョンの厳密なチェックにより、 BarmanがサポートされているPostgreSQLバージョンに対して実行されていることを確認します。
バグ修正#
barman Cloudコマンドドキュメントとこれらのコマンドのヘルプ出力間の不一致を修正します。
スタンバイのバックアップ中にプライマリでWALを切り替えるときは、新しいPostgreSQL接続を使用して、
SSL errorメッセージや接続の失敗などの未定義の動作を回避します。子プロセスで実行されるコマンドのstdoutのデフォルトログレベルを
DEBUGに変更することにより、ログボリュームを削減します。ただし、pg_basebackupは除きます。これは、出力を確認することが頻繁に役立つ長時間実行プロセスであるため、INFOレベルで意図的にログに記録されますコマンドの実行中)。
3.2.02022-10-20#
重要な変更#
barman-cloud-backup-deleteは、単一の要求で削除されるオブジェクトの最大数を決定する--batch-sizeオプションを受け入れるようになりました。すべての
barman-cloud-*コマンドが--read-timeoutオプションを受け入れるようになりました。これはaws-s3クラウドプロバイダーで使用される場合、S3への要求を行うときにboto3ライブラリが使用する読み取りタイムアウトを決定します。
バグ修正#
Barman構成で
backup_compressionが設定されているが、PostgreSQLサーバーが利用できない場合のbarman recoverの障害を修正します。
3.1.02022-09-14#
重要な変更#
backup_method = postgresで取得したバックアップを、それぞれbackup_compression = lz4またはbackup_compression = zstdを設定することにより、lz4およびzstd圧縮を使用して圧縮できるようになりました。これらのオプションは、PostgreSQL 15ベータ以降でのみサポートされています。並列圧縮に使用されるスレッドの数を設定する新しいオプション
backup_compression_workersが利用できます。これは、現在backup_method = postgresおよびbackup_compression = zstdでのみ使用できます。新しいオプション
primary_conninfoを設定して、バックアップのファイナライズ時にプライマリでWALスイッチが発生するのをスタンバイのバックアップが待機する必要を回避できます。 Barmanは、primary_conninfoの接続文字列を使用して、バックアップを停止するときにプライマリでWALスイッチを実行します。--files-from引数の末尾の改行を必要とするCVE-2022-29154にパッチされた特定のRsyncバージョンのサポート。barman receive-walメンテナンスオプション--stop、--reset、--drop-slotおよび--create-slotを非アクティブなサーバーに対して実行できます。--portオプションをbarman-wal-archiveおよびbarman-wal-restoreコマンドに追加して、SSH構成を必要とせずにカスタムSSHポートを使用できるようにします。さまざまなドキュメントの改善。
Python 3.5はサポートされなくなりました。
バグ修正#
barman cronの実行中にPostgreSQL接続が正常に閉じられることを確認します。barman generate-manifestは、既存のbackup_manifestファイルをエラー条件として扱うようになりました。backup_manifestファイルは、リカバリ操作中にバックアップIDを追加して名前が変更され、古いbackup_manifestファイルを含む今後のバックアップが防止されます。
タイムゾーンを認識しないjson出力のエポックタイムスタンプを修正しました。
pg_basebackupの出力は、バックアップの進行中にBarmanログファイルに書き込まれるようになりました。このリリースに貢献して頂いたbarthisrael、elhananjir、kraynopp、lucianobotti、およびmxeyに感謝します。
3.0.12022-06-27#
バグ修正#
PyPIのパッケージ署名問題を修正しました3.0.0と同じソース
3.0.02022-06-23#
重大な変更#
PostgreSQLバージョン9.6以前はサポートされなくなりました。これらのバージョンのいずれかを使用している場合、 Barmanの以前のバージョンを使用する必要があります。
Rsyncバックアップのデフォルトのバックアップモードは、排他的ではなくコンカレントになりました。排他的バックアップはPostgreSQL 9.6以降非推奨であり、PostgreSQLでは削除されました
15より前のPostgreSQLバージョンに対してBarmanを実行しており、排他的バックアップを使用したい場合は、
backup_optionsでexclusive_backupを設定する必要があります。
各バックアップの
backup.infoファイルに保存されるバックアップメタデータには、追加のフィールドがあります。これは、 Barmanの以前のバージョンが3.0.0で取得されたバックアップが存在すると動作しないことを意味します。さらに、 pg-backup-apiのユーザーはバージョン0.2.0にアップグレードして、pg-backup-apiが更新されたメタデータで動作できるようにする必要があります。
重要な変更#
backup_compression構成オプションを設定することにより、backup_method = postgresで取得したバックアップをpg_basebackupで圧縮できるようになりました。圧縮レベル、バックアップ形式、およびpg_basebackupクライアントまたはPostgreSQLサーバーが圧縮を適用するかどうかを制御するための追加オプションが提供されています。注これらのバックアップのリカバリーには、 Barmanがrecovery_staging_pathオプションで指定された場所のリカバリサーバー上の圧縮ファイルをステージングする必要があります。PostgreSQL 15のサポートを追加します。排他的バックアップはPostgreSQL 15ではサポートされていないため、 PostgreSQL 15サーバーのBarman構成は
backup_optionsでexclusive_backupを指定することはできません。圧縮されたWALファイルを識別するときは、custom_compression_magicが設定されている場合、使用します。これにより、 Barmanは非圧縮のWAL
streamingディレクトリの*.partialファイルなどを正しく識別し、解凍しようとする代わりにそれらを返すことができます。
マイナー変更#
さまざまなドキュメントの改善。
バグ修正#
Barmanがメッセージ「バックアップは開始バックアップコマンドの発行に失敗しました。」ログに記録する原因となった順序バグを修正します。 stopbackupコマンドの障害を処理している間。
WALセグメント名の16進値が10進数の整数として解析されるため、9より大きいタイムラインが存在する場合に
--target-tliを使用したリカバリーを妨げたバグを修正します。enum34依存関係の問題により、特定のpython2インストールでbarmanクラウドを使用するときに発生するインポートエラーを修正します。
マジックバイトを識別しようとしたときに、 Barmanが圧縮WALから3バイトを超えて読み取らないバグを修正します。これは、3バイトを超えるマジックを使用したカスタム圧縮WALが正しく解凍されることを意味します。
backup_method = rsyncを使用したバックアップ中に--immediate-checkpointフラグが無視される原因となったバグを修正します。
2.192022-03-09#
重要な変更#
barman diagnose出力日付形式をISO8601に変更します。Barman CloudにGoogle Cloud StorageGCSサポートを追加します。
barman recoverの--target-tliオプションのcurrentおよびlatestリカバリターゲットをサポートします。SLESへのインストールに関するドキュメントを追加します。
バグ修正#
barman-wal-archive --testは、エラーが発生したときにゼロ以外の終了コードを返すようになりました。-tオプションが使用される場合のbarman-cloud-check-wal-archiveの動作を修正して、接続テスト後に終了するようにしました。--no-get-walが使用され、recovery_optionsで/"get-wal/"が設定されていない場合、barman recoverは継続されるようになりました。非アクティブなサーバーの
barman show-servers --format=json ${server}出力を修正しました。構成ファイルに
barman_homeの存在を確認します。パッシブbarmanサーバーは、
backup_method = postgresで取得したバックアップを同期するときに、テーブルスペースデータの2つのコピーを保存しなくなりました。このリリースへのrichyenの貢献に感謝します。
2.182022-01-21#
重要な変更#
barmanクラウドにスナッピー圧縮アルゴリズムのサポートを追加しますオプションのpython-snappy依存関係が必要です。
barman-cloud-wal-archiveでWALをアップロードするときに、Azureクライアントの同時実行パラメーターを設定できるようにします。
barmanクラウドに
--tagsオプションを追加して、バックアップファイルとアーカイブされたWALをクラウドストレージawsおよびazureでタグ付けできるようにします。接続エラーの専用コード2が存在するように、バーマンクラウド終了ステータスコードを更新します。
コマンド
barman verify-backupおよびbarman generate-manifestを追加して、バックアップが有効かどうかを確認します。barmanクラウドでのAzureマネージドID認証のサポートを追加します。これは、
--credentialオプションで有効にできます。
バグ修正#
バケットが存在しない場合の
barman-cloud-check-wal-archiveの動作を変更します。list-files出力が、基になるファイルシステムに関係なく、常にソートされることを確認します。barman-cloud-backup-keep、barman-cloud-backup-delete、およびbarman-cloud-check-wal-archiveのマニュアルページがPythonパッケージに追加されました。
このリリースに貢献して頂いたrichyenとstrakisに感謝いたします。
2.172021-12-01#
重要な変更#
バージョン2.14で導入されたパフォーマンスの低下は、
--jobsフラグを使用するときにbarman backupまたはbarman recoverコマンドのコピー時間を増加させました。senderプロセスのrsync部分転送エラーを無視して、このようなエラーがバックアップの失敗を引き起こさないようにします。barthisraelに感謝します。
2.162021-11-17#
重要な変更#
コマンド
barman-check-wal-archiveおよびbarman-cloud-check-wal-archiveを追加して、提案されたアーカイブの場所が新しいPostgreSQLサーバーに安全に使用できるかどうかを検証します。Barmanがカスタム圧縮スキームを使用して既に圧縮されたWALを識別して、再圧縮を回避できるようにします。
last_backup_minimum_sizeおよびlast_wal_maximum_ageオプションをbarman checkに追加します。
バグ修正#
コマンドライン解析には、メンテナンスされていないarghモジュールの代わりにargparseを使用します。
begin_timeおよびend_timeのタイムゾーンを一貫させます。このリリースへの貢献に感謝します。
2.152021-10-12#
重要な変更#
list-backup、list-serverおよびshow-serverコマンドの複数形を追加しました。これらはlist-backups、list-serversおよびshow-serversになりました。単数形は、下位互換性のために保持されています。カタログ内の最新の失敗したバックアップを参照する
last-failedバックアップショートカットを追加して、次のことを行うことができます。barman delete <SERVER> last-failed
バグ修正#
EPASの古いバージョンで正しいバージョン文字列を検出する問題のため、EPASバージョン9.6および10のバックアップからテーブルスペースは省略されません。
2.142021-09-22#
重要な変更#
barman-cloud-backup-deleteコマンドを追加します。これは、バックアップIDまたはリテンションポリシーを指定して、クラウドストレージのバックアップを削除できます。barman keepおよびbarman-cloud-backup-keepを使用して既存のバックアップをアーカイブバックアップとしてタグ付けする機能を導入することにより、有効な保持ポリシーを超えてバックアップを保持できるようにします。Azure BLOBストレージのより広いストレージアカウントレベルではなく、制限されたBLOBコンテナレベルで作成されたSAS認証トークンの使用を許可します
数十万のファイルを含むバックアップの空のディレクトリへの
barman restoreを大幅に高速化します。
バグ修正#
ユーザーに「userepl」権限がない場合でもバックアップ権限チェックは失敗しなくなり、必要な権限が欠落している場合には、より良いエラーメッセージを結果ことができます#318および#319。
2.132021-07-26#
重要な変更#
Azure Blob Storageのサポートをbarman-cloudに追加します
--tablespace name:locationを介してbarman-cloud-restoreでのテーブルスペースのリマッピングをサポートbarman-cloud-backupおよびbarman-cloud-wal-archiveをBarmanフックスクリプトとして実行できるようにして、 Barmanサーバーからクラウドストレージにデータを中継できるようにします
バグ修正#
idle_in_transaction_session_timeoutが原因でStopバックアップが失敗する EnterpriseDB/barman#333
xlog.dbエントリの更新におけるbackupとarchive-wal間の競合状態を修正します #328
barman-cloud-backupのシンボリックリンクであるPGDATAを処理すると、リストア時に「seeking attempts is not allowed」エラーが発生しました #351
元がシンボリックリンクの場合、リストア時にpg_walを再作成します #327
リストア時にテーブルスペースのpg_tblspcシンボリックリンクを再作成します #343
barman-cloud-backup-listで、たとえば、Glacierストレージにあるため、読み取ることができないバックアップをスキップさせます #332
-d databaseオプションをbarman-cloud-backupに追加して、最初に接続するデータベースを指定します #307boto3クライアントをピクルしようとすると発生する、Python 3.8以降のbarman-cloud-backupからの“Backup failed upgradeing data”エラーを修正します #361
デフォルトで暗号化が有効になっていないバケットのS3でサーバーサイドの暗号化を正しく有効にします。
Barman 2.12では、barman-cloud-backupの
--encryptionオプションは、暗号化が有効になっていないS3バケットにバックアップが保存されている場合、バックアップのコンテンツの暗号化を正しく有効にしませんでした。これに該当する場合は、古いバックアップを削除し、 Barman 2.13で新しいバックアップを取ることを検討してください。S3バケットの暗号化がデフォルトで有効になっている場合これをお勧めしますが、これは影響しません。
2.12.12021-06-30#
バグ修正#
他の
target-*リカバリオプションでtarget-tliを指定できるようにします。barman-cloud-backup-listのマンページの誤ったNAMEを修正します。
SIGALRMが無視される場合でもエラーを発生させません。
Postgres 13からwal_keep_segmentsではなく、wal_keep_sizeを取得します。
2.122020-11-05#
重要な変更#
local-rsyncと呼ばれる新しいbackup_methodオプションを導入します。これは、PostgreSQLと同じサーバーにBarmanがインストールされ、rsyncを直接使用してベースバックアップを取得し、SSHレイヤーをバイパスする場合を対象としています。
バグ修正#
ワーカープロセスでのboto接続の破損を回避します。
テスト中にPostgreSQLへの接続試行を回避します。
2.112020-07-09#
重要な変更#
クラウド関連のすべてのユーティリティを含むbarman-cli-cloudパッケージの紹介。
barman-cloud-wal-restoreを追加して、オブジェクトストアからbarman-cloud-wal-archiveで以前にアーカイブされたWALファイルを復元します。
barman-cloud-restoreを追加して、以前にbarman-cloud-backupで取得したバックアップをオブジェクトストアから復元します。
barman-cloud-backup-listに、オブジェクトストアでbarman-cloud-backupを使用して取得されたバックアップをリストします。
barman-cloud-backupの任意のアーカイブサイズのサポートを追加します。
–endpoint-urlオプションのサポートをクラウドユーティリティに追加します。
PG 10+の厳密なスーパーユーザー要件を削除しますKaarel Moppelによる。
barmanの-log-levelランタイムオプションを追加して、特定のコマンドのデフォルトのログレベルをオーバーライドします。
PostgreSQL 13のサポート
バグ修正#
barman-cli GH-257のSSH接続でのメッセージと警告を抑制します。
barman-cloud-backup GH-259でアップロードされたパーツを取得する際の競合状態を修正します。
バックアップ後にPostgreSQL接続を閉じます GH-258
accept-wal –reset GH-260で初期化されていないレプリケーションスロットがないかを確認します。
begin_walに基づいて行動する前に、begin_walが有効になっていることを確認します GH-262
カスタムセグメントサイズGH-287を使用したXLOG / WAL演算のバグを修正します。
最近のrsyncとのrsync互換性エラーを修正しました。
PostgreSQLClientバージョンの解析を修正しました。
非ASCIIメッセージを使用したPostgreSQL例外処理を修正します。
各postgres接続に空のsearch_pathがあることを確認します。
backup.infoファイルの読み取り中はPostgreSQLへの接続を避けてください。
RPM / Aptパッケージを介してインストールされた既に barman-cloud-wal-archive または barman-cloud-backup を使用しており、システムをアップグレードする場合、barman-cli-cloudパッケージをインストールする必要があります。すべてのクラウド関連ツールは、以前に barman-cli に同梱されていた barman-cloud-wal-archive および barman-cloud-backup を含むbarman-cli-cloudパッケージの一部になりました。その理由は、クラウドユーティリティの要件であるboto3ライブラリの複雑な依存関係管理です。
2.102019-12-05#
重要な変更#
get-walおよびbarman-wal-restoreを使用して.partial WALファイルをプルし、リカバリシナリオのrestore_commandでBarmanサーバーから部分的なWALファイルのコンテンツを取得できます。この機能は、RPO=0リカバリ操作を簡素化および強化します。
PostgreSQLシステム識別子をサーバーディレクトリとバックアップ情報ファイル内に保存します。 checkコマンドを改善して、システム識別子とアクティブな接続標準およびレプリケーションおよびディスク上のデータとの一貫性を検証します。
barman-cloud-wal-archiveと呼ばれる新しいスクリプトがbarman-cliパッケージに追加され、PostgreSQL archive_commandを使用してAWS S3と互換性のあるクラウドオブジェクトストレージサービスにWALファイルを直接シッピングします。暗号化と圧縮をサポートしています。
barman-cloud-backupと呼ばれる新しいスクリプトがbarman-cliパッケージに追加され、ローカルのPostgreSQLサーバーからAWS S3と互換性のあるクラウドオブジェクトストレージサービスにベースバックアップを直接出荷します。暗号化、並列アップロード、圧縮をサポートしています。
server/globalオプションcreate_slotを介したレプリケーションスロットの自動作成。 autoに設定されている場合、streaming_archiveが有効であり、slot_nameが定義されている場合、 Barmanはレプリケーションスロットを作成します。下位互換性のため、デフォルト値はmanualです。
'-w/–wait'オプションをbackupコマンドに追加し、バックアップが完了したと判断する前に、必要なすべてのWALファイルがアーカイブされるまでBarmanを待機させます。 –wait-timeoutオプションデフォルト0、タイムアウトなしも追加します。
Barman出力、特にbarman promote InfoSecからのパスワードを秘匿化する
最後の部分ファイルが現在の場所または存在する場合はレプリケーションスロットとアラインメントされていることを確認することにより、receive-wal –resetコマンドの堅牢性を向上させます。
ドキュメントの改善
バグ修正#
PGDATA GH-245内のテーブルスペースを除外する場合の間違った文字列マッチング操作。
WAL削除フックスクリプトGH-240のマイナー修正。
PostgreSQL接続生存性チェックGH-239を修正します。
2.92019-08-01#
重要な変更#
GUCオプションとシグナルファイルrecovery.signalおよびstandby.signalを介してリカバリとスタンバイ設定を管理する新しい方法をサポートすることにより、PostgreSQL 12を透過的にサポートします
–bwlimitコマンドラインオプションを追加して、バックアップおよびリカバリーコマンドの帯域幅制限を設定します
最新のバックアップがWAITING_FOR_WALSの場合、checkコマンドのWALアーカイブ障害を無視する
PostgreSQL 10以降でrecoverコマンドのリカバリターゲットログシーケンス番号を設定するために-target-lsnオプションを追加
–spool-dirオプションをbarman-wal-restoreに追加して、ユーザーがスプールディレクトリの場所をデフォルトから変更できるように、同じサーバー上に複数のPostgreSQLインスタンスがある場合の競合を回避できます Drazen Kacarに感謝します。
barman_xlog ディレクトリの名前をbarman_walに変更します
コマンド出力をJSONオブジェクトとしてエクスポートし、外部ツールやシステムとの統合を促進するためのJSON出力ライタMarcin Onufry Hlybinに感謝します。このリリースでは実験的。
バグ修正#
replication-statusは、スロットのないストリーマーを表示しない GH-222接続が生きていることを確認するとき「SELECT 1」クエリー、PostgreSQL接続GH-149のステータスを保存します。これにより、トランザクション内アイドルタイムアウトにより接続が終了し、同時バックアップが失敗する場合が修正されます。
2.82019-05-17#
重要な変更#
パッシブノードのインクリメンタルバックアップコピーのgeo冗長性でのreuse_backupのサポートを追加します
より汎用的なdateutil.parserの代わりにstrptimeを使用することにより、rsyncベースのコピーのパフォーマンスを向上させます #210
'-test'オプションをbarman-wal-archiveおよびbarman-wal-restoreに追加して、 Barmanサーバーとの接続を確認します
PostgreSQL 9.5がPGDGによってEOL宣言されると、将来のデフォルト値がclusive_backupからconcurrent_backupに変更されるため、backup_optionsが明示的に設定されていない場合に文句を言う
show-serverおよび診断コマンドの追加設定を表示しますarchive_timeout、data_checksums、hot_standby、max_wal_senders、max_replication_slots、およびwal_compression。
Barmanにbarman-cliプロジェクトをマージします
マイナー変更#
非アクティブなサーバーのcheck –nagiosのメッセージングを改善します。
recoveryコマンドを使用してリモートSSHコマンドをログに記録します。
replication-statusコマンドでの論理デコード接続を非表示にします。
このリリースは、Python 3を公式にサポートし、Python 2将来のリリースで廃止される可能性があります非推奨にします。
PostgreSQL 9.3以前は、 Barmanのこのリリースから非推奨になりました。スタンバイからのバックアップのサポートは、PostgreSQL 9.4以降、およびスタンバイからのWAL出荷に制限されています。詳細については、ドキュメントを参照してください。
バグ修正#
Python 3のget-walのエンコードエラーを修正しました。Jeff Janes、#221
exclude_and_protect_filterを修正しましたJeff Janes、#217
WALをリセットするときに偽のメッセージを削除します Jeff Janes、#215
プライマリに最初のバックアップより古いWALがある場合のsync-walsエラーを修正します。
synchronous_standby_names設定での二重引用符のサポート。
2.72019-03-12#
重要な変更#
パラレルバックアップ中のエラー処理を修正しました。以前は、コピー中の回復不能なエラーがbarmanの内部状態を破損する可能性があり、SIGTERMでのbarmanプロセスの手動killとPostgreSQLで実行中のバックアップの手動クリーンアップが必要でした。 GH#199
入力および出力GH#194およびGH#196でのUTF-8文字のサポートを修正しました。
地理的冗長性の最初の同期で履歴/バックアップ/部分ファイルを無視する GH#198 。
cronがブレークする原因となった地理的冗長性によるネットワーク障害を修正します GH#202 。
9.2より前のPostgreSQLのバックアップ検証を修正しました。
さまざまなドキュメントの修正。
2.62019-02-04#
重要な変更#
地理的冗長性のサポートを追加し、3つの新しいコマンドsync-info、sync-backup、sync-walsを導入します。地理的冗長性により、 BarmanサーバーはPostgreSQLサーバーの代わりに別のBarmanサーバーをデータソースとして使用できます。
barman-cliに含まれるbarman-wal-archiveスクリプトを使用して、 BarmanがPostgreSQLのarchive_commandを介してWALファイルを安全に受信できるput-walコマンドを追加します。
checkコマンドにANSIカラーサポートを追加します。
バグ修正#
空のWALディレクトリを使用してスタンバイでswitch-walを修正します。
wait_for_walメソッドでのアーカイバーロックを尊重します。
WAL圧縮検出アルゴリズムを修正します。
コンカレント停止バックアップエラーのcurrent_actionを修正します。
バックアップを検証するときに、ロックファイルビジーをエラーとして扱わないでください。
2.52018-10-23#
重要な変更#
PostgreSQL 11のサポートを追加
check-backupコマンドを追加して、ベースバックアップの一貫性に必要なWALファイルがアーカイブに存在することを確認します。 Barmanは、ベースバックアップの完了後に新しい状態WAITING_FOR_WALSを追加し、バックアップの先頭から最後までのすべてのWALファイルが存在することを確認するとDONEに設定します。このコマンドは、通常のcronメンテナンスジョブに含まれます。 Barmanは、 WAITING_FOR_WALS状態にあるバックアップを復旧しようとしているユーザーに通知するようになりました。
switch-xlog –archiveがスタンバイで動作できるようにしますアーカイブ部分のみ
バグ修正#
外部コマンド出力の読み取りデコードエラーを修正しました 問題174
WALストリーミングとスタンバイからのバックアップに関するドキュメントを修正します。
2.42018-05-25#
重要な変更#
バックアップ削除前/後のための標準および再試行フックスクリプトを追加します。
リカバリー前/後用の標準および再試行フックスクリプトを追加します。
WAL削除前/後のための標準のフックスクリプトと再試行フックスクリプトを追加します。
–standby-modeオプションをbarman recoveryに追加して、事前に生成されたrecovery.confにstandby_mode = onを追加します。
–target-actionオプションをbarman recoveryに追加し、ユーザーが事前に生成されたrecovery.confファイルにシャットダウン、一時停止、またはプロモートを追加できるようにします。
一貫性チェックによりポイントインタイムリカバリーの使いやすさを向上させますたとえば、復旧時間はバックアップの終了時間後です。
マイナーなドキュメントの改善。
Python 3.3のサポートを終了します。
バグ修正#
リモートのget_file_contentメソッドGitHub #151を修正し、インクリメンタルリカバリーが発生しないようにします。
コマンドのUnicodeの問題GitHub #143および#150。
pg_basebackup >= 10の場合、 –wal-method=noneを追加します GitHub #133 。
プロセスマネージャーモジュールがロックファイルのコンテンツを上書きするのを停止する
rsync出力の解析ルールを緩和する
ストリーミングディレクトリ内の消えたファイルを無視する
大文字と小文字を区別しないスロット名GitHub #170
DataTransferFailure.from_command_error()の復元力を高める GitHub #86
command()の名前をbarman_command()に変更しますGitHub #118
同期スタンバイ名リストが設定されていない場合は初期化する GitHub #111
正しいプレースホルダーの順序GitHub #138
レプリケーション接続の日付スタイルをisoに強制する
deleteコマンドでバックアップが削除されない場合、エラーを返します
is_power_of_two(None)を呼び出す際の例外を修正
ダウングレードした同期スタンバイの名前付けデバッグするメッセージGitHub #89
2.32017-09-05#
重要な変更#
PostgreSQL 10にサポートを追加します
PostgreSQL 10の名前の変更に従ってください。
switch-xlogコマンドの名前がswitch-walに変更されました。
コマンド出力では、xlogワードがWALに変更され、ロケーションがLSNに変更されました。
–network-compression / –no-network-compressionオプションをbarman recoveryに追加して、実行時のネットワーク圧縮を有効または無効にします
一貫した状態に到達したときにリカバリを終了するように、recoverコマンドに-target-immediateオプションを追加しますバックアップの終了、PostgreSQL 9.4から利用できます
barman statusコマンドを使用してクラスター状態マスターまたはスタンバイを表示します
ドキュメントの改善
バグ修正#
Parallel_jobs > 1での高いメモリ使用量を修正する #116
パラレルコピーを使用したエラーの処理の向上#114
システム例外を使用してバーマン診断をより堅牢にする
archive-walに.tmp拡張子を持つファイルを無視させます
2.22017-07-17#
重要な変更#
repair_jobsグローバル/サーバーオプションを使用してバックアップ/リカバリーのパラレルコピーを実装しますが、backupおよびrecoverコマンドの-jobsまたは-jランタイムオプションでオーバーライドされます。パラレルバックアップは、rsyncコピー方法でのみ使用できます。デフォルトでは、1に設定されています以前のバージョンとの動作の互換性のため。
PostgreSQL 8.4以降のカスタムWALサイズをサポートします。バックアップ時に、 BarmanはPostgreSQLからwal_segment_sizeおよびwal_block_size値を取得し、必要な計算を計算します。
checkコマンドを改善して、アーカイバー=オフの場合に受信ディレクトリが空であり、ストリーミング_アーカイバー=オフの場合にストリーミングディレクトリが空であることを確認します#80
external_configurationをbackup_optionsに追加して、ユーザーがPGDATADebian/Ubuntuインストールのデフォルト内にない場合、構成ファイルのバックアップを無視するようにBarmanに指示できるようにします。この場合、 Barmanは警告を表示しません。
バーマンリカバリーに-get-walおよび-no-get-walオプションを追加します
checkコマンドのmax_incoming_wals_queueグローバル/サーバーオプションを追加して、アーカイバーとストリーミング_アーカイバーの両方の着信WALディレクトリに指定された値より多くのファイルが含まれている場合に、ノンブロッキングエラーが返されるようにします。
ドキュメントの改善
ファイル形式の変更
backup.infoファイルの形式が変更されました。このため、 Barman 2.2で取得したバックアップは、以前のバージョンのBarmanで読み取ることができません。ただし、以前のバージョンで取得したバックアップは、 Barman 2.2で読み取ることができます。
バグ修正#
レプリケーションステータスがスタンバイに対して機能することを許可します
pg_basebackupを開始する前にPostgreSQL接続を閉じます #104、#108
特殊文字を含むパスを安全に処理する
ストリーミングソースのプロモーション後に.partialファイルをアーカイブする
リカバリー中にディレクトリを再帰的に作成する SF#44
xlog.dbロックの改善 #99
リカバリー中にtablespace_mapファイルを削除する #95
接続がドロップした場合はPostgreSQLに再接続します SF#82
2.12017-01-05#
重要な変更#
–archiveおよび-archive-timeoutオプションをswitch-xlogコマンドに追加します。
PostgreSQL 10#73の暫定サポート。
マイナーな追加
最後にアーカイブされたWAL情報を診断出力に追加します。
開始時間と実行時間をdeleteコマンドの出力に追加します。
バグ修正#
非アクティブなサーバーでのget-walコマンドの結果失敗
stable_archive_namesおよびstreaming_backup_nameオプションをグローバルにする #57
転送中に切り詰められたファイルによるrsync障害を修正する #64
圧縮履歴ファイルを正しく処理する #66
リカバリーの準備時にpg_tblspcのシンボリックリンクの逆参照を回避する #55
最後のアーカイブ失敗の比較を修正しました #40、#58
postgresql.confが書き込み可能でない場合のリカバリの失敗を回避する #68
replication-statusコマンドの出力を修正しました #56
pg_basebackupのようなバックアップからファイルを除外する #65、#72
テーブルスペースのコピー中に他のPostgresバージョンからディレクトリを除外する #74
再試行フックスクリプトオプションをグローバルにする
2.02016-09-27#
重要な変更#
backup_method=postgresを使用したPostgreSQLストリーミングレプリケーションプロトコルを介したpg_basebackupおよびbaseバックアップのサポート PostgreSQL 9.1以降が必要
slot_name構成オプションと、receive-walコマンドの-create-slotおよび-drop-slotオプションを介した物理レプリケーションスロットのサポートPostgreSQL 9.4以降が必要。 slot_nameが指定され、streaming_archiverが有効になっている場合、receive-walはpg_receivexlogと透過的に統合し、スロットが存在し、アクティブに使用されていることを確認します
PostgreSQL 9.6で導入された新しいバックアップAPIのサポート。これは、同時バックアップと、標準のrsyncバックアップ方法を使用してスタンバイサーバーからのバックアップを透過的に有効にします。同時バックアップは、pgespresso拡張機能を介してPostgreSQL 9.2〜9.5バージョンでのみ可能でした。新しいバックアップAPIは、将来的にpgespressoを冗長化します
適切に構成されている場合、 Barmanは、WALストリーミングの観点から同期スタンバイとして機能できます。マスター上のsynchronous_standby_names優先リストのstreaming_archiver_nameを適切に設定し、レプリケーションスロットのサポートを有効にすることにより、receive-walコマンドをPostgreSQL同期レプリケーションクラスターの一部にすることができ、RPO=0 PostgreSQL 9.5.5以降が必要です。
barman-wal-restoreは、Pythonで書かれた標準の堅牢なスクリプトで、クラスターのスタンバイサーバーのrecovery.confファイルでrestore_commandとして使用できます。 SSHを介してget-walを効率的に呼び出すことにより、WALファイルのリモート並列取得をサポートします。現在、barman-cliと呼ばれる別のプロジェクトとして利用できます。 get-walがrecovery_optionsにリストされている場合、リモートリカバリにはbarman-cliパッケージが必要です
check_timeoutグローバル/サーバー構成オプションを使用してcheckコマンドの最大実行時間を制御しますデフォルトで30秒
archive-wal実行によって処理されるWALセグメントの数を、それぞれ標準のアーカイバーとreceive-walからのWALセグメントのアーカイブを制御するarchiver_batch_sizeおよびstreaming_archiver_batch_sizeグローバル/サーバーオプションを介して制限します
チェック操作中のXLOGデータベースのロックを削除しました
show-backupコマンドはタイムラインを認識するようになり、特定のベースバックアップのリカバリターゲットとして使用できるタイムラインを適切に表示します。内部的に、 Barmanは.historyファイルを解析できるようになりました
コピー操作で問題が発生した場合の再試行メカニズムの背後にあるロジックを改善しました。これには、バックアップ rsyncおよびpostgresおよびリモートリカバリrsyncが含まれます
リモートコマンドおよび物理コピーインターフェイスを含むコードのリファクタリング
バグ修正#
ストリーミングからの.historyファイルを正しく処理する
PostgreSQL 9.1のレプリケーションステータスを修正する
送信および書き込み場所が利用できない場合のレプリケーションステータスを修正する
pg_receivexlog終了時の誤解を招くメッセージを修正
1.6.12016-05-23#
マイナー変更#
get-walコマンドに-peekオプションを追加して、Barmanのアーカイブから既存のWALファイルを検出します
PostgreSQLサーバーに接続しているストリーミングレプリケーションクライアントのステータスを監視するためのreplication-statusコマンドを追加します。 –targetオプションを使用すると、ユーザーは要求をホットスタンバイサーバーまたはWALストリーミングクライアントのみに制限できます
switch-xlogコマンドを追加して、WALファイルのPostgreSQLサーバーへのスイッチを要求します。 `-force」を介して、事前にチェックポイントを発行します
repairing_archiverが有効になっているときに適切なapplication_nameをpg_receivexlogに設定するstreaming_archiver_nameオプションを追加します PostgreSQL 9.3以降のみ
PostgreSQLの標準接続を使用して スーパーユーザー 特権を確認する #30
WALアーカイブが空でないことを確認します
サーバーがダウンしているときにマスターの`backup_label`を確認する
barman-wal-restore contribスクリプトを改善
バグ修正#
“failed tasks”チェックを致命的でないものとして扱う
get-walの`-x`オプションの名前を`-z`に変更します
archive_mode=alwaysのPostgreSQL 9.5のサポートを追加#32
必要に応じてPostgreSQL接続を適切に閉じる
pg_receive_xlogバージョン9.2のreceive-walを修正
1.6.02016-02-29#
重要な変更#
streaming_conninfoサーバーオプションを介したストリーミングレプリケーション接続のサポート
BarmanがPostgreSQLのネイティブストリーミングプロトコルを介してWALファイルを受信できるようにするstreaming_archiverオプションのサポート。 'on'に設定すると、pg_receivexlogに依存してWALデータを受信し、目標リカバリポイントを削減します。現在、WALストリーミングは追加機能です標準のログアーカイブが引き続き必要です。
streaming_archiverがオンのときに、WALストリーミングのpg_receivexlogをラップするreceive-walコマンドを実装します。ストリーミングプロトコルを介してWALファイルの受信を停止するには、 –stopオプションを追加します。 –resetオプションを追加して、ストリーミングステータスをリセットし、Postgresの現在のxlogからリスタートします。
cronコマンドを介したreceive-walコマンドの自動管理スタートアップと停止
path_prefix構成オプションのサポート
PostgreSQLのarchive_commandを介したログ配布を介して、特定のサーバーの継続的なWALアーカイブを有効にするアーカイバーオプション現在オンに固定されています
streaming_wals_directoryおよびerrors_directoryオプションのサポート
archive-walコマンドでのWAL重複の管理とcheckコマンドとの統合
Streaming_archiveが有効になっているときにpg_receivexlogがcheckコマンドで実行されているかどうかを確認する
失敗したバックアップがcheckコマンドに存在するかどうかを確認する
受信ディレクトリで圧縮されたWALファイルを受け入れます
pigzコンプレッサーのサポートを追加します Stefano Zacchiroli zack@upsilon.ccに感謝します
pygzipおよびpybzip2コンプレッサーを実装しますChristoph Moench-Tegeder christoph@2ndquadrant.deの初期アイデアに基づいています
バックアップの最後に暗黙的な復元ポイントを作成する
バーマンステータスのPostgreSQLデータファイルの現在のサイズ
PostgreSQL 9.5サーバーのarchive_mode=alwaysを許可しますChristoph Moench-Tegeder christoph@2ndquadrant.deに感謝します
PostgreSQLへの接続を担当するコードの完全なリファクタリング
サブプロセスに関するcronコマンドのメッセージを改善します
Python > = 3.3のネイティブサポート
行動の変化
archive-wal中にWALファイルのトラッシュを停止する commit:e3a1d16
バグ修正#
アトミックWALファイルのアーカイブ#9および#12
“-c”オプションをBarmanサブプロセスに伝播する#19
バックアップ削除中のバックアップIDの管理を修正する #22
archive-walの堅牢性とログメッセージを向上させる #24
パラメーターが欠落している場合のエラー処理を改善する
1.5.12015-11-16#
マイナー変更#
特定のサーバーでWALメンテナンス操作を実行する`archive-wal'コマンドのサポートを追加します
`cron`コマンドの「サーバーごとの」同時実行性のサポートを追加します
xlog.dbエラーの管理の向上
WALファイルの混合圧縮タイプのサポートを追加します SF.net#61
バグ修正#
リカバリ中のリテンションポリシーチェックを回避する
PostgreSQLバージョン<9.0での`wal_level`チェックを回避する #3
バックアップサイズの計算を修正する #5
1.5.02015-09-28#
重要な変更#
ユーザーが特定のサーバーのアーカイブからWALファイルを取得できるget-walコマンドのサポートを追加します
再試行フックスクリプト、 Barmanが成功するまで実行しようとする特別な種類のフックスクリプトのサポートを追加します
サーバーのアクティブな構成オプションを追加して、Falseに設定してサーバーを一時的に無効にします
ロックファイルの場所を変更するためのbarman_lock_directoryグローバルオプションを追加しますデフォルトでは`barman_home`
バックアップを開始する前にチェックの完全なスイートを実行し、1つ以上のチェックが失敗した場合にスキップします
実行中のバックアップの削除を禁止する
バックアップおよびリカバリー操作中にPostgreSQLサーバーのinclude指示子を分析する
Barmanの構成に競合するパスのチェックを追加します。サーバー内を一時的に無効にすることによると、サーバー間で任意のサーバーへのコマンドを拒否することにより。
wal_levelのチェックを追加
barman get-walと組み合わせて、スタンバイサーバーでrestore_commandとして使用するbarman-wal-restoreスクリプトを追加します
エラー管理のための標準の一貫したポリシーを実装する
バックアップのキャッシュ管理の向上
単体テストでの構成の管理の向上
チュートリアルとマニュアルページのソースがMarkdown形式に変換されました
Sphinxを介してコードドキュメントを追加
バックアップおよびrecoverコマンドの管理を担当するコードの完全なリファクタリング
バックアップの内部ディレクトリ構造の変更
copy_methodオプションを導入します現在rsyncに修正されています
バグ修正#
PostgreSQL構成ファイルで`=`を使用せずにオプションを管理する
タイムライン履歴ファイルの保存修正#70
SUSE Linuxでのrsyncの回避策クローズ#13および#26
postgresql.auto.confの危険な設定を無効にするクローズ#68
1.4.12015-05-05#
マイナー変更#
xlogdbファイルの管理が改善され、更新時に正しくfsyncされるようになりました。また、rebuild-xlogdbコマンドは一時的な新しいファイルを操作するようになり、完了するとメインファイルを上書きします。
dateutilモジュールの互換性のための単体テストを追加
PEP 440ルールに従ってBarmanバージョンを変更し、Python 3.4でのテストのサポートを追加しました
バグ修正#
最初のバックアップが空の場合にWALアーカイブが動作を停止する問題を修正したクローズ#64
Barmanリカバリーのエラー処理中の例外を修正するクローズ#65
バックアップ後、cronアクティビティをWALアーカイブのみに制限しますクローズ#62
backup deleteコマンドの堅牢性とエラー報告の向上クローズ#63
show-backupコマンドで報告されるWAL生産率の計算を修正します
1.4.02015-01-26#
重要な変更#
resume_backupグローバル/サーバーオプションを介したインクリメンタル ベースバックアップの実装。使用可能な値はoff 無効、デフォルト、copy 未変更のファイルが転送されないようにする、およびlink ハードリンクを介した重複排除を許可します。
再利用_backup=リンクを使用する場合、重複排除効果を保存および表示します。
check、show-server、およびstatusコマンドにpg_stat_archiver PostgreSQL 9.4の透過的なサポートを追加しました。
成功したバックアップの最後にWALメンテナンスを呼び出すことにより、管理が向上しました。
同時バックアップケースと排他的バックアップケースを区別することにより、未使用のWALファイルをゴミ箱に入れる方法を変更しました。
WAL統計計算のパフォーマンスの向上。
欠落しているpg_ident.confは、エラーではなく警告として扱います。
残りのyield呼び出しを削除することにより、出力レイヤーをリファクタリングしました。
rsyncがシステムパスにあることを確認します。
履歴ファイルをWAL管理に含めます。
より多くの単体テストを介したロバスト性の向上。
バグ修正#
バグ#55を修正しました ディレクトリでのfsync EINVALエラーを無視します。
修正されたバグ#58保持ポリシーの削除。
1.3.32014-08-21#
重要な変更#
管理者がカタログ内の最後のバックアップの最大保存期間を設定できる新しいグローバル/サーバーオプションであるlast_backup_max_ageを追加しました。定期的なバックアップ実行に関する問題を検出しやすくなります
2つのグローバル/サーバーオプション“basebackup_retry_times”と“basebackup_retry_sleep”を導入することにより、“barmanbackup”の堅牢性が向上しました。これらのオプションを使用すると、管理者は、失敗後のコピー操作の試行回数と、再試行までの待機秒数をそれぞれ指定できます。
以前のrsync呼び出しをいくつかのことに分割することにより、既存のディレクトリのrsyncを介したリカバリプロセスインクリメンタルリカバリーを改善しました-必要な場合にのみチェックサム制御を呼び出す
PostgreSQL 8.3のサポートを追加しました
マイナー変更#
コンマ区切りリスト値構成オプションのサポート
「barmanbackup」および「barman cron」中にバックアップファイルとWALファイルでfsync()を呼び出すことにより、バックアップの耐久性が向上しました
“barman check –nagios”のNagios出力の向上
「barman show-backup」でのWALの表示圧縮率
バーマンバックアップの実行中にキーボードの中断CTRL-Cが正しく処理される
バックアップの停止に関する障害のエラーメッセージの改善
単体テストの幅広いカバレッジ
バグ修正#
“barman recovery”中にリモートサーバーに“recovery.conf”をコピーします#45
プレ/ポストアーカイブフックスクリプトを正しく検出する #41
1.3.22014-04-15#
バグ修正#
PostgreSQL 8.4との非互換性を修正しましたクローズ#40、バージョン1.3.1で導入されたバグ
1.3.12014-04-14#
マイナー変更#
“pgespresso”拡張機能を使用するPostgreSQL 9.2および9.3サーバーの同時バックアップのサポートを追加しました。この機能は、“backup_options”構成オプションglobal/serverによって制御され、“concurrent_backup”に設定されている場合にアクティブになります。コンカレントバックアップにより、DBAはストリーミングレプリケートスタンバイから完全なバックアップ操作を実行できます。
Barmanシステムに関する重要な情報を出力する「barman promote」コマンドを追加しましたサポートと問題解決に非常に役立ちます
エラーメッセージと例外処理インターフェイスの改善
バグ修正#
PGDATAディレクトリ内で作成されたテーブルスペースのリカバリーのバグを修正しましたバージョン1.3.0で導入されたバグ
cronジョブで使用されるコマンドのクワイエットモード用、未処理の-qオプションのマイナーバグを修正しましたバージョン1.3.0で導入されたバグ
軽微なバグ修正とコードのリファクタリング
1.3.02014-02-03#
重要な変更#
新しいFieldListFileクラスinfofileモジュールを使用するようにバックアップメタデータのBackupInfoクラスをリファクタリングしました
Nagios NagiosOutputWriterクラスとの統合を促進するために、専用モジュールを使用するように出力レイヤーをリファクタリングしました
stdin / stderr / stdoutチャネルを分離するためにリファクタリングされたサブプロセス処理command_wrappersモジュール
リファクタリングされたフックスクリプト管理
構成クラスからロギング構成とユーザーIDの適用を抽出しました。
`pre_archive_script`および`post_archive_script`構成オプションを介して、WALファイルがアーカイブされる前後に実行されるフックスクリプトのサポート。
–immediate-checkpointコマンドオプションと`immediate_checkpoint`構成オプションを使用して即時チェックポイント機能を実装
`network_compression`構成オプションを介してリモートバックアップとリカバリーのネットワーク圧縮を実装しました#19
`rebuild-xlogdb`コマンドを実装しましたクローズ#27および#28
PGDATAディレクトリ内にあるテーブルスペースの重複排除を追加しました
リモートディレクトリの準備を実行することにより、ローカルリカバリと同じように動作するようにリモートリカバリコードをリファクタリングしましたリモートユーザーがリモートサーバーに対する適切な権限を持っていることを前提としています。
`barmanbackup'は、完全なバックアップを実行する前にサーバーディレクトリの作成を試行するようになりました#14
バグ修正#
バグ22の修正 テーブルスペースの再配置に関するドキュメントの改善
修正したバグ31'barman cron'は、ロックファイルのディレクトリのアクセス許可をチェックします
修正したバグ32 cronアクティビティ中のxlog.db読み取りアクセス
1.2.32013-09-05#
マイナー変更#
PostgreSQL 9.3のサポートを追加しました
“-target-name”復旧オプションのサポートを追加しました。これにより、以前にpg_create_restore_pointで指定した名前付けポイントに復元できますPostgreSQL 9.1以降のユーザーのみ
Python 3互換性の導入
バグ修正#
barman.lockfileでのflock()の使用に関するバグ27を修正しました Damon Snyder damonsnyder@users.sf.netに感謝します。
1.2.22013-06-24#
バグ修正#
Python 2.6の互換性を修正
1.2.12013-06-17#
マイナー変更#
バックアップおよびリカバリー操作のI/O帯域幅KBPS単位を制限できる「bandwidth_limit」グローバル/サーバーオプションを追加しました
テーブルスペースごとにバックアップおよびリカバリー操作のI/O帯域幅KBPS単位を制限できる「tablespace_bandwidth_limit」グローバル/サーバーオプションを追加しました
デフォルトの場所として/etc/barman/barman.confを追加しました
バグ修正#
FAILEDバックアップでのminimum_redundancyチェックのトリガーを回避します Jérôme Vanandruelに感謝します
1.2.02013-01-31#
重要な変更#
保持ポリシーを適用する方法を定義する「retention_policy_mode」グローバル/サーバーオプションを追加しました現在は「auto」のみ
サーバーに保持するバックアップの最小数を定義する“minimum_redundancy”グローバル/サーバーオプションを追加しました
冗長性たとえば リダンダンシー4またはリカバリウィンドウ例 3か月のリカバリウィンドウに基づいてリテンションポリシー管理を定義する「retention_policy」グローバル/サーバーオプションを追加しました。
ロギングインフラストラクチャ、“check”および“status”コマンドにリテンションポリシーのサポートを追加しました
“check”コマンドに最小冗長制御が統合されました
保持ポリシーの状態有効、廃止、および廃止の可能性を「show-backup」および「list-backup」コマンドに追加しました
`all`キーワードはサーバー名として禁止されました
–nagiosオプションを介して'check'コマンドにNagiosプラグイン出力の基本サポートを追加しました
Barmanには、argh => 0.21.2およびargcomplete-が必要になりました
マイナーなバグ修正
1.1.22012-11-29#
マイナー変更#
バグ修正#
修正したバグ18.削除中に見つからない場合は、不足しているWALファイルを無視します
1.1.12012-10-16#
バグ修正#
recoveryコマンドの回帰を修正します。
1.1.02012-10-12#
重要な変更#
`pre_backup_script`および`post_backup_script`構成オプションを介して`backup`コマンドの前後に実行されるフックスクリプトのサポート。
`backup`コマンドへの複数のサーバーの管理。 `barmanbackup all'は、構成されているすべてのサーバーを反復的にバックアップするようになりました。
postgresql.confファイルでファイルの場所オプションが定義されている場合、リカバリーに警告を追加します 問題10
宛先ディレクトリに`:`文字が含まれる場合クローズ#4または無効なテーブルスペース再配置ルールが渡された場合、recoverコマンドでフェイルファースト
排他的バックアップが既に実行されているためにpg_start_backup()呼び出しが失敗した場合、情報メッセージをレポートしますクローズ#8
バグ修正#
バグ9.2問題を修正しました pg_tablespace_location()
1.0.02012-07-06#
重要な変更#
異なるバージョンの複数のPostgreSQLサーバーのバックアップ。 PostgreSQL 8.4以降のバージョンがサポートされています。
安全なリモートバックアップのサポートSSHを介して
すべてのサーバーのバックアップのカタログの管理。ユーザーは新しいバックアップを簡単に作成、古いバックアップを削除、または復元できます。
事前定義されたgzipおよびbzip2またはカスタムの両方の圧縮/解凍フィルタを使用して、サーバーごとに構成できるWALファイルの圧縮
グローバルおよびサーバーごとの指示子を使用したINI構成ファイルのサポート。構成ファイルのデフォルトの場所は/etc/barman.confまたは~/.barman.confです。 `-c`オプションを使用すると、ユーザーは別のオプションを指定できます
ローカルデータベースを必要としない、ベースバックアップとWALセグメントの単純なインデックス作成
メンテナンスモード`cron`コマンドから呼び出されます。WALのアーカイブと圧縮、カタログの更新などの通常の操作を実行します。
Barmanで構成された特定のPostgreSQLサーバーの完全な物理ベースバックアップを取得する'backup'コマンドを追加しました
特定のバックアップのローカルリカバリを実行する`recover'コマンドを追加し、DBAがポイント・インタイムを指定できるようにします。 `recover`コマンドは、PGDATAディレクトリと、該当する場合はテーブルスペースの両方の再配置をサポートしています
バックアップのリモートリカバリーのための`-remote-ssh-command'オプションを`recover'コマンドに追加しました。リモートリカバリーは現在テーブルスペースの再配置をサポートしていません
barmanで構成されたすべてのアクティブサーバーをリストする`list-server'コマンドを追加しました
特定のサーバーの関連情報を表示する`show-server`コマンドを追加しました すべての構成オプションを含む
Postgresバージョン、現在のトランザクションID、archiveコマンドなどを含むサーバーの現在の状態に関する情報を表示する`status'コマンドを追加しました。
Barmanが必要とするすべてが正常に機能している場合に0を返す 'check'コマンドを追加しました
ベースバックアップのサイズ、関連するWALセグメントの合計サイズを含む、特定のサーバーで使用可能なすべてのバックアップをリストする`list-backup'コマンドを追加しました
開始時刻、サイズ、関連するWALセグメントの数とそのサイズなど、特定のバックアップの関連情報を表示する`show-backup'コマンドを追加しました。
カタログからバックアップを削除する`delete`コマンドを追加しました
単一のバックアップのすべてのファイルをリストする`list-files'コマンドを追加しました
RHEL 5/6のRPMパッケージ