Daten mit RPM Orchestrator sichern und wiederherstellen

Wählen Sie eine Dokumentationsversion aus:

Zum Schutz Ihrer Daten bietet AlloyDB Omni automatische Datensicherung und ‑wiederherstellung mithilfe deklarativer Manifeste. Der AlloyDB Omni-Orchestrator arbeitet mit alloydbctl und Ansible zusammen, um diese Manifestkonfigurationen anzuwenden und Sicherungen in Cloud Storage, Standard-Amazon S3-Buckets oder S3-kompatibler Software wie MinIO zu automatisieren.

Wenn Sie die kontinuierliche Sicherung und Wiederherstellung von AlloyDB Omni aktivieren möchten, müssen Sie für jeden Datenbankcluster einen Sicherungsplan erstellen. Sicherungen werden gemäß den in der BackupPlan-Ressource definierten Sicherungszeitplänen erstellt. Sie können die Wiederherstellung mit einer Backup-Ressource oder mit einem beliebigen Zeitstempel im Wiederherstellungszeitraum mit einem Detaillierungsgrad von Sekunden durchführen.

In AlloyDB Omni werden automatische Sicherungen und die Wiederherstellung über Manifeste verwaltet:

  • BackupPlan: Jeder Datenbankcluster kann ein oder mehrere BackupPlan-Manifeste mit unterschiedlichen Konfigurationen und Zeitplänen für die verschiedenen Sicherungsebenen haben.
  • Backup: Startet Vollsicherungen, differenzielle oder inkrementelle Sicherungen basierend auf Ihren BackupPlan-Manifesten.
  • Restore: Startet eine In-Place-Wiederherstellung Ihres Datenbankclusters mit einer bestimmten Sicherung oder einem bestimmten Zeitpunkt.

Hinweis

Bevor Sie Ihren Sicherungsplan einrichten und konfigurieren, benötigen Sie Folgendes:

  • Speicherort für Ihre Sicherungen: AlloyDB Omni speichert Sicherungen in einer der folgenden Speicheroptionen:

    • Cloud Storage: Ein Cloud Storage-Bucket. Informationen zum Erstellen von Buckets finden Sie unter Bucket erstellen.
    • Amazon S3: Ein Amazon S3-Bucket. Informationen zum Erstellen von S3-Buckets finden Sie unter Bucket erstellen.
    • S3-kompatibler Speicher: Ein Bucket in S3-kompatibler Software wie MinIO. Informationen zum Erstellen von MinIO-Buckets finden Sie in der MinIO-Dokumentation.
  • Authentifizierungsanmeldedaten: Wenn für Ihre Speicheroption Authentifizierungsschlüssel wie Amazon S3, MinIO oder Cloud Storage mit einem bestimmten Dienstkonto erforderlich sind, müssen Sie vor dem Erstellen des Sicherungsplans eine Secret-Ressource mit diesen Anmeldedaten erstellen. Eine Anleitung finden Sie unter Secret-Ressource zum Authentifizieren des Speichers erstellen.

Secret-Ressource zum Authentifizieren des Speichers erstellen

Wenn für den von Ihnen verwendeten Speicher eine Authentifizierung erforderlich ist, müssen Sie eine Secret-Ressource erstellen, bevor Sie den Sicherungsplan erstellen.

Secret-Ressource für Cloud Storage erstellen

  1. Erstellen Sie ein Dienstkonto, um dem Bucket Sicherungen hinzuzufügen.
  2. Weisen Sie dem Dienstkonto die IAM-Rolle (Identity and Access Management) roles/storage.objectAdmin für den Bucket zu.
  3. Generieren Sie einen Dienstkontoschlüssel im JSON-Format.
  4. Codieren Sie den Inhalt der heruntergeladenen JSON-Schlüsseldatei in Base64. Führen Sie base64 -w 0 aus oder sorgen Sie dafür, dass der codierte Text eine einzelne durchgehende Zeile ist.
  5. Erstellen Sie ein Secret-Ressourcenmanifest. Der Schlüsselname im Abschnitt data muss key.json sein.

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

    Ersetzen Sie Folgendes:

    • SECRET_NAME: Der Name Ihrer Secret-Ressource.
    • BASE64_ENCODED_JSON_KEY: der base64-codierte Inhalt Ihrer JSON-Schlüsseldatei für das Dienstkonto.

