Auf dieser Seite finden Sie eine Übersicht zur Migration Ihrer Online Transactional Processing-Datenbank (OLTP) von MySQL zu Spanner. Der Migrationsprozess zu Spanner kann je nach Faktoren wie Datengröße, Ausfallzeitenanforderungen, Komplexität des Anwendungscodes, Fragmentierungsschema, benutzerdefinierten Funktionen sowie Failover- und Replikationsstrategien variieren.
Die Spanner-Migration ist in die folgenden Schritte unterteilt:
- Migration bewerten
- Schema migrieren und alle SQL-Abfragen übersetzen
- Anwendung migrieren, um Spanner zusätzlich zu MySQL zu verwenden
- Beispieldaten laden und Leistung optimieren
- Daten migrieren
- Migration prüfen
- Mechanismen für die Umstellung und das Fallback konfigurieren
Migration bewerten
Bei der Bewertung einer Migration von Ihrer MySQL-Quelldatenbank zu Spanner müssen Sie Ihre geschäftlichen, technischen, betrieblichen und finanziellen Anforderungen berücksichtigen. Weitere Informationen finden Sie unter Migration bewerten.
Schema migrieren
Sie konvertieren Ihr vorhandenes Schema mit dem Spanner Migrationstool in ein Spanner Schema.
Weitere Informationen finden Sie unter Schema von MySQL migrieren – Übersicht.
Anwendung migrieren, um Spanner zu verwenden
Spanner bietet eine Reihe von Clientbibliotheken für verschiedene Sprachen und die Möglichkeit, Daten mit Spanner-spezifischen API-Aufrufen sowie mit SQL-Abfragen und DML-Anweisungen (Data Modification Language) zu lesen und zu schreiben. Die Verwendung von API-Aufrufen kann für einige Abfragen schneller sein, z. B. für das direkte Lesen der Zeilen nach Schlüssel, da die SQL-Anweisung nicht übersetzt werden muss.
Spanner bietet einen JDBC-Treiber für Java-Anwendungen.
Im Rahmen des Migrationsprozesses müssen Funktionen, die in Spanner nicht verfügbar sind, wie bereits erwähnt in der Anwendung implementiert werden. Ein Trigger, um Datenwerte zu überprüfen und eine verbundene Tabelle zu aktualisieren, müsste beispielsweise in der Anwendung mithilfe einer Lese- oder Schreibtransaktion implementiert werden, die die vorhandene Zeile liest, die Einschränkungen überprüft und die aktualisierten Zeilen in beide Tabellen schreibt.
Die Standardisolationsebene von Transaktionen in Spanner ist die serialisierbare Isolation, die für eine externe Konsistenz Ihrer Daten sorgt. Spanner bietet auch die Isolation wiederholbarer Lesevorgänge. Wir empfehlen, die Isolationsebene im Rahmen des Migrationsprozesses der Anwendung auf „Wiederholbarer Lesevorgang“ und die Nebenläufigkeitserkennung auf „Pessimistische Parallelität“ festzulegen, damit die Transaktionssemantik von Spanner der Standardtransaktionssemantik von MySQL möglichst nahe kommt. Eine Anleitung zum Festlegen der Isolationsebene und der Parallelitätssteuerung in Ihrer Anwendung finden Sie unter Isolationsebene „Wiederholbarer Lesevorgang“ verwenden und Parallelitätssteuerung konfigurieren.
Spanner bietet Lese-/Schreibtransaktionen und schreibgeschützte Transaktionen. Außerdem können für Lesetransaktionen Zeitstempelgrenzen angewendet werden, bei denen eine konsistente Version der angegebenen Daten gelesen wird. Entweder
- zu einer genauen Zeit in der Vergangenheit (bis zu 1 Stunde zuvor),
- in der Zukunft (der Lesevorgang wird bis zu dieser Zeit blockiert) oder
- mit einer akzeptablen begrenzten Veralterung, die eine konsistente Darstellung bis zu einem früheren Zeitpunkt ausgibt. Hierbei muss nicht geprüft werden, ob spätere Daten auf einem anderen Replikat verfügbar sind. Dies kann Leistungsvorteile mit sich bringen, aber die Daten sind unter Umständen veraltet.
Beispieldaten in Spanner laden
Sie können Beispieldaten in Spanner laden, bevor Sie eine vollständige Datenmigration durchführen, um Schemas, Abfragen und Ihre Anwendung zu testen.
Sie können den umgekehrten ETL-Workflow von BigQuery und die Google Cloud CLI verwenden, um eine kleine Menge von Daten im CSV-Dateiformat in Spanner zu laden.
Weitere Informationen finden Sie unter Beispieldaten laden.
Wenn Sie Ihre Daten von MySQL in Spanner übertragen möchten, können Sie Ihre MySQL-Datenbank auch in ein portables Dateiformat (z. B. XML) exportieren und die Daten anschließend mit Dataflow in Spanner importieren.
Daten zu Spanner migrieren
Nachdem Sie Ihr Spanner-Schema optimiert und Beispieldaten geladen haben, können Sie Ihre Daten in eine leere Spanner-Produktionsdatenbank verschieben.
Weitere Informationen finden Sie unter Live-Datenmigration von MySQL.
Datenmigration prüfen
Während Daten in ihre Spanner-Datenbank gestreamt werden, können Sie regelmäßig einen Vergleich zwischen den Spanner- und den MySQL-Daten vornehmen, um sicherzustellen, dass die Daten konsistent sind. Sie können die Konsistenz prüfen. Dazu fragen Sie beide Datenquellen ab und vergleichen die Ergebnisse.
Sie können Dataflow verwenden, um mithilfe der Join-Transformationeinen detaillierten Vergleich großer Datasets vorzunehmen. Diese Transformation prüft anhand der Schlüssel von zwei Datasets, ob die Werte übereinstimmen. Die übereinstimmenden Werte können dann verglichen werden. Sie können diese Überprüfung regelmäßig vornehmen, bis die Konsistenz Ihren Geschäftsanforderungen entspricht.
Weitere Informationen finden Sie unter Datenmigration prüfen.
Mechanismen für die Umstellung und das Fallback konfigurieren
Sie können die Umstellung und das Fallback für MySQL mithilfe der umgekehrten Replikation einrichten. Umstellung und Fallback bedeuten, dass Sie einen Notfallplan haben, um zu Ihrer MySQL-Quelldatenbank zurückzukehren, wenn Probleme mit Spanner auftreten.
Die umgekehrte Replikation ist nützlich, wenn unerwartete Probleme mit Spanner auftreten und Sie mit minimalen Unterbrechungen des Dienstes zur ursprünglichen MySQL-Datenbank zurückkehren müssen. Die umgekehrte Replikation ermöglicht das Fallback, indem Daten, die in Spanner geschrieben wurden, in Ihre MySQL-Quelldatenbank zurückrepliziert werden.
Der umgekehrte Replikationsfluss umfasst die folgenden Schritte, die von der
Spanner to SourceDB Dataflow-Vorlage ausgeführt werden:
Änderungen aus Spanner mit Spanner-Änderungsstreams lesen.
Die vorwärts migrierten Änderungen filtern.
Spanner-Daten so transformieren, dass sie mit dem Schema Ihrer Quelldatenbank kompatibel sind.
Prüfen, ob die Quelldatenbank bereits neuere Daten für den angegebenen Primärschlüssel enthält.
Die Daten in Ihre Quelldatenbank schreiben.
Nächste Schritte
- Best Practices für das Schemadesign.
- Spanner-Schema optimieren.
- Dataflow für komplexere Situationen nutzen