Spanner Omni-Sicherungen

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

Übersicht über Spanner Omni-Sicherungen

Sicherungen sind hochverfügbar und können ab ihrer Erstellung bis zu einem Jahr lang aufbewahrt werden. Jede Sicherung hat eine zugehörige createTime und versionTime. createTime ist der Zeitstempel, an dem Spanner Omni mit dem Erstellen der Sicherung beginnt. versionTime ist der Zeitstempel, an dem die Sicherung die Datenbankinhalte 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 sie innerhalb des Aufbewahrungszeitraums für Versionen der Datenbank liegt.

Bei geplanten Sicherungen ist versionTime der Zeitpunkt, den Sie beim Erstellen des Sicherungszeitplans auswählen. Spanner Omni beginnt innerhalb von vier Stunden nach versionTime mit dem Erstellen der Sicherung. createTime liegt also innerhalb dieses vierstündigen Zeitraums. Im Gegensatz dazu beginnt Spanner Omni bei On-Demand-Sicherungen mit dem Erstellen der Sicherung, wenn die Anfrage eingeht.

Angenommen, Sie erstellen einen Sicherungszeitplan mit einer Häufigkeit von 0 7 * * * UTC (jeden Tag um 7:00 Uhr UTC). Das bedeutet, dass für jede Sicherung versionTime 7:00 Uhr UTC und createTime ein Zeitstempel innerhalb des vierstündigen Zeitraums zwischen 7:00 Uhr UTC und 11:00 Uhr UTC ist.

Wichtige Features

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

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

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

  • 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 Remote-Speicher, 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.

Externen Speicher verwalten

Sie können externen Speicher verwalten, indem Sie Speicherorte für Ihre Sicherungen erstellen, löschen und auflisten.

Externen Speicher erstellen

Führen Sie den folgenden Befehl aus, um 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

Führen Sie den folgenden Befehl aus, um externen Cloud Storage-Speicher zu erstellen:

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

Amazon S3-kompatiblen externen Speicher erstellen

Führen Sie den folgenden Befehl aus, um 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 externen Speicher löschen möchten, müssen Sie zuerst sicherstellen, dass keine vorhandenen oder laufenden Sicherungen vorhanden sind. 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 zu externem Speicher abzurufen:

spanner external-storages describe EXTERNAL_STORAGE_ID

Externen Speicher auflisten

Führen Sie den folgenden Befehl aus, um eine Liste des externen Speichers 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 und die Sicherungsdateien im externen Speicher gespeichert.

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

  • Eine vollständige Sicherung 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 wurden.

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

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

  • IAM-Richtlinien (Identity and Access Management).

  • Datensätze für Änderungsstreams. Obwohl das Schema des Änderungsstreams gespeichert ist, sollten die Daten des Änderungsstreams etwa gleichzeitig mit den Änderungen, die sie beschreiben, gestreamt und verwendet werden.

Um die externe Konsistenz der Sicherung zu gewährleisten, hängt Spanner Omni den Inhalt der Datenbank zum Zeitpunkt versionTime an. Dadurch wird verhindert, dass das System für die automatische Speicherbereinigung 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 eine Bereitstellung zuzuweisen:

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

Sicherung erstellen

Erstellen Sie eine On-Demand-Sicherung.

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

Rufen Sie Informationen zu einer Sicherung ab.

spanner backups describe BACKUP_NAME

Sicherungen auflisten

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

spanner backups list

Ablaufdatum der Sicherung aktualisieren

Aktualisieren Sie das Ablaufdatum einer Sicherung.

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

Sicherung importieren

Wenn Sie versehentlich eine Bereitstellung löschen, können Sie Sicherungen daraus importieren, sofern Sie die Sicherungsdateien nicht aus dem externen Speicher gelöscht haben.

  1. Erstellen Sie in der neuen Bereitstellung externen Speicher, der denselben Amazon S3- oder Cloud Storage-Bucket aus der ursprünglichen Bereitstellung verwendet.

    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. Wählen Sie den Sicherungsdeskriptor aus und importieren Sie ihn in die neue Bereitstellung.

    spanner backups import BACKUP_NAME \
     --external-storage EXTERNAL_STORAGE_ID \
     --backup-descriptor BACKUP_DESCRIPTOR \
     --retention-period 24h
    

Sicherungszeitpläne

Mit Spanner Omni können Sie vollständige Sicherungen für Datenbanken planen. Sie können im Zeitplan angeben, wie oft Spanner Omni Sicherungen erstellen soll.

Bei einem Zeitplan für vollständige Sicherungen werden alle 12 Stunden oder häufiger Sicherungen erstellt. Sicherungen werden innerhalb von 30 Minuten nach dem geplanten Zeitpunkt gestartet. Pro Datenbank können maximal vier Sicherungszeitpläne vorhanden sein.

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 die Bereitstellung 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

Rufen Sie Informationen zu einem bestimmten Sicherungszeitplan ab.

spanner backup-schedules describe SCHEDULE_ID --database=DATABASE_ID

Sicherungszeitpläne auflisten

Listen Sie alle Sicherungszeitpläne für eine bestimmte Datenbank auf.

spanner backup-schedules list --database=DATABASE_ID

Sicherungszeitplan aktualisieren

Aktualisieren Sie die Eigenschaften 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-Zugriffssteuerungsrichtlinie abrufen

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

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

Vergleich von Sicherungsspeicher und Datenbankspeicher

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

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

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

Aus ähnlichen Gründen kann der Speicherplatz einer Datenbank größer sein als der Speicherplatz der Datenbank, wenn Sie sie aus einer Sicherung wiederherstellen. Dies kann passieren, wenn nach dem Erstellen der Sicherung eine große Menge an Daten gelöscht und komprimiert wurde. Die Größe der Sicherung hängt also davon ab, wann die Sicherung erstellt wurde und welche Vorgänge anschließend in der Datenbank ausgeführt wurden.

Es gibt keine Formel, mit der sich die Größe einer Sicherung im Verhältnis zur Livedatenbank vorhersagen lässt. Bei einer Datenbank mit einer hohen Schreibgeschwindigkeit (aktive Datenbank) ist die Sicherung wahrscheinlich kleiner als die Livedatenbank. In einigen Fällen kann die Sicherungsgröße jedoch größer sein.