pgBackRest を使用してデータをバックアップして復元する

ドキュメントのバージョンを選択してください。

データを保護するために、AlloyDB Omni は宣言型マニフェストを使用してデータの自動バックアップと復元を行います。AlloyDB Omni オーケストレーターは、alloydbctl と Ansible を使用して、これらのマニフェスト構成を適用し、Cloud Storage、標準の Amazon S3 バケット、または MinIO などの S3 準拠ソフトウェアへのバックアップを自動化します。

AlloyDB Omni の継続的なバックアップと復元を有効にするには、データベース クラスタごとにバックアップ プランを作成する必要があります。バックアップは、BackupPlan リソースで定義されたバックアップ スケジュールに基づいて行われます。復元には、Backup リソースまたはリカバリ ウィンドウ内の任意のタイムスタンプ(秒単位)を使用できます。

AlloyDB Omni は、マニフェストを介して自動バックアップと復元を管理します。

  • BackupPlan: 各データベース クラスタには、バックアップ ティア間で構成とスケジュールが異なる 1 つ以上の BackupPlan マニフェストを設定できます。
  • Backup: BackupPlan マニフェストに基づいて、フル バックアップ、差分バックアップ、増分バックアップを開始します。
  • Restore: 特定のバックアップまたは特定の時点を使用して、データベース クラスタのインプレース復元を開始します。

始める前に

バックアップ プランを設定して構成する前に、次のことを確認してください。

  • バックアップの保存場所: AlloyDB Omni は、次のいずれかのストレージ オプションにバックアップを保存します。

    • Cloud Storage: Cloud Storage バケット。バケットの作成方法については、バケットを作成するをご覧ください。
    • Amazon S3: Amazon S3 バケット。S3 バケットの作成方法については、バケットを作成するをご覧ください。
    • S3 準拠ストレージ: MinIO などの S3 準拠ソフトウェアのバケット。MinIO バケットの作成方法については、MinIO のドキュメントをご覧ください。
  • 認証情報: ストレージ オプションで Amazon S3、MinIO、特定のサービス アカウントを使用する Cloud Storage などの認証鍵が必要な場合は、バックアップ プランを作成する前に、これらの認証情報を含む Secret リソースを作成する必要があります。手順については、ストレージを認証する Secret リソースを作成するをご覧ください。

ストレージを認証する Secret リソースを作成する

使用するストレージで認証が必要な場合は、バックアップ プランを作成する前に Secret リソースを作成する必要があります。

Cloud Storage の Secret リソースを作成する

  1. バックアップをバケットに追加するためのサービス アカウントを作成します。
  2. バケットのサービス アカウントに roles/storage.objectAdmin Identity and Access Management ロールを付与します。
  3. JSON 形式でサービス アカウント キーを生成します。
  4. ダウンロードした JSON キーファイルの内容を base64 でエンコードします。base64 -w 0 を実行するか、エンコードされたテキストが 1 行の連続した行であることを確認します。
  5. Secret リソース マニフェストを作成します。data セクションのキー名は key.json にする必要があります。

    Secret:
      metadata:
        name: SECRET_NAME
      spec:
        type: Opaque
        data:
          key.json: "BASE64_ENCODED_JSON_KEY"
    

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

    • SECRET_NAME: Secret リソースの名前。
    • BASE64_ENCODED_JSON_KEY: サービス アカウントの JSON キーファイルの Base64 エンコードされたコンテンツ。

S3 または S3 準拠ストレージの Secret リソースを作成する

  1. S3 アクセスキー ID を Base64 でエンコードします。
  2. S3 シークレット アクセスキーを Base64 でエンコードします。
  3. Secret リソース マニフェストを作成します。data セクションのキー名は access-key-id と access-key にする必要があります。

    Secret:
      metadata:
        name: SECRET_NAME
      spec:
        type: Opaque
        data:
          access-key-id: "BASE64_ENCODED_ACCESS_KEY_ID"
          access-key: "BASE64_ENCODED_SECRET_ACCESS_KEY"
    

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

    • SECRET_NAME: Secret リソースの名前。
    • BASE64_ENCODED_ACCESS_KEY_ID: Base64 エンコードされた S3 アクセスキー ID。
    • BASE64_ENCODED_SECRET_ACCESS_KEY: Base64 でエンコードされた S3 シークレット アクセスキー。