Secret-Ressource für S3- oder S3-kompatiblen Speicher erstellen

  1. Codieren Sie Ihre S3-Zugriffsschlüssel-ID in Base64.
  2. Codieren Sie Ihren geheimen Zugriffsschlüssel für S3 in Base64.
  3. Erstellen Sie ein Secret-Ressourcenmanifest. Die Schlüsselnamen im Abschnitt data müssen access-key-id und access-key sein.

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

    Ersetzen Sie Folgendes:

    • SECRET_NAME: Der Name Ihrer Secret-Ressource.
    • BASE64_ENCODED_ACCESS_KEY_ID: Die base64-codierte S3-Zugriffsschlüssel-ID.
    • BASE64_ENCODED_SECRET_ACCESS_KEY: Der base64-codierte geheime S3-Zugriffsschlüssel.

Secret-Ressource anwenden

Wenden Sie das Secret-Ressourcenmanifest an, bevor Sie das BackupPlan-Manifest anwenden. Sie können das Secret-Ressourcenmanifest mit einer der folgenden Methoden anwenden:

alloydbctl

Führen Sie den folgenden Befehl aus, um das Secret-Ressourcenmanifest mit alloydbctl anzuwenden:

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

Ersetzen Sie die folgenden Variablen:

  • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.
  • SECRET_MANIFEST: Pfad zum erstellten Secret-Ressourcenmanifest.

Ansible

So wenden Sie das Secret-Ressourcenmanifest mit Ansible an:

  1. Erstellen Sie ein Playbook für das Manifest Ihrer Secret-Ressource:

    - 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
    

    Ersetzen Sie die folgenden Variablen:

    • ANSIBLE_USER: Betriebssystemnutzer, den Ansible verwendet, um sich in Ihren AlloyDB Omni-Knoten anzumelden.
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren AlloyDB Omni-Knoten herzustellen.
  2. Wenden Sie das Secret-Ressourcenmanifest an:

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

    Ersetzen Sie die folgenden Variablen:

    • SECRET_PLAYBOOK: Pfad zum Playbook, das Sie für das Secret-Ressourcenmanifest erstellt haben.
    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.
    • SECRET_MANIFEST: Pfad zum erstellten Secret-Ressourcenmanifest.

