Backup commands

バックアップコマンドは、Barmanのバックアップカタログに既に存在するバックアップに対して直接機能するコマンドです。

注釈

バックアップIDは barman list-backups <server_name> で取得できることを忘れないでください

バックアップIDのショートカット

Barmanでは、特別なキーワードを使用して特定のバックアップを識別することができます。

  • last/latest :カタログ内の最新のバックアップを識別します

  • first/oldest :カタログ内の最も古いバックアップを識別します

  • last-failed :カタログ内の最新の失敗したバックアップを識別します

これらのキーワードをBarmanコマンドで使用すると、サーバーのバックアップの正確なIDを知らなくてもアクションを実行できます。例、次を発行できます。

barman delete <server_name> oldest

カタログで使用可能な最も古いバックアップを削除し、ディスクスペースを再利用します。

check-backup

バージョン2.5以降、 check-backup コマンドを使用して、フルバックアップの一貫性に必要なすべてのWALファイルが barman によって正しくアーカイブされていることを確認できます。

barman check-backup <server_name> <backup_id>

重要

このコマンドは、 cron および backup オペレーションの終了時に自動的に呼び出されます。これは、通常の状況では、実行必要がないことを意味します。

バックアップのスタートから終了までの1つ以上のWALファイルがまだアーカイブされていない場合、 barman はバックアップに WAITING_FOR_WALS のlabelを付けます。 cron コマンドは、欠落しているWALファイルがアーカイブされていることを引き続き確認し、バックアップに DONE のlabelを付けます。

バックアップの最後に最初に必要なWALファイルが見つからない場合、そのようなバックアップは FAILED としてマークされます。したがって、バックアップオペレーションを実行する前に、特にスタンバイサーバからバックアップする場合、WALアーカイビングが(ストリーミングまたは archive_command を介して)適切に機能していることを確認することが重要です。

delete

特定のバックアップを削除するには:

barman delete <server_name> <backup_id>

delete コマンドは、 バックアップIDのショートカット を受け入れてバックアップを識別します。

keep

サーバーの保持ポリシーを超えて保持したいバックアップがある場合は、次の方法でアーカイブバックアップをmakeできます。

barman keep <server_name> <backup_id> [--target TARGET, --status, --release]

TARGET の可能な値は次のとおりです。

  • full :バックアップはいつでも最新のポイントにリカバリするために使用できます 時間。これを達成する保証に、Barmanは、 バックアップと後続のすべてのWALの一貫性。

  • standalone :バックアップは、サーバーをその バックアップが取られたときの状態。BarmanはWALのみを保持します バックアップの一貫性を保証に必要です。

--status オプションが提供されている場合、 Barmanはバックアップのアーカイブステータスをレポートします。これは、アーカイブバックアップの場合は full または standalone のリカバリターゲットになり、アーカイブとしてフラグが設定されていないバックアップの場合は nokeep になります。

--release オプションが提供されている場合、 Barmanはこのバックアップから保持フラグをリリースします。これにより、アーカイブステータスが削除され、直接または保持ポリシーによって削除できるmakeになります。

バックアップがアーカイブバックアップとしてフラグ付けされると、 Barmanの動作は次のように変更されます。

  • barman delete を使用してIDでそのバックアップを削除しようとすると失敗します。

  • 保持ポリシーは、そのバックアップを OBSOLETE および したがって、 barman cron はそのバックアップを削除しません。

  • そのバックアップに必要なWALは永久に保持されます。もし 指定されリカバリターゲットは full であり、その後のすべてのWALも* 保持されます。

これは、 barman keep <server_name> <backup_id> --release でkeepフラグを削除することで元に戻すことができます。

警告

standalone アーカイブバックアップがサーバーの保持ポリシーで不要になると、 barman cron はそのバックアップと次の最新のバックアップのbegin_wal値の間のWALを削除します。これは、ターゲットを full から standalone に変更することは安全ですが、最新の時点へのリカバリに必要なWALがまだ維持される保証がないため、ターゲットを standalone から full に変更することは*安全*ではありません利用できます。

