Spanner Omni-Sicherungen

Mit Spanner Omni können Sie Vollsicherungen von Datenbanken nach Bedarf oder mithilfe eines Sicherungszeitplans erstellen. In Sicherungen werden die gesamten Daten einer Datenbank gespeichert. Sie können die Sicherungen wiederherstellen, wenn Operator- oder Anwendungsfehler zu einer logischen Datenbeschädigung führen.

Spanner Omni-Sicherung – Übersicht

Sicherungen sind hochverfügbar und können bis zu einem Jahr ab dem Erstellungszeitpunkt aufbewahrt werden. Jeder Sicherung ist ein createTime und ein versionTime zugeordnet. createTime ist der Zeitstempel, zu dem Spanner Omni mit dem Erstellen der Sicherung beginnt. versionTime ist der Zeitstempel, der angibt, wann die Sicherung den Datenbankinhalt erfasst. Die Sicherung enthält eine konsistente Ansicht der Datenbank zum Zeitpunkt versionTime.

Bei On-Demand-Sicherungen sind createTime und versionTime standardmäßig identisch. Bei Bedarf können Sie beim Erstellen einer On-Demand-Sicherung eine ältere versionTime angeben, sofern diese innerhalb der Aufbewahrungsdauer der Datenbankversion liegt.

Bei geplanten Sicherungen ist versionTime die Zeit, die Sie beim Erstellen des Sicherungszeitplans auswählen. Spanner Omni beginnt innerhalb von vier Stunden nach dem versionTime mit der Erstellung der Sicherung. Die createTime fällt also in dieses vierstündige Zeitfenster. Dies unterscheidet sich von On-Demand-Sicherungen, bei denen Spanner Omni mit der Erstellung der Sicherung beginnt, sobald die Anfrage eingeht.

Angenommen, Sie erstellen einen Sicherungszeitplan mit der Häufigkeit 0 7 * * * UTC (täglich um 07:00 Uhr UTC). Das bedeutet, dass für jede Sicherung die versionTime 7:00 Uhr UTC und die createTime ein Zeitstempel innerhalb des vierstündigen Zeitfensters zwischen 7:00 Uhr UTC und 11:00 Uhr UTC ist.

Spanner Omni-Sicherungen können nur in Spanner Omni-Bereitstellungen wiederhergestellt werden. Sie können eine verwaltete Cloud Spanner-Sicherung nicht in Cloud Spanner Omni wiederherstellen und eine Cloud Spanner Omni-Sicherung nicht in verwaltetem Cloud Spanner wiederherstellen. Wenn Sie Daten zwischen Spanner und Spanner Omni übertragen möchten, verwenden Sie Änderungsstreams oder exportieren und importieren Sie Avro-Dateien. Weitere Informationen finden Sie unter Daten von Spanner nach Spanner Omni replizieren und Daten importieren und exportieren.

Wichtige Features

Spanner Omni-Sicherungen bieten Datenkonsistenz, robuste externe Replikation und automatischen Ablauf.

  • Datenkonsistenz: Sicherungen einer Spanner Omni-Datenbank sind zum versionTime der Sicherung transaktional und extern konsistent.

  • Replikation: Sicherungsdateien werden in einem externen Speichersystem außerhalb der Spanner Omni-Bereitstellung gespeichert.

  • Automatischer Ablauf: Alle Sicherungen haben ein benutzerdefiniertes Ablaufdatum, das bestimmt, wann sie gelöscht werden. Spanner Omni löscht abgelaufene Sicherungen asynchron. Daher kann es zu einer Verzögerung zwischen dem Ablauf einer Sicherung und dem tatsächlichen Löschen kommen.

Externer Speicher

Externer Speicher ist ein Remotespeicher, der sich außerhalb der Spanner Omni-Bereitstellung befindet. Sie können Amazon Simple Storage Service (Amazon S3), Cloud Storage oder einen beliebigen Amazon S3-kompatiblen Speicher als externen Speicher konfigurieren. Spanner Omni speichert die Sicherungsdateien in diesem externen Speicher.