Sicherungsplan erstellen

  1. Erstellen Sie ein BackupPlan-Manifest im Format für Ihre Speicheroption:

    Cloud Storage

    gcsOptions ist ein Pflichtfeld.

    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"
    

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_PLAN_NAME: Name des BackupPlan-Manifests. Beispiel: my-backup-plan-1

    • DBCLUSTER_NAME: Der Name Ihres Datenbankclusters, den Sie in Cluster erstellen definiert haben.

    • BUCKET_NAME: Name des Cloud Storage-Bucket, den Sie erstellt haben.

    • BUCKET_PATH: Pfad zum Verzeichnis in Cloud Storage, in das Back-ups geschrieben werden sollen. Sie müssen einen absoluten Pfad angeben, der mit / beginnt. Beispiel: /backups

    • SECRET_NAME (Optional): Name der Secret-Ressource, in der die Authentifizierungsschlüssel gespeichert werden.

    • RETAIN_DAYS (optional): Anzahl der Tage, die Sicherungen aufbewahrt werden sollen, bevor sie automatisch gelöscht werden.

    • FULL_SCHEDULE (optional): Cron-Ausdruck für den Zeitplan für Vollsicherungen. Beispiel: 0 2 * * *

    • DIFF_SCHEDULE (optional): Cron-Zeitplanausdruck für differenzielle Sicherungen. Beispiel: 0 2 * * *

    • INC_SCHEDULE (optional): Cron-Zeitplanausdruck für inkrementelle Sicherungen. Beispiel: 0 2 * * *

    Amazon S3 oder S3-kompatibel

    s3Options ist ein Pflichtfeld.

    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"
    

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_PLAN_NAME: Name des BackupPlan-Manifests. Beispiel: my-backup-plan-1

    • DBCLUSTER_NAME: Der Name Ihres Datenbankclusters, den Sie in Cluster erstellen definiert haben.

    • BUCKET_NAME: Name des von Ihnen erstellten S3-Buckets.

    • BUCKET_PATH: Pfad zum Verzeichnis im S3-Bucket, in das Sicherungen geschrieben werden sollen. Sie müssen einen absoluten Pfad angeben, der mit / beginnt. Beispiel: /backups.

    • ENDPOINT_URL: Benutzerdefinierte Endpunkt-URL für die Verbindung zu S3-kompatibler Software wie MinIO. Beispiel: http://minio.example.com:9000. Für Amazon S3-Buckets müssen Sie keine Endpunkt-URL angeben.

    • REGION_ (Optional): Region des Speicher-Buckets. Erforderlich, wenn Sie eine Verbindung zu Standard-Amazon S3-Buckets oder S3-kompatibler Software herstellen, in der die Regionsvalidierung erzwungen wird.

    • SECRET_NAME: Verweis auf eine Secret-Ressource, die Sie zuvor erstellt haben und die Ihre ACCESS_KEY_ID und SECRET_ACCESS_KEY enthält.

    • RETAIN_DAYS (optional): Anzahl der Tage, die Sicherungen aufbewahrt werden sollen, bevor sie automatisch gelöscht werden.

    • FULL_SCHEDULE (optional): Cron-Ausdruck für den Zeitplan für Vollsicherungen. Beispiel: 0 2 * * *

    • DIFF_SCHEDULE (optional): Cron-Zeitplanausdruck für differenzielle Sicherungen. Beispiel: 0 2 * * *

    • INC_SCHEDULE (optional): Cron-Zeitplanausdruck für inkrementelle Sicherungen. Beispiel: 0 2 * * *

  2. Wenden Sie den Sicherungsplan mit einer der folgenden Methoden an:

    alloydbctl

    1. Wenden Sie die BackupPlan-Ressource an:

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

      Ersetzen Sie die folgenden Variablen:

      • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

      • BACKUP_PLAN_MANIFEST: Pfad zum BackupPlan-Manifest, das Sie zuvor erstellt haben.

    2. Prüfen Sie, ob das Statusfeld status.phase für Ihr BackupPlan-Manifest Ready lautet. Wenn das Manifest noch nicht bereit ist, warten Sie, bis es bereit ist:

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

    Ansible

    1. Erstellen Sie ein Playbook für Ihr BackupPlan-Manifest:

      - 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
      

      Ersetzen Sie die folgenden Variablen:

      • BACKUP_PLAN_PLAYBOOK_NAME: Name Ihres Ansible-Playbooks. Beispiel: My BackupPlan. Notieren Sie sich den Pfad zum Playbook, da er im nächsten Schritt benötigt wird.

      • ANSIBLE_USER: Name des Betriebssystemnutzers, den Ansible verwendet, um sich bei Ihren AlloyDB Omni-Knoten anzumelden.

      • ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren AlloyDB Omni-Knoten herzustellen.

    2. Wenden Sie die BackupPlan-Ressource an:

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

      Ersetzen Sie die folgenden Variablen:

      • BACKUP_PLAN_PLAYBOOK: Pfad zum Playbook, das Sie zuvor für Ihr BackupPlan-Manifest erstellt haben.

      • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

      • BACKUP_PLAN_MANIFEST: Pfad zum BackupPlan-Manifest, das Sie zuvor erstellt haben.

    3. Erstellen Sie ein status.yaml-Playbook, falls Sie das noch nicht getan haben. Informationen zum Erstellen des Playbooks finden Sie unter Status ansehen und Sicherungsressourcen auflisten.

    4. Prüfen Sie, ob das Statusfeld status.phase für Ihr BackupPlan-Manifest Ready lautet. Wenn das Manifest noch nicht bereit ist, warten Sie, bis es bereit ist:

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

Sicherungsplan aktualisieren