list-files

以下を使用して、特定のバックアップのファイル(ベースバックアップと必要なWALファイル)をリストできます。

barman list-files [--target TARGET_TYPE] <server_name> <backup_id>

--target TARGET_TYPE オプションを使用すると、特定のバックアップのリストのコンテンツを選択できます。

TARGET_TYPE の可能な値は次のとおりです。

  • data :データファイルをリストします

  • standalone :必要なWALを含むベースバックアップファイルをリストします ファイル

  • wal :ベースバックアップの開始から 次のスタート(またはログの終了まで)

  • full : data + wal と同じ

TARGET_TYPE のデフォルト値は standalone です。

重要

list-files コマンドは外部ツールとの対話を容易にするため、 Barmanをアーカイビング手順に統合するのに非常に役立ちます。

recover

backup コマンドを使用してバックアップを実行した後、 recover コマンドを使用してサーバー全体を回復します。

これは、次のようなコマンドを発行することで達成されます。

barman@backup$ barman recover <server_name> <backup_id> /path/to/recover/dir

重要

PostgreSQLインスタンスが実行されているターゲットデータディレクトリを使用して recover コマンドを発行しないでください。その場合は、リカバリを発行する前に必ず停止してください。これは、テーブルスペースディレクトリにも適用されます。

リカバリの実行が終了すると、選択したバックアップがローカルにリカバリされ、宛先パスにはPostgreSQLインスタンスのスタートに使用できるデータディレクトリが含まれます。

重要

ユーザ barman としてこのコマンドを実行すると、データベーススーパーユーザになります。

バックアップの特定のIDは、 :ref:``list-backups`<list-backups>` コマンドを使用して取得できます。

重要

Barmanは現在、PGDATA内のシンボリックリンクを追跡しません(pg_tblspc内のテーブルスペースを除く)。システム管理者は、シンボリックリンクを追跡し、オリジナルの場所に復元する必要がある場合に備えて、それらを災害リカバリ計画/手順に追加することをお勧めします。

リカバリコマンドには、コマンドの動作を変更するいくつかのオプションがあります。

リモートリカバリ

リカバリコマンドの呼び出しに --remote-ssh-command <COMMAND> オプションを追加します。これを行うと、提供されたコマンドを使用してリモートホストに接続し、 Barmanがリモートサーバでコピーを実行できるようになります。

注釈

リモートホストでリカバリを実行するには、 postgres ユーザを使用することをお勧めします。

重要

PostgreSQLインスタンスが実行されているターゲットデータディレクトリを使用して recover コマンドを発行しないでください。その場合は、リカバリを発行する前に必ず停止してください。これは、テーブルスペースディレクトリにも適用されます。

リモートリカバリの既知の制限は次のとおりです。

  • Barmanは、システムの一時ディレクトリに少なくとも4GBのフリースペースを必要とします

    :ref:``get-wal`<get-wal>` コマンドが指定されていない限り Barman構成の

    recovery_option パラメータ。

  • Barmanとリモートホスト間のSSH接続には、* 公開キー交換認証メソッド *リモートユーザはディレクトリ構造を作成できる必要があります* 宛先ディレクトリのバックアップの。 *リモートサーバに十分なフリースペースが必要です ベースバックアップとリカバリに必要なWALファイルを含むために。

表領域の再マッピング

Barmanは、– テーブルスペースオプションを指定したrecoverコマンドを使用して、1つ以上のテーブルスペースを自動的に再マッピングできます。このオプションは、 NAME:DIRECTORY フォーマットを使用して、引数として値のペアを受け入れます。

  • NAME はテーブルスペースの識別子です

  • DIRECTORY は、テーブルスペースの新しい宛先パスです

宛先ディレクトリが存在しない場合、 Barmanはそれを作成しようとします(必要な許可がある場合)。

ポイントインタイムリカバリ

BarmanはPostgreSQLのPoint-in-Time Recovery(PITR)をラップするため、タイムスタンプ、復元label、またはトランザクションIDのいずれかでリカバリターゲットを指定できます。

