Auf dieser Seite wird beschrieben, wie Sie eine Instanz in Spanner verschieben.
Sie können Ihre Spanner-Instanz aus einer beliebigen Instanzkonfiguration in eine andere Instanzkonfiguration verschieben, auch zwischen regionalen, biregionalen und multiregionalen Konfigurationen. Das Verschieben Ihrer Instanz führt nicht zu Ausfallzeiten und Spanner bietet während des Vorgangs weiterhin die üblichen Transaktionsgarantien, einschließlich starker Konsistenz.
Sie können Ihre Instanz auch von der Quellinstanzkonfiguration in eine benutzerdefinierte Instanzkonfiguration verschieben, z. B. eine nam3
-Basiskonfiguration mit einem us-west2
-schreibgeschützten Replikat. Da sich die Topologie vorhandener Instanzkonfigurationen nicht aktualisieren lässt, müssen Sie zuerst eine neue benutzerdefinierte Instanzkonfiguration mit der gewünschten Topologie erstellen. Nachdem Sie die neue benutzerdefinierte Instanzkonfiguration erstellt haben, können Sie Ihre Instanz von der Quellinstanzkonfiguration in die neue benutzerdefinierte Instanzkonfiguration verschieben.
Warum sollten Sie Ihre Spanner-Instanz verschieben?
Das Verschieben Ihrer Instanz bietet unter anderem folgende Vorteile:
- Verfügbarkeit erhöhen: Sie können eine Verfügbarkeit von 99,999% ohne Ausfallzeiten erzielen, nachdem Sie eine Migration von einer Region zu einer dualen Region oder zu mehreren Regionen durchgeführt haben.
- Latenz reduzieren: Mit zusätzlichen schreibgeschützten Replikaten lässt sich die Latenz reduzieren und die geografische Abdeckung durch einen Umzug von einer Region zu einer Dual-Region oder einer Multi-Region oder von einer Multi-Region zu einer Multi-Region erhöhen.
- Kosten senken: Sie können die Kosten pro Stunde senken, indem Sie von einer dual- oder multiregionalen Konfiguration zu einer regionalen Konfiguration wechseln.
- Datenbank gemeinsam platzieren: Platzieren Sie die Spanner-Datenbank gemeinsam mit der Clientanwendung, indem Sie die Instanz an einen optimierteren Speicherort verschieben.
Preise
Beim Verschieben einer Instanz fallen sowohl für die Quell- als auch für die Zielinstanz stündliche Rechen- und Speichergebühren an. Sobald die Umstellung abgeschlossen ist, wird Ihnen der Instanzspeicher in der Zielkonfiguration in Rechnung gestellt.
Wenn Sie Ihre Instanz in eine neue regionale, biregionale oder multiregionale Instanzkonfiguration verschieben, fallen möglicherweise Gebühren für ausgehende Datenübertragungen an. Weitere Informationen finden Sie unter Spanner-Preise.
Beschränkungen
- Damit die Instanz verschoben werden kann, muss sie mindestens 1 Knoten (1.000 Verarbeitungseinheiten) haben.
- Sie können Ihre Instanz nicht zwischen Projekten und Google Cloud Konten verschieben.
- Sie können eine Instanz, die die Standardversion verwendet, nicht direkt von einer regionalen Instanzkonfiguration in eine Instanzkonfiguration mit zwei oder mehreren Regionen verschieben. Sie müssen zuerst ein Upgrade der Version Ihrer Instanz auf die Enterprise Plus-Version ausführen und sie dann verschieben.
- Kostenlose Spanner-Testinstanzen können nicht verschoben werden. Sie können die Instanz verschieben, nachdem Sie ein Upgrade auf eine kostenpflichtige Instanz durchgeführt haben.
- Wenn für eine der Instanzressourcen aktive Anfragen mit einem regionalen Dienstendpunkt vorliegen, wirkt sich die Instanzmigration auf alle Anfragen aus, die den regionalen Endpunkt verwenden, da die regionale Erzwingung den Zugriff auf regionsübergreifende Instanzen blockiert. Anfragen, die einen globalen Endpunkt verwenden, sind davon nicht betroffen.
- Spanner-Sicherungen sind für eine Instanzkonfiguration spezifisch und werden beim Verschieben einer Instanz nicht berücksichtigt. Weitere Informationen finden Sie unter Sicherungen.
- Die folgenden APIs werden während eines Instanzumzugs deaktiviert:
InstanceAdmin.DeleteInstance
InstanceAdmin.UpdateInstance
DatabaseAdmin.CreateDatabase
DatabaseAdmin.UpdateDatabaseDdl
(Deaktiviert, wenndefault_leader
in der Anfrage angegeben ist.)DatabaseAdmin.RestoreDatabase
DatabaseAdmin.CreateBackup
DatabaseAdmin.CreateBackupSchedule
DatabaseAdmin.CopyBackup
- Sie können keine Instanzen verschieben, die CMEK-fähige Datenbanken enthalten.
- Wenn eine Datenbank eine geänderte standardmäßig führende Region hat, bleibt die Auswahl erhalten, wenn in der Zielinstanzkonfiguration eine Region mit Lese-/Schreibzugriff angegeben ist und diese Konfiguration multiregional ist. Wenn die Zielkonfiguration regional ist oder die angegebene Region nicht schreibgeschützt ist, wird die Auswahl des standardmäßigen Leaders gelöscht.
- Wenn Sie eine Instanz verschieben, ändert sich das Instanzkonfigurationsattribut Ihrer Instanz. Wenn Sie Ihre Spanner-Ressourcen über Automatisierung verwalten, sollten Sie sich auf mögliche Inkonsistenzen vorbereiten und diese beheben.
- Wenn Sie beispielsweise Terraform zum Verwalten Ihrer Spanner-Instanzen und ‑Datenbanken verwenden und
terraform apply --auto-approve
aktivieren, um Ihre Ressourcen zu synchronisieren, werden alle Instanzen und untergeordneten Ressourcen gelöscht, wenn wir die Instanz verschieben. Aktualisieren Sie die Konfiguration entsprechend, um das Löschen und Datenverluste zu vermeiden. Weitere Informationen zum Befehlapply
finden Sie unter Terraform-Anwendungsoptionen.
- Wenn Sie beispielsweise Terraform zum Verwalten Ihrer Spanner-Instanzen und ‑Datenbanken verwenden und
- Während die Instanz verschoben wird, können die Spanner-Monitoring-Messwerte und -Diagramme sowohl Daten in der Quell- als auch in der Zielinstanzkonfiguration enthalten oder nur die Leistung in einer Instanzkonfiguration widerspiegeln.
- Wenn Sie das Open-Source-Autoscaling-Tool konfiguriert haben, müssen Sie es nicht deaktivieren. Der Vorgang schlägt fehl, weil
InstanceAdmin.UpdateInstance
(für Änderungen an Knoten und Verarbeitungseinheiten) deaktiviert ist. Sie können eine Instanz nicht verschieben, wenn die Funktion Von Spanner verwalteter Autoscaler für sie aktiviert ist. Wenn Sie die Instanz verschieben möchten, müssen Sie den verwalteten Autoscaler deaktivieren, die Instanz verschieben und den verwalteten Autoscaler dann wieder aktivieren.
Wenn Sie Autoscaling verwenden, müssen Sie außerdem gemäß den maximalen Empfehlungen genügend Knoten für die CPU-Spitzenauslastung bereitstellen und das Autoscaling deaktivieren, bevor Sie die Instanz verschieben.
Hinweise zur Leistung
Wenn eine Instanz verschoben wird, hat die Instanz höhere Lese-/Schreiblatenzen und eine höhere Transaktionsabbruchrate. Die CPU-Auslastung kann während des Vorgangs auf 100% ansteigen, da der Instanzumzug mit einer vom Nutzer bereitgestellten Reserve-CPU durchgeführt wird. Das Verschieben einer Instanz verursacht jedoch keine Ausfallzeiten. Die Dauer des Verschiebens einer Instanz hängt von verschiedenen Faktoren ab, z. B. von der Größe der Datenbanken, der Anzahl der Knoten und der Art der Migration (z. B. von regional zu mehrregional).
Nach dem Verschieben einer Instanz hängt die Leistung der Instanz von den Details der Instanzkonfiguration ab. So haben beispielsweise Zwei-Regionen-Konfigurationen und Multi-Region-Konfigurationen im Allgemeinen eine höhere Schreiblatenz und eine niedrigere Leselatenz als regionale Konfigurationen.
Sicherungen
Wenn Sie eine Instanz verschieben, werden die Sicherungen in der Quellinstanz nicht automatisch in die neue Zielkonfiguration verschoben. Der Instanzumzug wird abgebrochen, wenn zum Zeitpunkt des Startens des Instanzumzugs Back-ups in der Konfiguration der Quellinstanz vorhanden sind. Es ist wichtig, dass Sie Ihre Sicherungen kopieren und Ihren Plan zur Datenwiederherstellung berücksichtigen, bevor Sie Ihre Instanz verschieben.
Wenn sich in Ihrer Quellinstanz Sicherungen befinden, die Sie behalten möchten, empfehlen wir Ihnen, Ihre Sicherungen in die Zielinstanzkonfiguration und in eine andere Instanz mit derselben Instanzkonfiguration wie die zu verschiebende Quellinstanz zu kopieren. Das hat folgende Gründe:
- Sie können Ihre Sicherungen sofort nach Abschluss des Instanzumzugs in die Zielinstanzkonfiguration kopieren.
- Wenn Sie die Instanzmigration abbrechen möchten, können Sie Ihre Sicherungen auch schnell aus der Instanz mit derselben Konfiguration wie die Quellinstanz wiederherstellen.
Nachdem Sie Ihre Sicherungen in eine andere Instanz kopiert haben, müssen Sie alle vorhandenen Sicherungen in der Quellinstanz löschen, bevor Sie die Instanz verschieben können. Sobald die Instanzumstellung abgeschlossen ist, haben Sie bereits eine Kopie der Sicherung in der Zielkonfiguration. Sie können auch eine neue Sicherung erstellen.
Weitere Informationen zum Kopieren von Sicherungen und zu den damit verbundenen Kosten finden Sie unter Sicherung kopieren.
Instanz verschieben
Sie können eine Instanz mit der Google Cloud Console Cloud Shell und der gcloud CLI mithilfe von gcloud
-Befehlen verschieben.
Vorbereitung
Lesen Sie sich die Abschnitte Einschränkungen und Leistungsaspekte durch, bevor Sie die Instanzkonfiguration verschieben. Führen Sie dann die folgenden Schritte aus:
- Prüfen Sie, ob Sie die
spanner.instances.update
IAM-Berechtigung für die Quellinstanz haben. - Verschieben Sie gegebenenfalls Ihre Nicht-Produktionsinstanzen (z. B. Test- und Staging-Instanzen), bevor Sie Ihre Produktionsinstanzen verschieben, um die Leistungsauswirkungen auf Arbeitslasten während einer Instanzmigration besser beurteilen und nachvollziehen zu können.
- Wenn Sie eine Spanner-Instanz verschieben, werden beim Verschieben die Instanz-Tags gelöscht, die Sie im Data Catalog erstellt haben. Wenn Sie Ihre Tags behalten möchten, müssen Sie sie vor dem Umzug exportieren und nach dem Umzug wieder importieren. Weitere Informationen finden Sie unter Tags exportieren und importieren.
Beachten Sie außerdem die folgenden Best Practices:
- Testen Sie Leistungsarbeitslasten in nicht produktiven Instanzen in der Zielinstanzkonfiguration, bevor Sie Ihre Produktionsinstanz verschieben. Versuchen Sie, eine Staging-Instanz zu verschieben, die Ihrer Produktionsinstanz ähnelt, um ein Gefühl dafür zu bekommen, wie lange die Migration Ihrer Produktionsinstanz dauern wird.
- Prüfen Sie mit dem Key Visualizer, ob es in Ihren Datenbanken Hotspots gibt.
- Prüfen Sie, ob in der Zielinstanzkonfiguration ein ausreichendes Kontingent für Knoten vorhanden ist, um die erwartete Spitzennutzung der Instanz zu unterstützen. Weitere Informationen finden Sie unter Kontingente und Limits für Spanner.
- Die maximale CPU-Auslastung Ihrer Instanz darf für die von Ihnen verschobene Instanzkonfiguration nicht über 40% liegen und die Speichermenge pro Knoten darf nicht mehr als 1 Tebibyte (TiB) betragen.
- Nehmen Sie während des Vorgangs keine Änderungen an der Instanz vor. Dazu gehören das Ändern der Anzahl der Instanzknoten, das Ändern von Datenbankschemata, das Erstellen oder Löschen von Datenbanken und das Erstellen oder Löschen von Sicherungen.
Wenn Sie Ihre Instanz gemäß diesen Empfehlungen verschieben, ist der Vorgang in der Regel innerhalb von 24 Stunden abgeschlossen. Je nach Anwendungslast kann die Ausführung jedoch länger oder kürzer dauern.
Instanz verschieben
Klicken Sie oben in der Google Cloud Console auf
Cloud Shell aktivieren.
Im unteren Bereich der Google Cloud Console wird ein neuer Frame mit einer Cloud Shell-Sitzung und einer Befehlszeilen-Eingabeaufforderung geöffnet. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Verwenden Sie den Befehl
gcloud spanner instances move
, um die Instanz zu verschieben.gcloud spanner instances move
INSTANCE_ID \ --target-config=TARGET_CONFIG Ersetzen Sie Folgendes:
- INSTANCE_ID: Die permanente Kennzeichnung der Instanz, die Sie verschieben möchten.
- TARGET_CONFIG: Eine permanente Kennzeichnung der Instanzkonfiguration, in die Sie die Instanz verschieben möchten. Der neue geografische Standort Ihrer Instanz. Dies kann eine regionale, dual-regionale, multiregionale oder benutzerdefinierte Instanzkonfiguration sein (z. B.
nam3
,us-central1
odercustom-nam3-us-west2
).
Wenn Sie beispielsweise die Instanz test-instance
aus ihrer aktuellen Instanzkonfiguration zu nam3
verschieben möchten, führen Sie Folgendes aus:
gcloud spanner instances move test-instance --target-config=nam3
Optional: Wenn Sie der Basisinstanzkonfiguration nam3
ein schreibgeschütztes Replik us-west2
hinzufügen möchten, gehen Sie so vor:
Klonen Sie die Basiskonfiguration und fügen Sie das schreibgeschützte Replikat hinzu:
gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
Verschieben Sie die Instanz
test-instance
von der aktuellen Instanzkonfiguration in die neue Instanzkonfigurationcustom-nam3-us-west2
:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Verwenden Sie den Befehl gcloud spanner instances move
, um die Instanz zu verschieben.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG
Ersetzen Sie Folgendes:
- INSTANCE_ID: Die permanente Kennzeichnung der Instanz, die Sie verschieben möchten.
- TARGET_CONFIG: Eine permanente Kennzeichnung der Instanzkonfiguration, in die Sie die Instanz verschieben möchten. Der neue geografische Standort Ihrer Instanz. Dies kann eine regionale, biregionale oder multiregionale Instanzkonfiguration sein (z. B.
nam3
,us-central1
odercustom-nam3-us-west2
).
Wenn Sie beispielsweise die Instanz test-instance
aus ihrer aktuellen Instanzkonfiguration zu nam3
verschieben möchten, führen Sie Folgendes aus:
gcloud spanner instances move test-instance --target-config=nam3
Optional: Wenn Sie der Basisinstanzkonfiguration nam3
ein schreibgeschütztes Replik us-west2
hinzufügen möchten, gehen Sie so vor:
Klonen Sie die Basiskonfiguration und fügen Sie das schreibgeschützte Replikat hinzu:
gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
Verschieben Sie die Instanz
test-instance
von der aktuellen Instanzkonfiguration in die neue Instanzkonfigurationcustom-nam3-us-west2
:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Fortschritt des Instanzumzugs und der Kündigung verfolgen
Sie können gcloud spanner operations describe
verwenden oder ein benutzerdefiniertes Cloud Monitoring-Dashboard erstellen, um den Fortschritt einer Instanzmigration zu verfolgen.
Fortschritt der Verschiebung und Kündigung ansehen
Verwenden Sie den Befehl gcloud spanner operations describe
, um den Fortschritt eines Instanzumzugs oder eines Abbruchs eines Instanzumzugs zu verfolgen. Für diesen Befehl ist die Vorgangs-ID des laufenden Instanzumzugs erforderlich.
Rufen Sie die Vorgangs-ID für den Vorgang zum Verschieben der Instanz ab:
gcloud spanner operations list --instance="
INSTANCE_ID "Ersetzen Sie Folgendes:
- INSTANCE_ID: Die permanente Kennzeichnung der Instanz, die Sie verschieben möchten.
Die Ausgabe enthält eine Liste der Vorgänge mit langer Ausführungszeit, einschließlich des Instanzverschiebungsvorgangs.
Führen Sie den Befehl
gcloud spanner operations describe
aus, um den Fortschritt in Prozent und den Status aufzurufen:gcloud spanner operations describe
OPERATION_ID --instance=INSTANCE_ID Ersetzen Sie Folgendes:
- OPERATION_ID: die Vorgangs-ID des Instanzumzugs, den Sie prüfen möchten.
- INSTANCE_ID: Die Instanz-ID der Instanz, die Sie prüfen möchten.
Instanzumzug überwachen
Sie können ein benutzerdefiniertes Cloud Monitoring-Dashboard erstellen, um Messwerte während des Instanzumzugs anzuzeigen und zu überwachen. Dies ist ein langwieriger Vorgang mit potenziellen Auswirkungen auf den Dienst.
Die Diagramme Gesamtspeicher und Gesamtdatenbankspeicher nach Datenbanken im Dashboard sind hilfreich, um den Fortschritt der Migration zu verfolgen. Sie sehen, dass der Speicherplatz in der Quellkonfiguration allmählich abnimmt, während der Speicherplatz in der Zielkonfiguration zunimmt.
- Laden Sie die Datei
move-instance-dashboard.json
herunter. Diese Datei enthält die Informationen, die zum Ausfüllen eines benutzerdefinierten Dashboards in Monitoring erforderlich sind. -
Rufen Sie in der Google Cloud Console die Seite
Dashboards auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Klicken Sie in der Dashboard-Übersicht auf Dashboard erstellen.
- Klicken Sie in der Symbolleiste des Dashboards auf das Drop-down-Menü Dashboard-Einstellungen. Wählen Sie dann JSON und dann JSON-Editor aus.
- Kopieren Sie im Bereich JSON-Editor den Inhalt der heruntergeladenen Datei
move-instance-dashboard.json
und fügen Sie ihn in den Editor ein. - Klicken Sie auf Änderungen anwenden, um die Änderungen auf das Dashboard anzuwenden. Wenn Sie dieses Dashboard nicht verwenden möchten, kehren Sie zur Übersichtsseite „Dashboards“ zurück.
- Klicken Sie nach dem Erstellen des Dashboards auf Filter hinzufügen. Wählen Sie dann entweder
project_id
oderinstance_id
aus, um den Fortschritt der Instanzmigration zu verfolgen.
- Laden Sie die Datei
move-instance-dashboard.json
herunter. Diese Datei enthält die Informationen, die zum Ausfüllen eines benutzerdefinierten Dashboards in Monitoring erforderlich sind. Verwenden Sie den Befehl
gcloud monitoring dashboards create
, um ein Dashboard in einem Projekt zu erstellen:gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.json
Weitere Informationen finden Sie in der Referenz zu
gcloud monitoring dashboards create
.
Instanzumzug abbrechen
Sie können nur einen laufenden Instanzenumzug abbrechen. Wenn Sie eine bereits abgeschlossene Instanzmigration rückgängig machen möchten, müssen Sie eine neue Migration starten.
Mit gcloud spanner operations cancel
können Sie Instanzverschiebungsvorgänge abbrechen. Die Stornierung erfolgt nicht sofort und dauert ungefähr so lange wie die Zeit, die seit Beginn der Migration verstrichen ist. Das liegt daran, dass die Daten zurück in die Konfiguration der Quellinstanz verschoben werden müssen.
Für diesen Befehl ist die Vorgangs-ID des laufenden Instanzumzugs erforderlich.
Rufen Sie die Vorgangs-ID mit folgendem Befehl ab:
gcloud spanner operations list --type=INSTANCE --instance="
INSTANCE_ID " --filter="done:False AND metadata.@type:MoveInstanceMetadataErsetzen Sie Folgendes:
- INSTANCE_ID: Die permanente Kennzeichnung der Instanz, die Sie verschieben möchten.
Die Ausgabe enthält eine Liste der laufenden Instanzverschiebungen.
Führen Sie den Befehl
gcloud spanner operations cancel
aus, um die Instanzmigration abzubrechen:gcloud spanner operations cancel
OPERATION_ID Ersetzen Sie Folgendes:
- OPERATION_ID: die Vorgangs-ID des Instanzumzugs, den Sie abbrechen möchten.
Nächste Schritte
- Weitere Informationen zu regionalen, Dual-Region- und Multi-Region-Konfigurationen in Spanner
- Weitere Informationen zuGoogle Cloud Regionen und Zonen