Wenn Sie einen Sicherungsplan aktualisieren möchten, um den Sicherungszeitplan zu ändern, die Aufbewahrungsdauer zu ändern oder geplante Sicherungen zu pausieren, ändern Sie das BackupPlan-Manifest und wenden Sie es dann noch einmal an.

  1. Öffnen Sie das BackupPlan-Manifest, das Sie unter Sicherungsplan erstellen erstellt haben.

  2. Ändern Sie die Felder, die Sie aktualisieren möchten.

    • Wenn Sie die Sicherungszeitpläne aktualisieren möchten, ändern Sie die Cron-Ausdrücke unter backupSchedules.
    • Wenn Sie die Aufbewahrungsdauer aktualisieren möchten, ändern Sie backupRetainDays.
    • Wenn Sie geplante Sicherungen pausieren möchten, fügen Sie das Feld paused dem Abschnitt spec hinzu und legen Sie es auf true fest. Wenn Sie die Sicherungen fortsetzen möchten, legen Sie das Feld auf false fest oder entfernen Sie es.

    Im folgenden Beispiel werden die Aufbewahrungstage auf 30 aktualisiert, die Zeitpläne full und differential geändert, ein incremental-Zeitplan hinzugefügt und der Sicherungsplan pausiert:

    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. Wenden Sie den aktualisierten Sicherungsplan mit einer der folgenden Methoden an:

    alloydbctl

    1. Wenden Sie die BackupPlan-Ressource an:

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

      Ersetzen Sie die folgenden Variablen:

      • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

      • BACKUP_PLAN_MANIFEST: Pfad zum geänderten BackupPlan-Manifest.

    2. Prüfen Sie, ob das Statusfeld status.phase für Ihr BackupPlan-Manifest Ready lautet. Wenn das Manifest noch nicht bereit ist, warten Sie, bis es bereit ist:

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

    Ansible

    1. Wenden Sie die aktualisierte BackupPlan-Ressource mit dem Playbook an, das Sie unter Sicherungsplan erstellen erstellt haben:

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

      Ersetzen Sie die folgenden Variablen:

      • BACKUP_PLAN_PLAYBOOK: Pfad zum Playbook, das Sie für Ihr BackupPlan-Manifest erstellt haben.

      • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

      • BACKUP_PLAN_MANIFEST: Pfad zum geänderten BackupPlan-Manifest.

    2. Erstellen Sie ein status.yaml-Playbook, falls Sie das noch nicht getan haben. Informationen zum Erstellen des Playbooks finden Sie unter Status ansehen und Sicherungsressourcen auflisten.

    3. Prüfen Sie, ob das Statusfeld status.phase für Ihr BackupPlan-Manifest Ready lautet. Wenn das Manifest noch nicht bereit ist, warten Sie, bis es bereit ist, bevor Sie die Überprüfung durchführen:

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

Sicherungsplan löschen

Sie haben folgende Möglichkeiten, einen Sicherungsplan zu löschen:

alloydbctl

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

Ersetzen Sie die folgenden Variablen:

  • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

  • BACKUP_PLAN_NAME: Name des zu löschenden BackupPlan-Manifests.

Ansible

  1. Erstellen Sie ein Playbook zum Löschen des BackupPlan-Manifests.

    - 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
    

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: Name Ihres Ansible-Playbooks.

    • ANSIBLE_USER: Betriebssystemnutzer, den Ansible verwendet, um sich in Ihren AlloyDB Omni-Knoten anzumelden.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren AlloyDB Omni-Knoten herzustellen.

  2. Führen Sie ansible-playbook aus, um das Manifest BackupPlan zu löschen.

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

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: Pfad zum Playbook, das Sie im vorherigen Schritt zum Löschen des BackupPlan-Manifests erstellt haben.

    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

    • BACKUP_PLAN_NAME: Name des zu löschenden BackupPlan-Manifests.

Sicherung erstellen

Verwenden Sie eine der folgenden Methoden, um eine Sicherung zu erstellen und zu starten:

alloydbctl

  1. Erstellen Sie ein Backup-Manifest im folgenden Format:

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

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_NAME: Name des Backup-Manifests. Beispiel: my-backup-1

    • BACKUP_PLAN_NAME: Name des zuvor erstellten BackupPlan-Manifests. Beispiel: my-backup-plan-1.

    • DBCLUSTER_NAME: Der Name Ihres Datenbankclusters, den Sie in Cluster erstellen definiert haben.

    • type (optional): Der Typ der Sicherungsausführung, der auf full, diff oder incr festgelegt werden kann. Die Standardeinstellung ist full.

  2. Wenden Sie das Backup-Manifest an:

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

    Ersetzen Sie die folgenden Variablen:

    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

    • BACKUP_MANIFEST: Pfad zum zuvor erstellten Backup-Manifest.

  3. Prüfen Sie, ob das Statusfeld status.phase für Ihr Backup-Manifest Succeeded lautet. Wenn das Manifest nicht erfolgreich war, warten Sie, bis es:

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME -o yaml
  4. Prüfen Sie, ob die Sicherungsdateien in Ihrem Bucket verfügbar sind, indem Sie nachsehen, ob der Ordner /backup/db vorhanden ist.