Secret リソースを適用する

BackupPlan マニフェストを適用する前に、Secret リソース マニフェストを適用します。Secret リソース マニフェストは、次のいずれかの方法で適用できます。

alloydbctl

alloydbctl を使用して Secret リソース マニフェストを適用するには、次のコマンドを実行します。

alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "SECRET_MANIFEST"

次の変数を置き換えます。

Ansible

Ansible を使用して Secret リソース マニフェストを適用する手順は次のとおりです。

  1. Secret リソース マニフェストのプレイブックを作成します。

    - name: Create Secret
      hosts: localhost
      become: true
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.backup
    

    次の変数を置き換えます。

    • ANSIBLE_USER: Ansible が AlloyDB Omni ノードにログインするために使用する OS ユーザー。
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用して AlloyDB Omni ノードに接続するために使用する秘密鍵。
  2. Secret リソース マニフェストを適用します。

    ansible-playbook SECRET_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="SECRET_MANIFEST"

    次の変数を置き換えます。

    • SECRET_PLAYBOOK: Secret リソース マニフェスト用に作成したプレイブックのパス。
    • DEPLOYMENT_SPEC_PATH: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。
    • SECRET_MANIFEST: 作成した Secret リソース マニフェストのパス。

バックアップ プランの作成

  1. ストレージ オプションの形式を使用して BackupPlan マニフェストを作成します。

    Cloud Storage

    gcsOptions 項目は必須です。

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            secretRef:
              name: SECRET_NAME
        backupRetainDays: RETAIN_DAYS
        backupSchedules:
          full: "FULL_SCHEDULE"
          differential: "DIFF_SCHEDULE"
          incremental: "INC_SCHEDULE"
    

    次の変数を置き換えます。

    • BACKUP_PLAN_NAME: BackupPlan マニフェストの名前。例: my-backup-plan-1

    • DBCLUSTER_NAME: クラスタを作成するで定義したデータベース クラスタの名前。

    • BUCKET_NAME: 作成した Cloud Storage バケットの名前。

    • BUCKET_PATH: バックアップの書き込み先となる Cloud Storage 内のディレクトリのパス。/ で始まる絶対パスを指定する必要があります。例: /backups

    • SECRET_NAME (省略可): 認証鍵を保存する Secret リソースの名前。

    • RETAIN_DAYS (省略可): バックアップが自動的に削除されるまでのバックアップの保持日数。

    • FULL_SCHEDULE (省略可): フル バックアップの cron スケジュール式。例: 0 2 * * *

    • DIFF_SCHEDULE(省略可): 差分バックアップの cron スケジュール式。例: 0 2 * * *

    • INC_SCHEDULE (省略可): 増分バックアップの cron スケジュール式。例: 0 2 * * *

    Amazon S3 または S3 準拠

    s3Options 項目は必須です。

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: S3
          s3Options:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            endpoint: ENDPOINT_URL
            region: REGION
            secretRef:
              name: SECRET_NAME
        backupRetainDays: RETAIN_DAYS
        backupSchedules:
          full: "FULL_SCHEDULE"
          differential: "DIFF_SCHEDULE"
          incremental: "INC_SCHEDULE"
    

    次の変数を置き換えます。

    • BACKUP_PLAN_NAME: BackupPlan マニフェストの名前。例: my-backup-plan-1

    • DBCLUSTER_NAME: クラスタを作成するで定義したデータベース クラスタの名前。

    • BUCKET_NAME: 作成した S3 バケットの名前。

    • BUCKET_PATH: バックアップの書き込み先となる S3 バケット内のディレクトリのパス。/ で始まる絶対パスを指定する必要があります。例: /backups。

    • ENDPOINT_URL: MinIO などの S3 準拠ソフトウェアに接続するためのカスタム エンドポイント URL。例: http://minio.example.com:9000Amazon S3 バケットの場合、エンドポイント URL を指定する必要はありません。

    • REGION_(省略可): ストレージ バケットのリージョン。標準の Amazon S3 バケットまたは S3 準拠のソフトウェアに接続する場合に必要です。この場合、リージョン検証が適用されます。

    • SECRET_NAME: 以前に作成した Secret リソースへの参照。このリソースには ACCESS_KEY_ID と SECRET_ACCESS_KEY が含まれています。

    • RETAIN_DAYS (省略可): バックアップが自動的に削除されるまでのバックアップの保持日数。

    • FULL_SCHEDULE (省略可): フル バックアップの cron スケジュール式。例: 0 2 * * *

    • DIFF_SCHEDULE(省略可): 差分バックアップの cron スケジュール式。例: 0 2 * * *

    • INC_SCHEDULE (省略可): 増分バックアップの cron スケジュール式。例: 0 2 * * *

  2. 次のいずれかの方法でバックアップ プランを適用します。

    alloydbctl

    1. BackupPlan リソースを適用します。

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      次の変数を置き換えます。

    2. BackupPlan マニフェストのステータス フィールド status.phase が Ready であることを確認します。マニフェストの準備ができていない場合は、次のようになるまで待ちます。

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. BackupPlan マニフェストのプレイブックを作成します。

      - name: BACKUP_PLAN_PLAYBOOK_NAME
        hosts: localhost
        vars:
          ansible_user: ANSIBLE_USER
          ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
        roles:
          - role: google.alloydbomni_orchestrator.backup
      

      次の変数を置き換えます。

      • BACKUP_PLAN_PLAYBOOK_NAME: Ansible プレイブックの名前。例: My BackupPlan次のステップで必要になるため、プレイブックのパスをメモしておきます。

      • ANSIBLE_USER: Ansible が AlloyDB Omni ノードにログインするために使用する OS ユーザーの名前。

      • ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用して AlloyDB Omni ノードに接続するために使用する秘密鍵。

    2. BackupPlan リソースを適用します。

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      次の変数を置き換えます。

      • BACKUP_PLAN_PLAYBOOK: BackupPlan マニフェスト用に作成したプレイブックのパス。

      • DEPLOYMENT_SPEC_PATH: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。

      • BACKUP_PLAN_MANIFEST: 前に作成した BackupPlan マニフェストのパス。

    3. まだ作成していない場合は、status.yaml ハンドブックを作成します。プレイブックの作成方法については、ステータスを表示してバックアップ リソースを一覧表示するをご覧ください。

    4. BackupPlan マニフェストのステータス フィールド status.phase が Ready であることを確認します。マニフェストの準備ができていない場合は、次のようになるまで待ちます。

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

