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.
Die Vorschau von Spanner Omni unterstützt keine Sicherungen oder Wiederherstellungen. Wenn Sie die Funktionen zum Erstellen von Sicherungen und zum Wiederherstellen aus Sicherungen nutzen möchten, wenden Sie sich an Google, um einen Vorabzugriff auf die Vollversion von Spanner Omni anzufordern.
Spanner Omni-Sicherung – Übersicht
Sicherungen sind hochverfügbar und können ab ihrer Erstellung bis zu einem Jahr lang 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, zu dem die Datenbankinhalte in der Sicherung erfasst werden. 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 der Version der Datenbank liegt.
Bei geplanten Sicherungen ist versionTime die Zeit, die Sie beim Erstellen des Sicherungszeitplans auswählen. Spanner Omni beginnt innerhalb von vier Stunden nach versionTime mit der Erstellung der Sicherung. createTime fällt also in diesen Zeitraum von vier Stunden. Das ist anders als bei On-Demand-Sicherungen, bei denen Spanner Omni mit dem Erstellen der Sicherung beginnt, sobald die Anfrage eingeht.
Angenommen, Sie erstellen einen Sicherungszeitplan mit der Häufigkeit 0 7 * * *
UTC (täglich 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-Back-ups bieten Datenkonsistenz, robuste externe Replikation und automatische Ablaufzeiten.
Datenkonsistenz: Sicherungen einer Spanner Omni-Datenbank sind zum
versionTimeder 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 mit Amazon S3 kompatiblen Speicher als externen Speicher konfigurieren. In diesem externen Speicher werden die Sicherungsdateien von Spanner Omni gespeichert.
Verwaltung des externen Speichers
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 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 externen Speicher löschen möchten, müssen Sie zuerst dafür sorgen, 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 zum externen Speicher zu erhalten:
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 auf 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 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 Einheiten.
Alle Datenbankoptionen, die mit dem Befehl
ALTER DATABASE SET OPTIONSfestgelegt werden.
Eine Spanner Omni-Sicherung enthält die folgenden Informationen nicht:
Jegliche Änderungen an den Daten oder dem Schema nach dem
versionTime.IAM-Richtlinien (Identity and Access Management)
Änderungsstream-Datensätze. Obwohl das Schema für Änderungsstreams gespeichert wird, sollten die Änderungsstreamdaten etwa zur gleichen Zeit gestreamt und genutzt werden, zu der die Änderungen, die sie beschreiben, erfolgen.
Um die externe Konsistenz der Sicherung zu gewährleisten, hängt Spanner Omni den Inhalt der Datenbank bei 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
Informationen zu einer Sicherung abrufen.
spanner backups describe BACKUP_NAME
Sicherungen auflisten
Vorhandene Spanner Omni-Sicherungen im Deployment auflisten.
spanner backups list
Ablaufdatum der Sicherung aktualisieren
Ablaufdatum einer Sicherung aktualisieren.
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.
Erstellen Sie in der neuen Bereitstellung einen externen Speicher, der denselben Amazon S3- oder Cloud Storage-Bucket wie die ursprüngliche Bereitstellung verwendet.
spanner external-storages create EXTERNAL_STORAGE_ID \ --gcs-bucket-name=BUCKET_NAMEListet die Sicherungsdeskriptoren im externen Speicher auf.
spanner external-storages backup-descriptors list EXTERNAL_STORAGE_IDWä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 festlegen, wie oft Spanner Omni Sicherungen im Zeitplan erstellt.
Bei einem Zeitplan für Vollsicherungen werden Sicherungen alle 12 Stunden oder häufiger erstellt. Sicherungen werden innerhalb von 30 Minuten nach dem geplanten Zeitpunkt gestartet. Pro Datenbank können maximal vier Sicherungszeitpläne erstellt werden.
Verwaltung von Sicherungszeitplänen
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.backupAdminSicherungszeitplä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 Eigenschaften eines vorhandenen Sicherungszeitplans.
spanner backup-schedules update SCHEDULE_ID \
--database=DATABASE_ID \
--retention-duration=RETENTION_DURATION \
--cron="CRONTAB_EXPRESSION"
Sicherungszeitplan löschen
Sicherungszeitplan aus der Datenbank löschen
spanner backup-schedules delete SCHEDULE_ID --database=DATABASE_ID
IAM-Richtlinie zur Zugriffssteuerung festlegen
IAM-Richtlinie zur Zugriffssteuerung für einen Sicherungszeitplan festlegen
spanner backup-schedules set-iam-policy SCHEDULE_ID \
--database=DATABASE_ID \
policy.json
IAM-Richtlinie zur Zugriffssteuerung abrufen
IAM-Richtlinie zur Zugriffssteuerung für einen Sicherungszeitplan abrufen.
spanner backup-schedules get-iam-policy SCHEDULE_ID --database=DATABASE_ID
Vergleich von Sicherungsspeicher und Datenbankspeicher
Die Speichergröße einer Sicherung kann kleiner oder größer als die Speichergröße der Quelldatenbank zum Zeitpunkt der Erstellung sein.
Der Speicherplatz einer Sicherung kann kleiner sein als der Speicherplatz 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 bei der Komprimierung können ebenfalls zu einer kleineren Sicherungsgröße führen.
Umgekehrt kann der Speicher einer Sicherung größer als der Speicher der Datenbank sein, je nach Zustand der Datenbank und Zeitpunkt der Sicherung.
Aus ähnlichen Gründen kann der Speicherplatz einer Datenbank, die Sie aus einer Sicherung wiederherstellen, größer sein als der Speicherplatz der Datenbank. Das kann passieren, wenn nach der Erstellung der Sicherung eine große Menge an Daten gelöscht und komprimiert wurde. Die Größe der Sicherung hängt daher davon ab, wann die Sicherung erstellt wurde und welche nachfolgenden Vorgänge in der Datenbank ausgeführt wurden.
Es gibt keine Formel, mit der sich die Größe eines Backups im Verhältnis zur Live-Datenbank vorhersagen lässt. Bei einer Datenbank mit einer hohen Anzahl von Schreibvorgängen (einer Hot Database) ist die Sicherung wahrscheinlich kleiner als die Livedatenbank. In einigen Fällen kann die Sicherungsgröße jedoch größer sein.