このページでは、オープンソースのデータベース バックアップ サーバーである 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 認証鍵。復元されたデータベースを保持するのに十分な空きディスク容量がターゲット サーバーに存在すること。
特定のバックアップを使用して復元する
ターゲット サーバーで AlloyDB Omni を停止します。
Docker
docker stop CONTAINER_NAME
CONTAINER_NAME
は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます(例:my-omni
)。Podman
podman stop CONTAINER_NAME
CONTAINER_NAME
は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます(例:my-omni
)。Barman サーバーで、復元するバックアップを選択します。使用可能なバックアップを表示するには、
barman list-backups
コマンドを実行します。特定のバックアップの詳細を表示するには、barman show-backup
コマンドを実行します。選択したバックアップをターゲットの 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
)。
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
: 復元する時刻。日付と時刻の両方を指定する PostgreSQLtimestamp
形式(例:2024-02-06 00:00:00
)で指定します。DATA_PATH
: ターゲット サーバーのディレクトリのdata
サブディレクトリへのパス(例:/home/your-username/alloydb-data/data
)。