バックアップ プランを更新する

バックアップ プランを更新してバックアップ スケジュールを変更したり、保持期間を変更したり、スケジュールされたバックアップを一時停止したりするには、BackupPlan マニフェストを変更してから再適用します。

  1. バックアップ プランを作成するで作成した BackupPlan マニフェストを開きます。

  2. 更新対象の項目を変更します。

    • バックアップ スケジュールを更新するには、backupSchedules の cron 式を変更します。
    • 保持期間を更新するには、backupRetainDays を変更します。
    • スケジュール設定されたバックアップを一時停止するには、spec セクションに paused フィールドを追加し、true に設定します。バックアップを再開するには、フィールドを false に設定するか、フィールドを削除します。

    たとえば、次の例では、保持日数を 30 に更新し、full スケジュールと differential スケジュールを変更し、incremental スケジュールを追加して、バックアップ プランを一時停止します。

    BackupPlan:
      metadata:
        name: BACKUP_PLAN_NAME
      spec:
        dbclusterRef: DBCLUSTER_NAME
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_NAME
            key: BUCKET_PATH
            secretRef:
              name: SECRET_NAME
        backupRetainDays: 30
        backupSchedules:
          full: "0 4 * * *"
          differential: "0 0 * * 0"
          incremental: "0 12 * * *"
        paused: true
    
  3. 次のいずれかの方法で、更新したバックアップ プランを適用します。

    alloydbctl

    1. BackupPlan リソースを適用します。

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      次の変数を置き換えます。

    2. BackupPlan マニフェストのステータス フィールド status.phase が Ready であることを確認します。マニフェストの準備ができていない場合は、次のようになるまで待ちます。

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. バックアップ プランを作成するで作成したハンドブックを使用して、更新した BackupPlan リソースを適用します。

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      次の変数を置き換えます。

      • BACKUP_PLAN_PLAYBOOK: BackupPlan マニフェスト用に作成したプレイブックのパス。

      • DEPLOYMENT_SPEC_PATH: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。

      • BACKUP_PLAN_MANIFEST: 変更した BackupPlan マニフェストのパス。

    2. まだ作成していない場合は、status.yaml ハンドブックを作成します。プレイブックの作成方法については、ステータスを表示してバックアップ リソースを一覧表示するをご覧ください。

    3. BackupPlan マニフェストのステータス フィールド status.phase が Ready であることを確認します。マニフェストの準備ができていない場合は、検証前に準備が整うまで待ちます。

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