Verwaltung des externen Speichers

Verwalten Sie den externen Speicher, indem Sie Speicherorte für Ihre Sicherungen erstellen, löschen und auflisten.

Externen Speicher erstellen

Führen Sie den folgenden Befehl aus, um einen externen Amazon S3-Speicher zu erstellen:

spanner external-storages create EXTERNAL_STORAGE_ID \
  --s3-bucket-name=BUCKET_NAME \
  --s3-region=AWS_REGION \
  --s3-assume-role-arn=ASSUME_ROLE_ARN

Externen Cloud Storage-Speicher erstellen

Bevor Sie den externen Cloud Storage-Speicher konfigurieren, benötigen Sie Folgendes:

Führen Sie den folgenden Befehl aus, um Ihren Cloud Storage-Bucket als externen Speicher zu registrieren:

spanner external-storages create EXTERNAL_STORAGE_ID \
  --gcs-bucket-name=BUCKET_NAME

Ersetzen Sie Folgendes:

  • EXTERNAL_STORAGE_ID: eine eindeutige Kennung für die externe Speicherkonfiguration, z. B. gcp-gcs-backup-target.
  • BUCKET_NAME: der Name Ihres Cloud Storage-Bucket.

Amazon S3-kompatiblen externen Speicher erstellen

Führen Sie den folgenden Befehl aus, um einen Amazon S3-kompatiblen externen Speicher zu erstellen:

spanner external-storages create EXTERNAL_STORAGE_ID \
    --s3-compatible-bucket-name=BUCKET_NAME \
    --s3-compatible-endpoint=ENDPOINT \
    --s3-compatible-credential-file-path=FILE

Externen Speicher löschen

Wenn Sie einen externen Speicher löschen möchten, dürfen keine vorhandenen oder laufenden Sicherungen vorhanden sein. Führen Sie dann den folgenden Befehl aus:

spanner external-storages delete EXTERNAL_STORAGE_ID

Externen Speicher beschreiben

Führen Sie den folgenden Befehl aus, um Informationen zum externen Speicher abzurufen:

spanner external-storages describe EXTERNAL_STORAGE_ID

Externen Speicher auflisten

Führen Sie den folgenden Befehl aus, um eine Liste der externen Speicher abzurufen:

spanner external-storages list

Sicherungsdeskriptor

Ein Sicherungsdeskriptor stellt die Metadaten und Sicherungsdateipfade abgeschlossener Sicherungen dar, die in einem externen Speicher gespeichert sind.

spanner external-storages backup-descriptors list EXTERNAL_STORAGE_ID

Sicherungsinformationen

Wenn Sie eine Sicherung erstellen, werden die Sicherungsmetadaten in Spanner Omni gespeichert und die Sicherungsdateien befinden sich im externen Speicher.

Eine Sicherung enthält die folgenden Informationen aus der Datenbank zum versionTime der Sicherung:

  • Eine Vollsicherung enthält alle Daten.

  • Schemainformationen, einschließlich Tabellennamen, Feldern, Datentypen, sekundären Indexen, Änderungsstreams und den Beziehungen zwischen diesen Entitäten.

  • Alle Datenbankoptionen, die mit dem Befehl ALTER DATABASE SET OPTIONS festgelegt werden.

Eine Spanner Omni-Sicherung enthält die folgenden Informationen nicht:

  • Alle Änderungen an den Daten oder am Schema nach dem versionTime.

  • abgelehnt wurden.

  • Änderungsstream-Datensätze. Obwohl das Änderungsstream-Schema gespeichert wird, sollten die Änderungsstream-Daten ungefähr zur gleichen Zeit wie die darin beschriebenen Änderungen gestreamt und genutzt werden.