Ansible

  1. Erstellen Sie ein Backup-Manifest im folgenden Format:

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

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_NAME: Name des Backup-Manifests. Beispiel: my-backup-1

    • BACKUP_PLAN_NAME: Name des zuvor erstellten BackupPlan-Manifests. Beispiel: my-backup-plan-1.

    • DBCLUSTER_NAME: Der Name Ihres Datenbankclusters, den Sie in Cluster erstellen definiert haben.

    • type (optional): Der Typ der Sicherungsausführung, der auf full, diff oder incr festgelegt werden kann. Die Standardeinstellung ist full.

  2. Erstellen Sie ein Playbook für Ihr Backup-Manifest:

    - 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
    

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_PLAYBOOK_NAME: Name Ihres Ansible-Playbooks. Beispiel: My Backup.

    • ANSIBLE_USER: Name des Betriebssystemnutzers, mit dem sich Ansible in Ihren AlloyDB Omni-Knoten anmeldet.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren AlloyDB Omni-Knoten herzustellen.

  3. Wenden Sie das Backup-Manifest an:

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

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_PLAYBOOK: Pfad zum Playbook, das Sie für das zuvor erstellte Backup-Manifest erstellt haben.

    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

    • BACKUP_MANIFEST: Pfad zum zuvor erstellten Backup-Manifest.

  4. Erstellen Sie ein status.yaml-Playbook, falls Sie das noch nicht getan haben. Informationen zum Erstellen des Playbooks finden Sie unter Status ansehen und Sicherungsressourcen auflisten.

  5. Prüfen Sie, ob das Statusfeld status.phase für Ihr Backup-Manifest Succeeded lautet. Wenn das Manifest nicht erfolgreich war, warten Sie, bis es erfolgreich ist, bevor Sie die Überprüfung durchführen:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME
  6. Prüfen Sie, ob die Sicherungsdateien in Ihrem Bucket verfügbar sind, indem Sie nachsehen, ob der Ordner /backup/db vorhanden ist.

Sicherung löschen

Führen Sie einen der folgenden Befehle aus, um eine Sicherung zu löschen:

alloydbctl

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

Ersetzen Sie die folgenden Variablen:

Ansible

  1. Erstellen Sie ein Playbook zum Löschen des Backup-Manifests.

    - 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
    

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_DELETE_PLAYBOOK_NAME: Name Ihres Ansible-Playbooks.

    • ANSIBLE_USER: Betriebssystemnutzer, den Ansible verwendet, um sich in Ihren AlloyDB Omni-Knoten anzumelden.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren AlloyDB Omni-Knoten herzustellen.

  2. Führen Sie ansible-playbook aus, um das Manifest Backup zu löschen.

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

    Ersetzen Sie die folgenden Variablen:

    • BACKUP_DELETE_PLAYBOOK: Pfad zum Playbook, das Sie im vorherigen Schritt zum Löschen des Backup-Manifests erstellt haben.

    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

    • BACKUP_NAME: Name des zu löschenden Backup-Manifests.

Aus einer Sicherung oder zu einem bestimmten Zeitpunkt (PITR) wiederherstellen

Wenn Sie Daten aus einer Sicherung wiederherstellen möchten, wenden Sie ein Restore-Manifest an. Der RPM-Orchestrator führt die Wiederherstellung direkt aus. Dabei wird Ihr Zieldatenbankcluster direkt geändert, ohne dass ein geklonter Cluster gestartet oder ein manuelles Skript ausgeführt werden muss.

Sie haben folgende Möglichkeiten, Daten aus einer Sicherung wiederherzustellen:

alloydbctl

  1. Erstellen Sie ein Restore-Manifest im folgenden Format:

    • So stellen Sie Daten aus einer bestimmten benannten Sicherungsausführung wieder her:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • So führen Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt durch:

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

    Ersetzen Sie die folgenden Variablen:

    • RESTORE_NAME: Name für dieses Restore-Manifest. Beispiel: my-restore-1

    • DBCLUSTER_NAME: Name des Zieldatenbankclusters, in dem die In-Place-Wiederherstellung erfolgen soll.

    • BACKUP_NAME: Name des abgeschlossenen Backup-Manifests, aus dem die Wiederherstellung erfolgen soll.

    • TIMESTAMP: RFC 3339-Zeitstempel, der den genauen Zeitpunkt für die Wiederherstellung angibt. Beispiel: 2026-06-19T14:30:00Z.

  2. Wenden Sie das Restore-Manifest an:

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

    Ersetzen Sie die folgenden Variablen:

    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.

    • RESTORE_MANIFEST: Pfad zur Restore-Manifestspezifikationsdatei, die Sie in Schritt 1 erstellt haben.

  3. Prüfen Sie, ob status.phase für Ihr Restore-Manifest zu Succeeded wechselt:

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