バックアップ プランを削除する

バックアップ プランを削除するには、次のいずれかの方法を使用します。

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME

次の変数を置き換えます。

Ansible

  1. BackupPlan マニフェストを削除するプレイブックを作成します。

    - name: BACKUP_PLAN_DELETE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.delete
    

    次の変数を置き換えます。

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: Ansible プレイブックの名前。

    • ANSIBLE_USER: Ansible が AlloyDB Omni ノードにログインするために使用する OS ユーザー。

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用して AlloyDB Omni ノードに接続するために使用する秘密鍵。

  2. ansible-playbook を実行して、BackupPlan マニフェストを削除します。

    ansible-playbook BACKUP_PLAN_DELETE_PLAYBOOK_NAME -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
      -e resource_name=BACKUP_PLAN_NAME

    次の変数を置き換えます。

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: 前の手順で BackupPlan マニフェストを削除するために作成したプレイブックのパス。

    • DEPLOYMENT_SPEC_PATH: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。

    • BACKUP_PLAN_NAME: 削除する BackupPlan マニフェストの名前。

バックアップの作成

バックアップを作成して開始するには、次のいずれかの方法を使用します。

alloydbctl

  1. 次の形式で Backup マニフェストを作成します。

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    次の変数を置き換えます。

    • BACKUP_NAME: Backup マニフェストの名前。例: my-backup-1

    • BACKUP_PLAN_NAME: 前の手順で作成した BackupPlan マニフェストの名前。例: my-backup-plan-1

    • DBCLUSTER_NAME: クラスタを作成するで定義したデータベース クラスタの名前。

    • type(省略可): バックアップ実行タイプ。full、diff、incr のいずれかに設定できます。デフォルトは full です。

  2. Backup マニフェストを適用します。

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_MANIFEST"

    次の変数を置き換えます。

  3. Backup マニフェストのステータス フィールド status.phase が Succeeded であることを確認します。マニフェストが成功していない場合は、次のようになるまで待ちます。

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME -o yaml
  4. /backup/db フォルダが存在するかどうかを確認して、バックアップ ファイルがバケットで使用可能であることを確認します。