Um die externe Konsistenz der Sicherung zu gewährleisten, pinnt Spanner Omni den Inhalt der Datenbank bei versionTime an. Dadurch wird verhindert, dass das Speicherbereinigungssystem die relevanten Datenwerte für die Dauer des Sicherungsvorgangs entfernt.

Sicherungsverwaltung

Zum Erstellen von Sicherungen benötigen Sie die folgenden Berechtigungen. Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für ein Deployment zuzuweisen:

Aktion IAM-Rolle
Sicherungen erstellen, ansehen, aktualisieren und löschen roles/spanner.backupAdmin
Sicherungen erstellen und ansehen roles/spanner.backupWriter

Sicherung erstellen

On-Demand-Sicherung erstellen

spanner backups create BACKUP_NAME \
--database=DATABASE_ID \
--retention-period=RETENTION_PERIOD \
--async

Sicherung löschen

Löschen Sie die Sicherungsmetadaten und -dateien.

spanner backups delete BACKUP_NAME

Sicherung beschreiben

Informationen zu einer Sicherung abrufen.

spanner backups describe BACKUP_NAME

Sicherungen auflisten

Listen Sie vorhandene Spanner Omni-Sicherungen in der Bereitstellung auf.

spanner backups list

Ablaufzeit der Sicherung aktualisieren

Ablaufdatum einer Sicherung aktualisieren.

spanner backups update-metadata BACKUP_NAME \
--expiration-date=EXPIRATION_DATE

Sicherung importieren

Wenn Sie eine Datenbank in einer anderen Spanner Omni-Bereitstellung wiederherstellen möchten, z. B. zwischen Spanner Omni-Bereitstellungen oder wenn Sie die ursprüngliche Bereitstellung löschen, können Sie Sicherungen importieren, sofern die Sicherungsdateien im externen Speicher verbleiben:

  1. Erstellen Sie in der neuen Bereitstellung einen externen Speicher, der denselben Amazon S3- oder Cloud Storage-Bucket wie die ursprüngliche Bereitstellung verwendet, z. B.:

    spanner external-storages create EXTERNAL_STORAGE_ID \
      --gcs-bucket-name=BUCKET_NAME
    
  2. Listen Sie die Sicherungsdeskriptoren im externen Speicher auf:

    spanner external-storages backup-descriptors list EXTERNAL_STORAGE_ID
    
  3. Importieren Sie die Sicherungsmetadaten in das neue Deployment:

    spanner backups import BACKUP_NAME \
      --external-storage=EXTERNAL_STORAGE_ID \
      --backup-descriptor=BACKUP_DESCRIPTOR \
      --retention-period=RETENTION_PERIOD
    

    Ersetzen Sie Folgendes:

    • BACKUP_NAME: ein Name für die importierte Sicherung.
    • EXTERNAL_STORAGE_ID: die ID Ihrer externen Speicherkonfiguration.
    • BACKUP_DESCRIPTOR: die im vorherigen Schritt zurückgegebene Deskriptor-ID.
    • RETENTION_PERIOD: Die Dauer, für die die Sicherung aufbewahrt werden soll, z. B. 24h oder 30d.

Nachdem Sie die Sicherungsmetadaten importiert haben, können Sie die Sicherung in einer neuen Datenbank im Deployment wiederherstellen. Weitere Informationen finden Sie unter Spanner Omni-Sicherung wiederherstellen.

Sicherungszeitpläne

Mit Spanner Omni können Sie Vollsicherungen für Datenbanken planen. Sie können im Zeitplan festlegen, wie oft Spanner Omni Sicherungen erstellt.

Bei einem Zeitplan für Vollsicherungen werden alle 12 Stunden oder mehr Sicherungen erstellt. Sicherungen werden innerhalb eines 30-minütigen Zeitfensters ab dem geplanten Zeitpunkt gestartet. Pro Datenbank können maximal vier Sicherungszeitpläne erstellt werden.

