Instanz verschieben

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, wenn default_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 Befehl apply finden Sie unter Terraform-Anwendungsoptionen.
  • 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:

  1. Prüfen Sie, ob Sie die spanner.instances.update IAM-Berechtigung für die Quellinstanz haben.
  2. 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.
  3. 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

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell-Symbol aktivieren 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.

  2. 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 oder custom-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:

  1. 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
    
  2. Verschieben Sie die Instanz test-instance von der aktuellen Instanzkonfiguration in die neue Instanzkonfiguration custom-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 oder custom-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:

  1. 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
    
  2. Verschieben Sie die Instanz test-instance von der aktuellen Instanzkonfiguration in die neue Instanzkonfiguration custom-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.

  1. 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.

  2. 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.

  1. 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.
  2. Rufen Sie in der Google Cloud Console die Seite Dashboards auf.

    Dashboards aufrufen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  3. Klicken Sie in der Dashboard-Übersicht auf Dashboard erstellen.
  4. Klicken Sie in der Symbolleiste des Dashboards auf das Drop-down-Menü Dashboard-Einstellungen. Wählen Sie dann JSON und dann JSON-Editor aus.
  5. Kopieren Sie im Bereich JSON-Editor den Inhalt der heruntergeladenen Datei move-instance-dashboard.json und fügen Sie ihn in den Editor ein.
  6. 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.
  7. Klicken Sie nach dem Erstellen des Dashboards auf Filter hinzufügen. Wählen Sie dann entweder project_id oder instance_id aus, um den Fortschritt der Instanzmigration zu verfolgen.
  1. 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.
  2. 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.

  1. Rufen Sie die Vorgangs-ID mit folgendem Befehl ab:

    gcloud spanner operations list --type=INSTANCE --instance="INSTANCE_ID"
    --filter="done:False AND metadata.@type:MoveInstanceMetadata
    

    Ersetzen Sie Folgendes:

    • INSTANCE_ID: Die permanente Kennzeichnung der Instanz, die Sie verschieben möchten.

    Die Ausgabe enthält eine Liste der laufenden Instanzverschiebungen.

  2. 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