AlloyDB Omni のデータは、PostgreSQL で動作する任意のデータベース バックアップ テクノロジーを使用して保護できます。たとえば、管理する Barman サーバーからの接続を許可するように AlloyDB Omni を構成できます。これにより、Barman サーバーは AlloyDB Omni サーバーに保存されているデータを継続的にバックアップできます。
Barman サーバーと AlloyDB Omni サーバーを連携するように構成したら、Barman コマンドを実行して、次のようなデータ保護と障害復旧タスクを実行できます。
- データのオンデマンド バックアップを作成する。
- バックアップ サーバーにデータ変更の同期 WAL ストリーミングを設定する。
- 特定のバックアップから復元する。
- ポイントインタイム復元を実行する。
Barman の操作の詳細については、Barman マニュアルをご覧ください。
始める前に
Barman で動作するように AlloyDB Omni を構成するには、次の条件を満たしている必要があります。
- 管理するサーバーに AlloyDB Omni がインストールされ、実行されている。 
- 別のサーバーに Barman がインストールされている。Barman をインストールしたサーバーが、TCP 経由で AlloyDB Omni サーバーと通信できる。 
Barman で動作するように AlloyDB Omni を構成する
Barman で動作するように AlloyDB Omni サーバーを準備するには、AlloyDB Omni をインストールしたサーバーで次のコマンドを実行します。
- 適切な権限を持つ - barmanデータベース ユーザーを作成します。- Docker- docker exec CONTAINER_NAME psql -h localhost -U postgres -c " CREATE USER barman; GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman; GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman; GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman; GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman; GRANT pg_read_all_settings TO barman; GRANT pg_read_all_stats TO barman; CREATE USER streaming_barman WITH REPLICATION; "- CONTAINER_NAMEは、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます。- Podman- podman exec CONTAINER_NAME psql -h localhost -U postgres -c " CREATE USER barman; GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman; GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman; GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman; GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman; GRANT pg_read_all_settings TO barman; GRANT pg_read_all_stats TO barman; CREATE USER streaming_barman WITH REPLICATION; "- CONTAINER_NAMEは、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます。
- DATA_DIR/pg_hba.confファイルで、- host all all all scram-sha-256行の前に次の行を追加します。- host all barman BARMAN_IP/32 AUTHN_METHOD host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD- 次のように置き換えます。 - DATA_DIR: AlloyDB Omni データ ディレクトリに使用されるファイル システムのパス。
- BARMAN_IP: Barman サーバーの IP アドレス。
- AUTHN_METHOD: AlloyDB for PostgreSQL サーバーが Barman サーバーに期待する PostgreSQL 認証方法。次のいずれかの値をおすすめします。- Barman サーバーがパスワードなしで認証できるようにするには、 - trustを使用します。
- Barman サーバーからのパスワードを必須にするには、 - scram-sha-256を使用します。
 
 
- DATA_DIR/postgresql.confファイルに次の行を追加します。- archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
- AlloyDB Omni サービスを再起動します。 - Docker- docker restart CONTAINER_NAME- Podman- podman restart CONTAINER_NAME- CONTAINER_NAMEは、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます。
- 次のコマンドを実行して、必要なパラメータがすべて適切に設定されていることを確認します。 - Docker- docker exec CONTAINER_NAME psql -h localhost -U postgres -c " SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'listen_addresses', 'wal_level') ORDER BY name;"- Podman- podman exec CONTAINER_NAME psql -h localhost -U postgres -c " SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'listen_addresses', 'wal_level') ORDER BY name;"- 出力は次のとおりです。 - name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
Barman バックアップ サーバーを設定する
AlloyDB Omni サーバーで動作するように Barman を設定して構成するには、Barman サーバーで次のコマンドを実行します。
- ストリーミング レプリケーション接続が機能していることを確認します。 - psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1- 出力は次のようになります。 - systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
- Barman が - barmanデータベース ユーザーとして AlloyDB Omni サーバーに接続できることを確認します。- psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"- DATABASE_IPは、AlloyDB Omni サーバーの IP アドレスに置き換えます。- 出力は次のようになります。 - Connected as: barman
- ニーズと設定に応じて Barman バックアップ サーバーを構成します。 - 構成には次の設定が含まれている必要があります。 - barmanユーザーとして AlloyDB Omni- postgresデータベースに接続できるように、- conninfoを設定します。
- streaming_barmanユーザーを使用するように- streaming_conninfoを設定します。
- Barman のドキュメントに参照して、WAL ストリーミングを有効にするために必要な他のディレクティブを構成します。
 - 次の最小限の完全な例では、Barman のドキュメントのストリーミング構成の例を変更しています。 - [CONFIGURATION_TAG] description = "Backup settings for my AlloyDB Omni server" conninfo = host=DATABASE_IP user=barman dbname=postgres streaming_conninfo = host=DATABASE_IP user=streaming_barman backup_method = postgres streaming_archiver = on slot_name = barman- 次のように置き換えます。 - CONFIGURATION_TAG:- barmanコマンドを実行するときにこのサーバー構成を識別する短いタグ。例:- omni
- DATABASE_IP: AlloyDB Omni サーバーの IP アドレス。
 
- barmanユーザーに切り替えます。- sudo su - barman
- barman receive-walコマンドを使用してレプリケーション スロットを作成し、データベース サーバーから WAL ストリームの受信を開始します。- barman receive-wal --create-slot CONFIGURATION_TAG- barman receive-wal CONFIGURATION_TAG &- CONFIGURATION_TAGは、前の手順で選択した構成タグに置き換えます。
これで、AlloyDB Omni サーバーで動作するように Barman が構成されました。レプリケーション ステータスの確認、手動バックアップの作成、その他のタスクの実行については、一般的なコマンドをご覧ください。
たとえば、手動バックアップを作成するには、barman backup コマンドを実行します。