Sicherungszeitpläne verwalten

Zum Erstellen und Verwalten von Sicherungszeitplänen benötigen Sie die folgenden Berechtigungen. Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Deployment zuzuweisen:

  • Sicherungszeitpläne erstellen, ansehen, aktualisieren und löschen: roles/spanner.backupAdmin

  • Sicherungszeitpläne erstellen und ansehen: roles/spanner.backupWriter

Sicherungszeitplan erstellen

Erstellen Sie einen neuen Sicherungszeitplan für die Spanner Omni-Datenbank.

spanner backup-schedules create SCHEDULE_ID \
  --database=DATABASE_ID \
  --retention-duration=RETENTION_DURATION \
  --cron="CRONTAB_EXPRESSION"

Sicherungszeitplan abrufen

Informationen zu einem bestimmten Sicherungszeitplan abrufen.

spanner backup-schedules describe SCHEDULE_ID --database=DATABASE_ID

Sicherungszeitpläne auflisten

Alle Sicherungszeitpläne für eine bestimmte Datenbank auflisten.

spanner backup-schedules list --database=DATABASE_ID

Sicherungszeitplan aktualisieren

Aktualisieren Sie die Attribute eines vorhandenen Sicherungszeitplans.

spanner backup-schedules update SCHEDULE_ID \
  --database=DATABASE_ID \
  --retention-duration=RETENTION_DURATION \
  --cron="CRONTAB_EXPRESSION"

Sicherungszeitplan löschen

Löschen Sie einen Sicherungszeitplan aus der Datenbank.

spanner backup-schedules delete SCHEDULE_ID --database=DATABASE_ID

IAM-Zugriffssteuerungsrichtlinie festlegen

Legen Sie die IAM-Zugriffssteuerungsrichtlinie für einen Sicherungszeitplan fest.

spanner backup-schedules set-iam-policy SCHEDULE_ID \
  --database=DATABASE_ID \
  policy.json

IAM-Richtlinie zur Zugriffssteuerung abrufen

Rufen Sie die IAM-Zugriffssteuerungsrichtlinie für einen Sicherungszeitplan ab.

spanner backup-schedules get-iam-policy SCHEDULE_ID --database=DATABASE_ID

Sicherungsspeicher mit Datenbankspeicher vergleichen

Die Speichergröße einer Sicherung kann kleiner oder größer als die Speichergröße der Quelldatenbank zum Zeitpunkt der Erstellung sein.

Der Speicher einer Sicherung kann kleiner sein als der Speicher der Datenbank, da eine Sicherung nur eine Version der Daten enthält, während die Live-Datenbank aufgrund laufender Vorgänge mehrere Versionen enthalten kann. Unterschiede im Datenformat und in der Komprimierung können ebenfalls zu einer kleineren Sicherungsgröße führen.

Umgekehrt kann der Speicher einer Sicherung größer sein als der Speicher der Datenbank, je nach Status der Datenbank und dem Zeitpunkt, zu dem Sie die Sicherung erstellen.

Aus ähnlichen Gründen kann der Speicher einer Datenbank, die aus einer Sicherung wiederhergestellt wird, größer sein als der Speicher der Datenbank. Dies kann passieren, wenn nach dem Erstellen der Sicherung eine große Datenmenge gelöscht und komprimiert wurde. Daher hängt die Größe der Sicherung davon ab, wann die Sicherung erstellt wurde und welche nachfolgenden Vorgänge für die Datenbank ausgeführt wurden.

Es gibt keine Formel, mit der sich die Größe einer Sicherung im Verhältnis zur Live-Datenbank vorhersagen lässt. Bei einer Datenbank mit einer hohen Rate an Schreibvorgängen (einer Hot-Datenbank) ist die Sicherung wahrscheinlich kleiner als die Live-Datenbank. In einigen Situationen kann die Sicherung jedoch größer sein.

Nächste Schritte