Barman を使用して AlloyDB Omni クラスタを復元する

このページでは、オープンソースのデータベース バックアップ サーバーである Barman で作成されたバックアップを使用して AlloyDB Omni クラスタを復元する方法について説明します。

AlloyDB Omni は PostgreSQL と互換性があるため、Barman マニュアルで説明されているデータ復元コマンドと手法は AlloyDB Omni にも適用されます。このページでは、一般的な復元タスクの選択と、関連するコマンドの例を示します。

AlloyDB Omni で動作するように Barman を構成する方法については、AlloyDB Omni 用に Barman を設定するをご覧ください。

始める前に

AlloyDB Omni データを復元する前に、次のものが必要です。

  • ソース データベース サーバーと同じメジャー バージョンの AlloyDB Omni を実行しているターゲット データベース サーバー。AlloyDB Omni のインストールの詳細については、AlloyDB Omni をインストールするをご覧ください。

    ターゲット サーバーは、ソースサーバーと同じマシンにできます。

  • ターゲット サーバーにインストールされている rsync ユーティリティ。

  • ソースの AlloyDB Omni データベースの有効な Barman バックアップが 1 つ以上存在する Barman バックアップ サーバー。

  • Barman バックアップ サーバーとターゲット サーバー間の SSH 接続。

  • Barman サーバー上の barman ユーザーが、パスワードなしでターゲット サーバーで postgres ユーザーとして認証できるように設定された SSH 認証鍵。

  • 復元されたデータベースを保持するのに十分な空きディスク容量がターゲット サーバーに存在すること。

特定のバックアップを使用して復元する

  1. ターゲット サーバーで AlloyDB Omni を停止します。

    Docker

     docker stop CONTAINER_NAME

    CONTAINER_NAME は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます(例: my-omni)。

    Podman

     podman stop CONTAINER_NAME

    CONTAINER_NAME は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます(例: my-omni)。

  2. Barman サーバーで、復元するバックアップを選択します。使用可能なバックアップを表示するには、barman list-backups コマンドを実行します。特定のバックアップの詳細を表示するには、barman show-backup コマンドを実行します。

  3. 選択したバックアップをターゲットの AlloyDB Omni サーバーに復元するには、barman recover コマンドを実行します。

    コマンドを実行する際は、次の情報を含めます。

    次のコマンドは、AlloyDB Omni で barman recover を使用する例を示しています。

    barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID DATA_PATH

    次のように置き換えます。

    • TARGET_IP: ターゲット サーバーの IP アドレス。

    • TARGET_LABEL: Barman の構成ファイルでサーバーに割り当てたラベル。

    • BACKUP_ID: 前の手順で特定した、復元元のバックアップの ID(例: 20230810T210200)。

    • DATA_PATH: ターゲット サーバーのディレクトリの data サブディレクトリへのパス(例: /home/your-username/alloydb-data/data)。

  4. AlloyDB Omni ターゲット データベース サーバーで、サービスを開始します。

    Docker

    docker start CONTAINER_NAME

    Podman

    podman start CONTAINER_NAME

サービスが再起動したら、AlloyDB Omni サーバーに接続します。復元されたデータベースとデータが表示されます。

特定の時点に復元する

ポイントインタイム リカバリを実行するには、前のセクションと同じ手順を行います。ただし、1 つ変更があります。barman recover コマンドを実行するときに、Barman のポイントインタイム復元オプションのいずれかを指定する必要があります。

次のコマンドは、ポイントインタイム復元オプションを使用して AlloyDB Omni で barman recover を使用する例を示しています。

barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID --target-time="RESTORE_TIMESTAMP" DATA_PATH

次のように置き換えます。

  • TARGET_IP: ターゲット サーバーの IP アドレス。

  • TARGET_LABEL: Barman の構成ファイルでサーバーに割り当てたラベル。

  • BACKUP_ID: 前の手順で特定した、復元元のバックアップの ID(例: 20230810T210200)。

  • TARGET_TIMESTAMP: 復元する時刻。日付と時刻の両方を指定する PostgreSQL timestamp 形式(例: 2024-02-06 00:00:00)で指定します。

  • DATA_PATH: ターゲット サーバーのディレクトリの data サブディレクトリへのパス(例: /home/your-username/alloydb-data/data)。