重要

特定のバックアップの最も早いPITRは、ベースバックアップ自分自身の終わりです。バックアップのスタートから終了までの任意の時点で回復する場合は、以前のバックアップを使用する必要があります。 Barman 2.3からは、 --target-immediate オプション( PostgreSQL 9.4以降でのみ使用可能)を使用して、一貫性に達したときにリカバリを終了できます。

リカバリターゲットは、次の相互に排他的なオプションのいずれかを使用して指定できます。

  • --target-time TARGET_TIME :タイムスタンプを指定します

  • --target-xid TARGET_XID :トランザクションIDを指定します

  • --target-lsn TARGET_LSN :ログシークエンス番号(LSN)を指定するには- PostgreSQL 10以降が必要です

  • --target-name TARGET_NAME :名前付けリストアポイントを指定します pg_create_restore_point(名前)で以前に作成された ファンクション

    1

  • --target-immediate :一貫性のある状態に達するとリカバリが終了します (つまり、ベースバックアッププロセスの終了です) 2

重要

バックアップの終了後の時間、XID、LSN .. IMPORTANT:: を介したリカバリターゲット。バックアップのスタートと終了の間の時点まで回復する場合は、カタログ内の以前のバックアップから回復する必要があります。

--exclusive オプションを使用して、リカバリターゲットの直前または直後に停止するかどうかを指定できます。

Barmanでは、 target-tli オプションを使用して、リカバリのターゲットタイムラインを指定できます。タイムラインの概念はこのドキュメントの範囲を超えています; 「スタートする前に」セクションで説明したように、 PostgreSQLの文書で詳細を確認できます。

Barman 2.4は、 --target-action オプションのサポートを導入し、次の値を受け入れます。

  • shutdown :リカバリターゲットに到達すると、 PostgreSQLはシャットダウンされます 3

  • pause :リカバリターゲットに到達すると、 PostgreSQLは一時停止状態で開始されます ユーザーがインスタンス 4 を検査できる状態

  • promote :リカバリターゲットに到達すると、 PostgreSQLはリカバリを終了します マスタ 5 として昇格されます

重要

デフォルトでは、ターゲットアクションは定義されていません(後方互換性のため)。 --target-action オプションでは、Point In Time Recoveryターゲットを指定する必要があります。

上記の設定の詳細については、 PostgreSQL documentation on recovery target settings を参照してください。

また、 Barman 2.4は、 recover コマンドに --standby-mode オプションを追加します。指定されている場合、 standby.signal ファイル( PostgreSQL 12から)を作成するか、生成されたリカバリ構成に standby_mode = on を追加することにより、リカバリされたインスタンスをスタンバイとして適切に構成します。スタンバイモードの詳細については、 PostgreSQLの文書を参照してください。

BarmanサーバーからWALを取得する

barman recover コマンドは、オプションで、リカバリ中にBarmanからWALをフェッチするようにPostgreSQLを設定できます。これは、 get-wal section で説明されているように、 recovery_options グローバル/サーバー構成オプションを 'get-wal' に設定することで有効になります。 recovery_options が設定されていないか空の場合、 Barmanは代わりに barman recover コマンドの実行中にリカバリに必要なWALをコピーします。

--get-wal および --no-get-wal オプションを使用して、 recovery_options で定義された動作をオーバーライドできます。 --get-wal を barman recover と組み合わせて使用して、 BarmanサーバーからのWALのフェッチを有効にします。あるいは、 --no-get-wal を使用して無効にします。

show-backup

以下を使用して、特定のサーバーの特定のバックアップに関するすべての利用可能な情報を取得できます。

barman show-backup <server_name> <backup_id>

show-backup コマンドは、 バックアップIDのショートカット を受け入れてバックアップを識別します。

1

PostgreSQL 9.1以降でのみ利用可能

2

PostgreSQL 9.4以降でのみ利用可能

3

PostgreSQL 9.5以降でのみ利用可能

4

PostgreSQL 9.1以降でのみ利用可能

5

PostgreSQL 9.5以降でのみ利用可能