Sie können eine Sicherung einer Spanner-Datenbank in einer neuen Datenbank wiederherstellen. Die wiederhergestellte Datenbank enthält alle Daten und das Schema aus der ursprünglichen Datenbank zur version_time
der Sicherung, einschließlich aller Datenbankoptionen, die mit dem Befehl ALTER DATABASE SET OPTIONS
festgelegt werden. Die folgenden Elemente sind jedoch nicht in der wiederhergestellten Datenbank enthalten:
- IAM-Berechtigungen (außer die, die von der Instanz übernommen wurden, die die wiederhergestellte Datenbank enthält) Nach Abschluss der Wiederherstellung müssen Sie die entsprechenden IAM-Berechtigungen anwenden.
- Interne Daten von Änderungsstreams.
- Gültigkeitsdauer (TTL), die durch eine Richtlinie für das Löschen von Zeilen definiert ist. Sie müssen diese Richtlinien nach Abschluss der Wiederherstellung neu konfigurieren. Weitere Informationen finden Sie unter Sicherungen und TTL.
Wenn Sie aus einer Sicherung wiederherstellen, befindet sich die wiederhergestellte Sicherung in derselben Instanz, Region und im selben Projekt wie die Quellsicherung. Wenn Sie aus Compliance- oder Geschäftskontinuitätsgründen aus der Sicherung in einer anderen Region oder einem anderen Projekt wiederherstellen müssen, können Sie die Sicherung in eine Instanz in einer anderen Region oder einem anderen Projekt kopieren und dann aus der kopierten Sicherung wiederherstellen.
Sie haben folgende Möglichkeiten, eine Sicherung wiederherzustellen:
- In der Google Cloud Console
- Google Cloud CLI verwenden
- Clientbibliotheken
- Mit den REST- oder RPC-APIs
So funktioniert die Datenbankwiederherstellung aus einer Sicherung
Wenn Sie eine Spanner-Datenbank wiederherstellen, müssen Sie eine Quellensicherung und eine neue Zieldatenbank angeben. Eine Wiederherstellung in einer vorhandenen Datenbank ist nicht möglich.
Die neu wiederhergestellte Datenbank muss sich im selben Projekt wie die Sicherung und in einer Instanz mit derselben Instanzkonfiguration und derselben (oder höheren) Spanner-Version wie die Sicherung befinden. Wenn sich eine Sicherung beispielsweise in einer Instanz befindet, die us-west3
konfiguriert ist und die Enterprise-Version verwendet, kann sie in jeder Instanz im Projekt wiederhergestellt werden, die ebenfalls us-west3
konfiguriert ist und die Enterprise-Version verwendet. Wenn Sie eine Sicherung in einer Instanz der Enterprise-Version in einer Instanz der Standardversion wiederherstellen, schlägt die Wiederherstellung möglicherweise fehl, wenn die Datenbank Funktionen der Enterprise-Version verwendet. Die Rechenkapazität der Instanzen muss nicht identisch sein.
Der Wiederherstellungsvorgang ist auf Hochverfügbarkeit ausgelegt. Die Datenbank kann wiederhergestellt werden, sofern der Großteil der Regionen und Zonen in der Instanz verfügbar ist.
Zum Wiederherstellen einer CMEK-fähigen Sicherung müssen sowohl der Schlüssel als auch die Schlüsselversion für Spanner verfügbar sein. Die wiederhergestellte Datenbank verwendet standardmäßig dieselben Verschlüsselungskonfigurationen wie die Sicherung. Dieses Verhalten lässt sich durch Angabe einer anderen Verschlüsselungskonfiguration beim Wiederherstellen der Datenbank überschreiben. Weitere Informationen finden Sie unter Aus einer CMEK-fähigen Sicherung wiederherstellen.
Sicherung in einer anderen Region oder einem anderen Projekt wiederherstellen
Wenn Sie die Sicherung in einer anderen Region oder einem anderen Projekt wiederherstellen möchten, kopieren Sie die Sicherung zuerst in die gewünschte Region oder das gewünschte Projekt. Kopierte Sicherungen können wiederhergestellt werden, sobald die Kopie abgeschlossen ist. Sie können die Sicherung entweder in der Zielinstanz wiederherstellen (sofern sie dieselbe Version wie die Quellsicherungs-Instanz verwendet) oder in einer beliebigen Instanz, die dieselbe Instanzkonfiguration und dieselbe (oder eine höhere) Version wie die Zielinstanz hat. Achten Sie vor der Wiederherstellung darauf, dass der Zielinstanz genügend Knoten oder Verarbeitungseinheiten zugewiesen sind, um die Datenbankgröße gemäß dem Speicherlimit von 10 TB pro Knoten zu unterstützen. Sie benötigen also mindestens zwei Knoten, um eine Sicherung von 20 TB wiederherzustellen. Wenn Sie die Sicherung in ein anderes Projekt kopiert haben und sie dort wiederherstellen möchten, muss das Zielprojekt genügend Knotenkontingente für die Wiederherstellung haben. Die Wiederherstellung einer kopierten Sicherung funktioniert genauso wie eine normale Wiederherstellung.
Wiederherstellungsstatus
Eine wiederhergestellte Datenbank durchläuft drei Status, die von zwei lang laufenden Vorgängen erfasst werden.
CREATING
: Spanner beginnt mit der Wiederherstellung, indem eine neue Datenbank erstellt und Dateien aus der Sicherung bereitgestellt werden. In diesem anfänglichen StatusCREATING
kann die wiederhergestellte Datenbank noch nicht verwendet werden. Dieser Status ist in der Regel innerhalb einer Stunde abgeschlossen. Sobald der StatusCREATING
erreicht ist, ist die Datenbank einsatzbereit.Sie können den Fortschritt dieses Status verfolgen, indem Sie den Wiederherstellungsvorgang mit langer Ausführungszeit abfragen, den Spanner während dieses Vorgangs zur Verfügung stellt. Es gibt ein
RestoreDatabaseMetadata
-Objekt zurück.Beachten Sie die folgenden Einschränkungen für den Status
CREATING
:- Wenn Sie eine andere Instanz wiederherstellen, gehören die Wiederherstellungsvorgänge zu der Instanz, die die wiederhergestellte Datenbank enthält, und nicht zu der Instanz, die die Sicherung enthält.
- Sie können die Sicherung in Spanner nicht löschen, während sie wiederhergestellt wird. Sie können es löschen, nachdem die Wiederherstellung abgeschlossen ist und die Datenbank den Status
READY
hat. - Eine Instanz kann aufgrund der Wiederherstellung aus Sicherungen maximal zehn Datenbanken im Status
CREATING
haben. Sie können erst dann wieder eine Sicherung in der Instanz wiederherstellen, wenn eine der zehn wiederhergestellten Datenbanken in den StatusREADY_OPTIMIZING
oderREADY
wechselt.
READY_OPTIMIZING
: Nachdem Spanner die Sicherung bereitgestellt hat, beginnt es, die Sicherungsdaten in die neue Datenbank zu kopieren und dabei die gespeicherte Größe zu optimieren. Ihre Datenbank kann während dieses Vorgangs verwendet werden. Bei Datenbanken mit einer Größe von weniger als 100 TB dauert diese Phase der Wiederherstellung in der Regel einige Stunden.Sie können Ihre Datenbank während
READY_OPTIMIZING
wie gewohnt verwenden. Es gelten jedoch die folgenden Einschränkungen:- Die Leselatenz ist möglicherweise etwas höher als üblich.
- Die Speichermesswerte geben die Größe der neuen Datenbank an, nicht der Sicherung. Solange die Datenübertragung noch läuft, spiegeln die Spanner-Speichermesswerte möglicherweise nicht die Gesamtgröße aller Daten wider.
- Wie beim Status
CREATING
können Sie die bereitgestellte Sicherung in Spanner nicht löschen.
In diesem Status stellt Spanner einen weiteren lang andauernden Wiederherstellungsvorgang bereit, der diesmal ein Metadatenobjekt vom Typ
OptimizeRestoredDatabaseMetadata
zurückgibt.READY
: Nach Abschluss des Kopier- und Optimierungsvorgangs wechselt die Datenbank in den StatusREADY
. Die Datenbank ist vollständig wiederhergestellt und verweist nicht mehr auf die Sicherung oder benötigt sie nicht mehr.
Zugriffssteuerung (IAM)
Mit der Rolle spanner.restoreAdmin
sind Sie berechtigt, Daten aus einer Sicherung wiederherzustellen.
Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM.
Die folgenden Rollen haben auch Zugriff auf Spanner-Wiederherstellungsvorgänge:
spanner.admin
: Hat vollständigen Zugriff auf die Wiederherstellung. Diese Rolle hat vollständigen Zugriff auf alle Spanner-Ressourcen.owner
: Hat vollständigen Zugriff auf die Wiederherstellung.editor
: Hat vollständigen Zugriff auf die Wiederherstellung.viewer
: Hat Zugriff auf Wiederherstellungen und Wiederherstellungsvorgänge. Mit dieser Rolle können keine Sicherungen erstellt, aktualisiert, gelöscht oder kopiert werden.
Preise
Die Wiederherstellung aus einer Sicherung ist kostenlos.
Nächste Schritte
- Informationen zum Wiederherstellen einer Datenbank aus einer Sicherung finden Sie unter Aus einer Sicherung wiederherstellen.