次のワークフローは、クローンの作成手順を示しています。
- Cloud Storage バックアップにアクセスするように pgbackrest.confファイルを構成します。
- pgBackRestコマンドを使用して、ソース バックアップにアクセスできることを確認します。
- pgBackRestコマンドを使用して、バックアップをターゲット サーバーに復元します。
始める前に
- ソース データベース クラスタのバックアップが保存されている Cloud Storage バケットのフルパスへのアクセス権を取得します。このパスは、ソース データベース クラスタの BackupPlanリソースの作成時に使用したパスと同じです。
- 単一サーバー ターゲットの AlloyDB Omni データベース クラスタが作成されます。Kubernetes への AlloyDB Omni のインストールの詳細については、AlloyDB Omni をインストールするをご覧ください。
- postgresユーザーとしてデータベースにログインしていることを確認します。
ターゲット サーバーで pgBackRest ファイルを構成する
ターゲット データベース クラスタからソース バックアップのある Cloud Storage バケットにアクセスできるように、pgBackRest ファイルを構成します。
- ターゲット サーバーで、 - alloydb-dataディレクトリに移動します。
- Cloud Storage に保存されているバックアップにアクセスできるように - pgBackRest構成ファイルを作成します。- $ cat << EOF > /backup/pgbackrest.conf [db] pg1-path=/mnt/disks/pgsql/data-restored pg1-socket-path=/tmp pg1-user=pgbackrest [global] log-path=/obs/pgbackrest log-level-file=info repo1-type=gcs repo1-gcs-bucket=GCS_SOURCE_BACKUP_BUCKET_NAME repo1-path=GCS_SOURCE_BACKUP_BUCKET_PATH repo1-storage-ca-file=/etc/ssl/certs/ca-certificates.crt repo1-retention-full=9999999 repo1-gcs-key-type=auto- 次のように置き換えます。 - GCS_SOURCE_BACKUP_BUCKET_NAME: ソース データベース クラスタに作成した Cloud Storage pgBackRestバケットの名前。これはバケットの完全な URL ではありません。バケット名の前にgs://を付けないでください。
- GCS_SOURCE_BACKUP_BUCKET_PATH: ソース データベース クラスタの Cloud Storage バケット内で、AlloyDB Omni Operator がバックアップを書き込むディレクトリのパス。パスは絶対パスで、/で始める必要があります。
 - repo1-gcs-key-typeは、インスタンスのサービス アカウントを使用するように- autoに設定されています。他のオプションの詳細については、GCS リポジトリ キータイプのオプションをご覧ください。
- GCS_SOURCE_BACKUP_BUCKET_NAME: ソース データベース クラスタに作成した Cloud Storage 
ターゲット サーバーでソース バックアップを確認する
ターゲット サーバーにログインし、pgBackRest コマンドを実行して、ターゲット サーバーでソース データベース クラスタのバックアップにアクセスできることを確認します。
Docker
sudo docker exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 infoPodman
sudo podman exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 infoCONTAINER_NAME は、新しい AlloyDB Omni コンテナの名前に置き換えます(my-omni-1 など)。
レスポンスの例を次に示します。
    stanza: db
      status: ok
      cipher: none
      db (current)
          wal archive min/max (15): 000000010000000000000002/00000001000000000000000D
          full backup: 20240213-231400F
              timestamp start/stop: 2024-02-13 23:14:00+00 / 2024-02-13 23:17:14+00
              wal start/stop: 000000010000000000000003 / 000000010000000000000003
              database size: 38.7MB, database backup size: 38.7MB
              repo1: backup set size: 4.6MB, backup size: 4.6MB
          incr backup: 20240213-231400F_20240214-000001I
              timestamp start/stop: 2024-02-14 00:00:01+00 / 2024-02-14 00:00:05+00
              wal start/stop: 00000001000000000000000D / 00000001000000000000000D
              database size: 38.7MB, database backup size: 488.3KB
              repo1: backup set size: 4.6MB, backup size: 84.2KB
              backup reference list: 20240213-231400F
レスポンスのタイムスタンプは、完全バックアップの復元または復元ウィンドウ内の特定の時点からの復元に使用されます。
ターゲット サーバーでバックアップを復元する
復元するバックアップまたは復元ポイントを特定したら、ターゲット サーバーで pgBackRest コマンドを実行します。これらのコマンドの詳細については、復元コマンドをご覧ください。
以下に、pgBackRest コマンドの例を示します。
- バックアップから復元する - pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --set=20240213-231400F --type=immediate --target-action=promote --delta --link-all --log-level-console=info
- 特定の時点から復元する - pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --target="2024-01-22 11:27:22" --type=time --target-action=promote --delta --link-all --log-level-console=info
データをターゲット サーバーにコピーする
復元コマンドが正常に完了したら、/mnt/disks/pgsql/data-restored 一時ディレクトリから現在の /alloydb-data/data ディレクトリにデータをコピーできます。
- ターゲット サーバーで、データベース サービスを停止します。
Docker
docker stop CONTAINER_NAMEPodman
podman stop CONTAINER_NAME- 現在のデータ ディレクトリの名前を別の名前に変更することをおすすめします。 - mv ~/alloydb-data/data ~/alloydb-data/data-old
- data-restored一時ディレクトリの名前を現在のデータ ディレクトリに変更します。- mv ~/alloydb-data/data-restored ~/alloydb-data/data
- postgresql.auto.confファイルの- pg1-path値を更新して、復元されたデータを読み込みます。
    vim ~/alloydb-data/data/postgresql.auto.conf
    # Verify postgresql.auto.conf.
    # Do not edit this file manually!
    # It will be overwritten by the ALTER SYSTEM command.
    # Recovery settings generated by pgBackRest restore on 2024-03-13 20:47:11
    restore_command = 'pgbackrest --config-path=/mnt/disks/pgsql --pg1-path=/mnt/disks/pgsql/data --repo=1 --stanza=db archive-get %f "%p"'
    recovery_target = 'immediate'
    recovery_target_action = 'promote'
    recovery_target_timeline = 'current'- ターゲット サーバーでデータベース サービスを起動します。 - Docker- docker start CONTAINER_NAME- Podman- podman start CONTAINER_NAME
データベース サービスが起動したら、プライマリ インスタンスに接続してクエリを実行し、バックアップからデータが復元されたことを確認できます。詳細については、単一サーバーの AlloyDB Omni に接続するをご覧ください。