Ansible

  1. 次の形式で Backup マニフェストを作成します。

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    次の変数を置き換えます。

    • BACKUP_NAME: Backup マニフェストの名前。例: my-backup-1

    • BACKUP_PLAN_NAME: 前の手順で作成した BackupPlan マニフェストの名前。例: my-backup-plan-1

    • DBCLUSTER_NAME: クラスタを作成するで定義したデータベース クラスタの名前。

    • type(省略可): バックアップ実行タイプ。full、diff、incr のいずれかに設定できます。デフォルトは full です。

  2. Backup マニフェストのプレイブックを作成します。

    - name: BACKUP_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.backup
    

    次の変数を置き換えます。

    • BACKUP_PLAYBOOK_NAME: Ansible プレイブックの名前。例: My Backup

    • ANSIBLE_USER: Ansible が AlloyDB Omni ノードにログインするために使用する OS ユーザーの名前。

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用して AlloyDB Omni ノードに接続するために使用する秘密鍵。

  3. Backup マニフェストを適用します。

    ansible-playbook BACKUP_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="BACKUP_MANIFEST"

    次の変数を置き換えます。

    • BACKUP_PLAYBOOK: 前に作成した Backup マニフェスト用に作成したプレイブックのパス。

    • DEPLOYMENT_SPEC_PATH: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。

    • BACKUP_MANIFEST: 先ほど作成した Backup マニフェストのパス。

  4. まだ作成していない場合は、status.yaml ハンドブックを作成します。プレイブックの作成方法については、ステータスを表示してバックアップ リソースを一覧表示するをご覧ください。

  5. Backup マニフェストのステータス フィールド status.phase が Succeeded であることを確認します。マニフェストが成功していない場合は、検証前に成功するまで待ちます。

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME
  6. /backup/db フォルダが存在するかどうかを確認して、バックアップ ファイルがバケットで使用可能であることを確認します。

バックアップを削除する

バックアップを削除するには、次のいずれかのコマンドを実行します。

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME

次の変数を置き換えます。

Ansible

  1. Backup マニフェストを削除するプレイブックを作成します。

    - name: BACKUP_DELETE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.delete
    

    次の変数を置き換えます。

    • BACKUP_DELETE_PLAYBOOK_NAME: Ansible プレイブックの名前。

    • ANSIBLE_USER: Ansible が AlloyDB Omni ノードにログインするために使用する OS ユーザー。

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用して AlloyDB Omni ノードに接続するために使用する秘密鍵。

  2. ansible-playbook を実行して、Backup マニフェストを削除します。

    ansible-playbook BACKUP_DELETE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME

    次の変数を置き換えます。

    • BACKUP_DELETE_PLAYBOOK: 前の手順で Backup マニフェストを削除するために作成したプレイブックのパス。

    • DEPLOYMENT_SPEC_PATH: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。

    • BACKUP_NAME: 削除する Backup マニフェストの名前。

バックアップまたは特定の時点(PITR)から復元する

バックアップからデータを復元するには、Restore マニフェストを適用します。RPM オーケストレーターはインプレース復元を実行します。これにより、クローン クラスタをスピンアップしたり、スクリプトを手動で実行したりすることなく、ターゲット データベース クラスタが直接変更されます。

バックアップから復元するには、次のいずれかの方法を使用します。

alloydbctl

  1. 次の形式で Restore マニフェストを作成します。

    • 特定の名前付きバックアップ実行から復元するには:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • ポイントインタイム復元(PITR)を実行するには:

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    次の変数を置き換えます。

    • RESTORE_NAME: この Restore マニフェストの名前。例: my-restore-1

    • DBCLUSTER_NAME: インプレースで復元するターゲット データベース クラスタの名前。

    • BACKUP_NAME: 復元元の完了した Backup マニフェストの名前。

    • TIMESTAMP: 復元する正確な時点を特定する RFC 3339 タイムスタンプ。例: 2026-06-19T14:30:00Z

  2. Restore マニフェストを適用します。

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "RESTORE_MANIFEST"

    次の変数を置き換えます。

  3. Restore マニフェストの status.phase が Succeeded に移行することを確認します。

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Restore -n RESTORE_NAME -o yaml