Ansible

  1. Erstellen Sie ein Restore-Manifest im folgenden Format:

    • So stellen Sie Daten aus einer bestimmten benannten Sicherungsausführung wieder her:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • So führen Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt durch:

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

    Ersetzen Sie die folgenden Variablen:

    • RESTORE_NAME: Name für dieses Restore-Manifest. Beispiel: my-restore-1

    • DBCLUSTER_NAME: Name des Zieldatenbankclusters, in dem die In-Place-Wiederherstellung erfolgen soll.

    • BACKUP_NAME: Name des abgeschlossenen Backup-Manifests, aus dem die Wiederherstellung erfolgen soll.

    • TIMESTAMP: RFC 3339-Zeitstempel, der den genauen Zeitpunkt für die Wiederherstellung angibt. Beispiel: 2026-06-19T14:30:00Z.

  2. Erstellen Sie ein Playbook für Ihr Restore-Manifest:

    - 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
    

    Ersetzen Sie die folgenden Variablen:

    • RESTORE_PLAYBOOK_NAME: Name Ihres Ansible-Playbooks.

    • ANSIBLE_USER: Betriebssystemnutzer, den Ansible verwendet, um sich in Ihren AlloyDB Omni-Knoten anzumelden.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren AlloyDB Omni-Knoten herzustellen.

  3. Wenden Sie das Restore-Manifest an:

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

    Ersetzen Sie die folgenden Variablen:

    • RESTORE_PLAYBOOK: Pfad zum Playbook, das Sie in Schritt 2 für Ihr Restore-Manifest erstellt haben.

    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation.

    • RESTORE_MANIFEST: Pfad zur Restore-Manifestspezifikationsdatei, die Sie in Schritt 1 erstellt haben.

  4. Erstellen Sie ein status.yaml-Playbook, falls Sie das noch nicht getan haben. Informationen zum Erstellen des Playbooks finden Sie unter Status ansehen und Sicherungsressourcen auflisten.

  5. Prüfen Sie, ob status.phase für Ihr Restore-Manifest zu Succeeded wechselt:

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

Status ansehen und Sicherungsressourcen auflisten

So können Sie den Status Ihrer BackupPlan-, Backup- und Restore-Ressourcen aufrufen oder sie auflisten:

alloydbctl

Führen Sie den Befehl alloydbctl get aus, um alle Ressourcen eines bestimmten Typs aufzulisten:

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE

Wenn Sie den Status einer bestimmten Ressource aufrufen möchten, führen Sie den Befehl alloydbctl get mit dem Ressourcennamen aus und legen Sie das Ausgabeformat auf yaml fest:

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

Ersetzen Sie die folgenden Variablen:

  • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation.
  • RESOURCE_TYPE: der Ressourcentyp. Legen Sie dafür BackupPlan, Backup oder Restore fest.
  • RESOURCE_NAME: Der Name der Ressource, deren Status Sie aufrufen möchten.

Ansible

Wenn Sie den Status von Ressourcen mit Ansible aufrufen oder Ressourcen auflisten möchten, verwenden Sie die Rolle google.alloydbomni_orchestrator.status.

  1. Erstellen Sie ein Playbook, z. B. status.yaml, im folgenden Format:

    - 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
    

    Ersetzen Sie die folgenden Variablen:

    • ANSIBLE_USER: Betriebssystemnutzer, den Ansible für die Anmeldung bei Ihren Knoten verwendet.
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren Knoten herzustellen.
  2. Führen Sie das Playbook aus.

    Wenn Sie alle Ressourcen eines bestimmten Typs auflisten möchten, führen Sie das Playbook mit der Variablen resource_type aus:

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

    So rufen Sie den Status einer bestimmten Ressource auf:resource_typeresource_name

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

    Ersetzen Sie die folgenden Variablen:

    • DEPLOYMENT_SPEC_PATH: Pfad zur Bereitstellungsspezifikation.
    • RESOURCE_TYPE: der Ressourcentyp. Legen Sie dafür BackupPlan, Backup oder Restore fest.
    • RESOURCE_NAME: Der Name der Ressource, deren Status Sie aufrufen möchten.

Beschränkungen

  • Wenn der Status BackupPlan ConfigurationFailed mit failed to create stanza (Exit-Code 39) anzeigt, können Sie den Abgleich fortsetzen, indem Sie dem Bucket die Rolle roles/storage.objectAdmin zuweisen und das Manifest noch einmal anwenden. Sie müssen BackupPlan nicht löschen.