newpage

#バックアップコマンド

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

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

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

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

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

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

これらのキーワードを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はバックアップにasWAITING_FOR_WALSというlabelを付けます。 cronコマンドは、欠落しているWALファイルがアーカイブされていることを引き続き確認し、バックアップにDONEのlabelを付けます。

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

Barman 2.10では、backupコマンドに-w / --waitオプションが導入されています。設定すると、BarmanはバックアップtoWAITING_FOR_WALSの状態を一時的に保存し、必要なすべてのWALファイルがアーカイブされるのを待ってから状態をDONEに設定し、バックアップ後のフックスクリプトを処理します。

delete

以下を使用して、指定されたバックアップを削除できます。

barman delete <server_name> <backup_id>

deleteコマンドは、shortcutを受け入れてバックアップを識別します。

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は、list-backupコマンドを使用して取得できます。

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

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

リモートリカバリ

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

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

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

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

  • Barmanは、システムの一時ディレクトリに少なくとも4GBのフリースペースを必要とします `get-wal <#get-wal>`__コマンドが指定されていない限り バーマン構成のrecovery_optionパラメータ。

  • Barmanとリモートホスト間のSSH接続には、** 公開キー交換認証メソッド

  • リモートユーザはディレクトリ構造を作成できる必要があります** 宛先ディレクトリのバックアップの。

  • リモートサーバに十分なフリースペースが必要です ベースバックアップとリカバリに必要なWALファイルを含むために。

表領域の再マッピング

Barmanは–tablespaceオプションを指定した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以降でのみ使用可能)。

相互に排他的な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(名前)で以前に作成された ファンクション[^ TARGET_NAME]

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

重要:> time、_ XID_、LSN経由のリカバリターゲットは、バックアップの終了後**に続く必要があります。バックアップのスタートから終了までの間の特定の時点にリカバリする場合は、カタログ内の以前のバックアップからリカバリする必要があります。

[^ TARGET_NAME]: PostgreSQL 9.1以降でのみ利用可能

[^ RECOVERY_TARGET_IMMEDIATE]: PostgreSQL 9.4以降でのみ利用可能

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

Barmanでは、target-tliオプションを使用して、リカバリのターゲットタイムラインを指定できます。タイムラインの概念は、このドキュメントの範囲を超えています。 _で述べたように_節「をスタート前に、」あなたは、PostgreSQLの文書で詳細を見つけることができます。

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

  • shutdown:リカバリターゲットに到達すると、 PostgreSQLがシャットダウンされます[^ TARGET_SHUTDOWN]

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

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

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

[^ TARGET_SHUTDOWN]: PostgreSQL 9.5以降でのみ利用可能

[^ TARGET_PAUSE]: PostgreSQL 9.1以降でのみ利用可能

[^ TARGET_PROMOTE]: PostgreSQL 9.5以降でのみ利用可能

上記の設定の詳細については、[リカバリターゲット設定に関するPostgreSQL文書] [ターゲット]を参照してください。

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

show-backup

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

barman show-backup <server_name> <backup_id>

show-backupコマンドは、shortcutを受け入れてバックアップを識別します。