Ansible

  1. 次の形式で Restore マニフェストを作成します。

    • 特定の名前付きバックアップ実行から復元するには:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • ポイントインタイム復元(PITR)を実行するには:

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    次の変数を置き換えます。

    • RESTORE_NAME: この Restore マニフェストの名前。例: my-restore-1

    • DBCLUSTER_NAME: インプレースで復元するターゲット データベース クラスタの名前。

    • BACKUP_NAME: 復元元の完了した Backup マニフェストの名前。

    • TIMESTAMP: 復元する正確な時点を特定する RFC 3339 タイムスタンプ。例: 2026-06-19T14:30:00Z

  2. Restore マニフェストのプレイブックを作成します。

    - name: RESTORE_PLAYBOOK_NAME
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
        - role: google.alloydbomni_orchestrator.restore
    

    次の変数を置き換えます。

    • RESTORE_PLAYBOOK_NAME: Ansible プレイブックの名前。

    • ANSIBLE_USER: Ansible が AlloyDB Omni ノードにログインするために使用する OS ユーザー。

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用して AlloyDB Omni ノードに接続するために使用する秘密鍵。

  3. Restore マニフェストを適用します。

    ansible-playbook RESTORE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="RESTORE_MANIFEST"

    次の変数を置き換えます。

    • RESTORE_PLAYBOOK: ステップ 2 で Restore マニフェスト用に作成したプレイブックのパス。

    • DEPLOYMENT_SPEC_PATH: デプロイ仕様のパス。

    • RESTORE_MANIFEST: ステップ 1 で作成した Restore マニフェスト仕様ファイルのパス。

  4. まだ作成していない場合は、status.yaml ハンドブックを作成します。プレイブックの作成方法については、ステータスを表示してバックアップ リソースを一覧表示するをご覧ください。

  5. Restore マニフェストの status.phase が Succeeded に移行することを確認します。

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Restore \
      -e resource_name=RESTORE_NAME

ステータスを表示してバックアップ リソースを一覧表示する

BackupPlan、Backup、Restore リソースのステータスを表示するか、リソースを一覧表示するには、次のいずれかの方法を使用します。

alloydbctl

特定タイプのすべてのリソースを一覧表示するには、alloydbctl get コマンドを実行します。

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE

特定のリソースのステータスを表示するには、リソース名と出力形式を yaml に設定して alloydbctl get コマンドを実行します。

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE -n RESOURCE_NAME -o yaml

次の変数を置き換えます。

  • DEPLOYMENT_SPEC_PATH: デプロイ仕様のパス。
  • RESOURCE_TYPE: リソースの型。BackupPlan、Backup、Restore のいずれかに設定します。
  • RESOURCE_NAME: ステータスを表示するリソースの名前。

Ansible

Ansible を使用してリソースのステータスを表示したり、リソースを一覧表示するには、google.alloydbomni_orchestrator.status ロールを使用します。

  1. 次の形式でハンドブック(例: status.yaml)を作成します。

    - name: Get resource status
      hosts: localhost
      vars:
        ansible_user: ANSIBLE_USER
        ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE
      roles:
      - role: google.alloydbomni_orchestrator.status
    

    次の変数を置き換えます。

    • ANSIBLE_USER: Ansible がノードへのログインに使用する OS ユーザー。
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible が SSH を使用してノードに接続するために使用する秘密鍵。
  2. ハンドブックを実行します。

    特定タイプのすべてのリソースを一覧表示するには、resource_type 変数を使用して Playbook を実行します。

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE

    特定のリソースのステータスを表示するには、resource_type 変数と resource_name 変数の両方を使用してハンドブックを実行します。

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE \
      -e resource_name=RESOURCE_NAME

    次の変数を置き換えます。

    • DEPLOYMENT_SPEC_PATH: デプロイ仕様のパス。
    • RESOURCE_TYPE: リソースの型。BackupPlan、Backup、Restore のいずれかに設定します。
    • RESOURCE_NAME: ステータスを表示するリソースの名前。

制限事項

  • BackupPlan ステータスに failed to create stanza(終了コード 39)の ConfigurationFailed が表示されている場合は、バケットに roles/storage.objectAdmin ロールを付与してマニフェストを再適用することで、調整を再開できます。BackupPlan を削除する必要はありません。