MySQL-Umgebung elastisch skalieren


In dieser Anleitung wird beschrieben, wie eine hochverfügbare MySQL-Datenbank-Clusterbereitstellung (primäre und Replikatdatenbank) vertikal skaliert wird. Dieser Prozess umfasst das vertikale Skalieren und das Herunterskalieren von Compute Engine-Instanzen sowie das vertikale Skalieren ihrer Laufwerke.

Der Grund für das vertikale Skalieren der Laufwerkskapazität ist meist eine Zunahme der zu verwaltenden Daten.

Es gibt mehrere Gründe für das vertikale Skalieren von Compute Engine-Instanzen, die MySQL ausführen. Im Folgenden sind einige Gründe für das vertikale Skalieren aufgeführt (die entgegengesetzten Gründe gelten für das Herunterskalieren):

  • Das System erreicht seine Leistungsgrenze für den Schreib- und Lesedurchsatz. Eine Erhöhung der Anzahl der CPUs und eine Vergrößerung des Arbeitsspeichers steigert die Hardwarekapazität.
  • Die Anzahl der Abfragen nimmt im Laufe der Zeit zu oder es werden Spitzen bei der Anzahl der Abfragen erwartet, z. B. am Black Friday oder Cyber Monday. Eine Erhöhung der Anzahl der CPUs und eine Vergrößerung des Arbeitsspeichers schafft eine Reserve.
  • Die Anzahl der gleichzeitigen Abfragen nimmt zu, beispielsweise wenn dem System mehr Clients hinzugefügt werden. Eine Erhöhung der Anzahl der CPUs und eine Vergrößerung des Arbeitsspeichers ermöglicht ein größeres Maß an Gleichzeitigkeit.
  • In Google Cloud wird in der Liste der Compute Engine-Instanzen möglicherweise die Empfehlung "Leist. erhöhen" angezeigt. Diese Empfehlung ist wichtig, wenn Sie überlegen, ob Sie die Compute Engine-Instanzen vertikal skalieren möchten.

Diese Anleitung ist für folgende Rollen relevant:

  • Cloud-Architekten, die die Bereitstellung eines MySQL-Clusters planen, um Skalierbarkeit zu ermöglichen
  • Cloud-Entwickler, die Anwendungen mithilfe von MySQL-Clustern implementieren
  • Cloud-Operations-Teams, die MySQL-Cluster verwalten
  • IT- und Datenbankadministratoren, die Datenbanken in MySQL-Clustern verwalten und eine vertikale Skalierung (oder im Laufe der Zeit auch mehrere) ausführen müssen

Architektur

Das folgende Diagramm zeigt die Gesamtarchitektur eines hochverfügbaren MySQL-Clusters. In dieser Anleitung dient diese Architektur als Grundlage für das Beschreiben der vertikalen Skalierung.

Diagramm: Architektur der vertikalen Skalierung mit einer MySQL-Clientinstanz, die für die primäre und die Replikatdatenbank bereitgestellt wird

In dieser Anleitung wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:

  • MySQL-Cluster mit Deployment Manager und verschiedenen Befehlszeilentools wie Cloud Shell und mysql einrichten und ausführen
  • Compute Engine-Vorgängen zur Instanzverwaltung
  • Compute Engine-Vorgängen zur Laufwerksverwaltung

Ziele

  • MySQL-Cluster mit primärer Datenbank und Replikatdatenbank einrichten
  • Alle Compute Engine-Instanzen des MySQL-Clusters (Arbeitsspeicher und CPU) vertikal skalieren, indem Sie ihren Maschinentyp ändern
  • Alle Compute Engine-Instanzen des MySQL-Clusters (Arbeitsspeicher und CPU) herunterskalieren, indem Sie ihren Maschinentyp ändern
  • Größe der Laufwerke der Compute Engine-Instanzen erhöhen

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Compute Engine and Cloud Storage APIs aktivieren.

    Aktivieren Sie die APIs

  5. Installieren Sie die Google Cloud CLI.
  6. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  7. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  8. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  9. Compute Engine and Cloud Storage APIs aktivieren.

    Aktivieren Sie die APIs

  10. Installieren Sie die Google Cloud CLI.
  11. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init

MySQL-Cluster einrichten

Im ersten Schritt erstellen Sie einen laufenden MySQL-Cluster. Sie füllen diesen Cluster mit einigen Daten, die der Veranschaulichung und Prüfung dienen. Für die Datenprüfung finden Sie hier eine Anleitung dazu, wie die primäre und die Replikatdatenbank (MySQL-Datenbanken) abgefragt werden.

Die folgende Anleitung zum Einrichten eines MySQL-Clusters wurde (leicht angepasst) aus dem verwandten Thema MySQL-Cluster mit HAProxy zu Compute Engine migrieren übernommen.

  1. Öffnen Sie Cloud Shell in der Google Cloud Console:

    Zu Cloud Shell

  2. Legen Sie eine Umgebungsvariable für den Namen des Cloud Storage-Buckets fest:

    GCS_BUCKET_NAME=${USER}-mysql-$(date +%s)
    echo $GCS_BUCKET_NAME
    
  3. Erstellen Sie den Cloud Storage-Bucket (standardmäßig multiregional):

    gsutil mb gs://${GCS_BUCKET_NAME}/
    

    Der Bucket enthält Erstellungsskripts und Startskripts, die zum Erstellen der primären und der Replikatdatenbank (MySQL) verwendet werden.

  4. Klonen Sie das GitHub-Repository und rufen Sie die Skripts ab, mit denen Sie die Umgebung einrichten:

    git clone https://github.com/GoogleCloudPlatform/solutions-compute-mysql-migration-haproxy.git mysql-migration
    
  5. Führen Sie im Ordner mysql-migration das Initialisierungsskript aus, um einen MySQL-Cluster aus Compute Engine-Instanzen für die primäre und die Replikatdatenbank zu erstellen:

    cd mysql-migration
    ./run.sh ${DEVSHELL_PROJECT_ID} ${GCS_BUCKET_NAME}
    

    Durch dieses Skript wird außerdem eine Compute Engine-Instanz für den MySQL-Client erstellt.

  6. Ermöglichen Sie Remote-Root-Zugriff von der Clientinstanz auf die primäre Instanz:

    1. Rufen Sie in der Google Cloud Console die Seite „**VM-Instanzen“ auf:

      ZUR SEITE "VM-INSTANZEN"

    2. Klicken Sie in der Zeile für die Instanz source-mysql-primary auf SSH, um eine Verbindung zu einer sicheren Shell herzustellen.

    3. Wenn die sichere Shell verfügbar ist, führen Sie den folgenden Befehl aus:

      mysql -u root -psolution-admin
      
    4. Wenn Sie in mysql angemeldet sind, geben Sie die folgende Anweisung aus:

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'solution-admin';
      
  7. Prüfen Sie, ob der Client auf die Datenbank zugreifen kann. Verwenden Sie in der Google Cloud Console ssh, um eine Verbindung zur Compute Engine-Instanz mysql-client herzustellen. Gehen Sie so vor, wenn die sichere Shell verfügbar ist:

    1. Wählen Sie Compute Engine > VM-Instanzen aus, suchen Sie die Zeile mit der Instanz source-mysql-primary und notieren Sie sich die interne IP-Adresse:

      Ersetzen Sie dabei IP_ADDRESS_OF_SOURCE_MYSQL_PRIMARY durch die interne IP-Adresse source-mysql-primary:

      mysql -u root -psolution-admin -h IP_ADDRESS_OF_SOURCE_MYSQL_PRIMARY
      
    2. Wenn die mysql-Shell verfügbar ist, führen Sie die folgenden Befehle aus:

      SHOW databases; # source_db must be present
      USE source_db;
      SHOW tables; # source_table must be present
      SELECT COUNT(*) FROM source_table; # must return 5000
      

      Sie können dieselben Befehle verwenden, um zu prüfen, ob die Replikatdatenbank dasselbe Dataset enthält: Verwenden Sie stattdessen die interne IP-Adresse von source-mysql-replica.

Zu diesem Zeitpunkt werden drei Compute Engine-Instanzen ausgeführt:

  • Der Client (mysql-client).
  • Die primäre MySQL-Datenbank (source-mysql-primary).
  • Die MySQL-Replikatdatenbank (source-mysql-replica). Die primäre MySQL-Datenbank wird in der MySQL-Replikatdatenbank repliziert.

Der Maschinentyp für die Compute Engine-Instanzen ist f1-micro (1 vCPU, 0,6 GB Arbeitsspeicher) und der Maschinentyp nach dem vertikalen Skalieren ist n1-standard-1 (1 vCPU, 3,75 GB Arbeitsspeicher). Die Größe der Laufwerke beträgt 10 GB und wird auf 20 GB verdoppelt. Diese Auswahl ist nur ein Beispiel und kann an die speziellen Anforderungen der jeweiligen Bereitstellung angepasst werden.

Compute Engine-Instanzen vertikal skalieren (ohne Failover)

In diesem Abschnitt wird beschrieben, wie die Compute Engine-Instanzen vertikal skaliert werden, auf denen die primäre und die Replikatdatenbank (MySQL) ausgeführt werden. Sie können die CPU und den Arbeitsspeicher gleichzeitig vertikal skalieren, indem Sie den Maschinentyp der Compute Engine-Instanz ändern. Dazu müssen Sie die Compute Engine-Instanz beenden und nach der Änderung neu starten.

Damit die Verarbeitungskapazität gleich bleibt, sollten Sie beide Compute Engine-Instanzen so konfigurieren, dass sie denselben Maschinentyp verwenden.

Die MySQL-Replikatdatenbank wird zuerst vertikal skaliert und erkannte Probleme stören die Ausführung der primären MySQL-Datenbank nicht. Wenn ein Problem auftritt, können Sie es ohne Ausfall der primären Datenbank beheben. Außerdem können Sie beurteilen, ob es ein vorübergehendes oder nur scheinbares Problem war oder ob es sich um ein allgemeines Problem handelt, das Sie beheben müssen, bevor die primäre Datenbank vertikal skaliert wird.

Ein alternativer Ansatz (für den ebenfalls ein Neustart der Compute Engine-Instanzen erforderlich ist) umfasst das Failover der primären zur sekundären Datenbank, um Ausfallzeiten zu minimieren. Dieser Ansatz wird in den folgenden Abschnitten beschrieben.

MySQL-Replikatdatenbank vertikal skalieren

Beenden Sie zuerst die Compute Engine-Instanz, auf der die MySQL-Replikatdatenbank ausgeführt wird.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie in der Zeile für die Instanz source-mysql-replica auf (Weitere Aktionen) und dann auf Beenden.

  3. Klicken Sie nach dem Beenden der Compute Engine-Instanz auf source-mysql-replica und dann auf  Bearbeiten.

  4. Wählen Sie unter Maschinentyp den Maschinentyp n1-standard-1 (1 vCPU, 3,75 GB Arbeitsspeicher) aus, auf den vertikal skaliert werden soll.

  5. Klicken Sie auf Speichern.

  6. Klicken Sie nach dem Speichern auf  Starten.

Mit den zuvor erwähnten mysql-Überprüfungsbefehlen können Sie testen, ob die MySQL-Replikatdatenbank nach dem Skalierungsvorgang wieder aktiv ist.

Primäre MySQL-Datenbank vertikal skalieren

Beenden Sie zuerst die Compute Engine-Instanz, auf der die primäre MySQL-Datenbank ausgeführt wird.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie in der Zeile für die Instanz source-mysql-primary auf (Weitere Aktionen) und dann auf Beenden.

  3. Klicken Sie nach dem Beenden der Compute Engine-Instanz auf source-mysql-primary und dann auf  Bearbeiten.

  4. Wählen Sie unter Maschinentyp den Maschinentyp n1-standard-1 (1 vCPU, 3,75 GB Arbeitsspeicher) aus, auf den vertikal skaliert werden soll. Achten Sie darauf, dass dieser Maschinentyp mit dem für die MySQL-Replikatdatenbank ausgewählten Maschinentyp übereinstimmt.

  5. Klicken Sie auf Speichern.

  6. Klicken Sie nach dem Speichern auf  Starten.

Mit den zuvor erwähnten mysql-Überprüfungsbefehlen können Sie testen, ob die primäre MySQL-Datenbank nach dem Skalierungsvorgang wieder aktiv ist.

Compute Engine-Instanzen herunterskalieren (ohne Failover)

In diesem Abschnitt wird beschrieben, wie die Compute Engine-Instanzen herunterskaliert werden, auf denen die primäre und die Replikatdatenbank (MySQL) ausgeführt werden. Sie können die CPU und den Arbeitsspeicher gleichzeitig herunterskalieren, indem Sie den Maschinentyp der Compute Engine-Instanz ändern. Dazu müssen Sie die Compute Engine-Instanz beenden und nach der Änderung neu starten.

Damit die Verarbeitungskapazität gleich bleibt, sollten Sie beide Compute Engine-Instanzen so konfigurieren, dass sie denselben Maschinentyp verwenden. Die Schritte sind analog zu denen für das vertikale Skalieren. Der Vollständigkeit halber werden sie jedoch im nächsten Abschnitt explizit angegeben.

MySQL-Replikatdatenbank herunterskalieren

Beenden Sie zuerst die Compute Engine-Instanz, auf der die MySQL-Replikatdatenbank ausgeführt wird.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie in der Zeile für die Instanz source-mysql-replica auf (Weitere Aktionen) und dann auf Beenden.

  3. Klicken Sie nach dem Beenden der Compute Engine-Instanz auf source-mysql-replica und dann auf  Bearbeiten.

  4. Wählen Sie unter Maschinentyp den Maschinentyp f1-micro (1 vCPU, 0,6 GB Arbeitsspeicher) aus, auf den herunterskaliert werden soll.

  5. Klicken Sie auf Speichern.

  6. Klicken Sie nach dem Speichern auf  Starten.

Mit den zuvor erwähnten mysql-Überprüfungsbefehlen können Sie testen, ob die MySQL-Replikatdatenbank nach dem Skalierungsvorgang wieder aktiv ist.

Primäre MySQL-Datenbank herunterskalieren

Beenden Sie zuerst die Compute Engine-Instanz, auf der die primäre MySQL-Datenbank ausgeführt wird.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie in der Zeile für die Instanz source-mysql-primary auf (Weitere Aktionen) und dann auf Beenden.

  3. Klicken Sie nach dem Beenden der Compute Engine-Instanz auf source-mysql-primary und dann auf  Bearbeiten.

  4. Wählen Sie unter Maschinentyp den Maschinentyp f1-micro (1 vCPU, 0,6 GB Arbeitsspeicher) aus, auf den herunterskaliert werden soll. Achten Sie darauf, dass dieser Maschinentyp mit dem Maschinentyp übereinstimmt, den Sie zuvor für die MySQL-Replikatdatenbank ausgewählt haben.

  5. Klicken Sie auf Speichern.

  6. Klicken Sie nach dem Speichern auf  Starten.

Mit den zuvor erwähnten mysql-Überprüfungsbefehlen können Sie testen, ob die primäre MySQL-Datenbank nach dem Skalierungsvorgang wieder aktiv ist.

Compute Engine-Instanzen vertikal skalieren (mit Failover)

Das Herunterfahren, vertikale Skalieren und Neustarten einer MySQL-Datenbank kann in einer Produktionsumgebung zu lange dauern. Der schnellere Prozess beinhaltet einen Failover: Sie skalieren zuerst die Replikatdatenbank vertikal und sobald sie wieder einsatzbereit ist, beenden Sie die vorhandene primäre Datenbank und die Replikatdatenbank wird zur (neuen) primären Datenbank. Die Gesamtausfallzeit ist die Zeit, die für den Failover der MySQL-Datenbank zur vertikal skalierten Replikatdatenbank erforderlich ist.

Der Prozess läuft ungefähr so ab:

  1. Replikatdatenbank vertikal skalieren, indem Sie sie beenden, ihren Maschinentyp ändern und sie neu starten
  2. Warten, bis die Replikatdatenbank die Änderungen übernommen hat, die während des vertikalen Skalierens der Replikatdatenbank in der primären Datenbank vorgenommen wurden
  3. Primäre Datenbank beenden
  4. Warten, bis die Replikatdatenbank das Replikationslog geleert hat
  5. Replikatdatenbank zur neuen primären Datenbank machen
  6. Primäre Datenbank (neue Replikatdatenbank) beenden
  7. Neue Replikatdatenbank hochskalieren
  8. Diese Datenbank der neuen primären Datenbank unterordnen

Nach Abschluss dieses Vorgangs werden beide MySQL-Systeme vertikal skaliert und befinden sich in einer Primär/Replikat-Beziehung: Die vorherige primäre Datenbank ist die neue Replikatdatenbank und die vorherige Replikatdatenbank ist die neue primäre Datenbank. Die entsprechenden Befehle werden in den folgenden Abschnitten ausführlich beschrieben.

Ein Fallback ist im allgemeinen Fall nicht unbedingt erforderlich, da die Maschinentypen der primären und der Replikatdatenbank dieselben sind und auch die Laufwerkgröße übereinstimmt. Während des Fallbacks würde es zu einem kurzen Ausfall kommen. Wenn das Fallback aber erforderlich ist, müssen Sie die Failover-Schritte ein zweites Mal ausführen.

Vorhandene MySQL-Replikatdatenbank hochskalieren

Skalieren Sie die Replikatdatenbank wie unter MySQL-Replikatdatenbank vertikal skalieren beschrieben. Währenddessen bleibt die primäre Datenbank verfügbar.

Failover von der primären Datenbank zur hochskalierten Replikatdatenbank

Mit den folgenden Befehlen wird der Failover von der primären zur Replikatdatenbank durchgeführt.

  1. Beenden Sie in Cloud Shell die primäre Datenbank, damit keine weiteren Updates empfangen werden:

    gcloud compute instances stop source-mysql-primary --zone=us-east1-b;
    

    Sie brauchen nicht darauf zu warten, dass die primäre Datenbank beendet wurde, bevor Sie mit den nächsten Schritten fortfahren.

  2. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    ZUR SEITE "VM-INSTANZEN"

  3. Klicken Sie in der Zeile der Instanz source-mysql-replica auf SSH, um eine Verbindung zur Instanz herzustellen.

  4. Wenn die sichere Shell verfügbar ist, starten Sie die mysql-Shell:

    mysql -u root -psolution-admin
    
  5. Prüfen Sie, ob das binäre Logging für die Replikatdatenbank aktiviert ist (Einstellung muss ON sein):

    SHOW VARIABLES LIKE 'log_bin';
    
  6. Prüfen Sie, ob Log-Slave-Updates deaktiviert sind (Einstellung muss OFF sein):

    SHOW VARIABLES LIKE 'log_slave%';
    
  7. Leeren Sie das Relay-Log:

    STOP SLAVE IO_THREAD;
    
  8. Prüfen Sie, ob die Verarbeitung vollständig durchgeführt wurde:

    SHOW PROCESSLIST;
    

    Die Ausgabe dieses Befehls muss Slave has read all relay log lauten. Führen Sie den Befehl so lange aus, bis dieses Ergebnis angezeigt wird.

  9. Beenden Sie die Replikatdatenbank:

    STOP SLAVE;
    
  10. Machen Sie die Replikatdatenbank zur primären Datenbank:

    RESET MASTER;
    GRANT REPLICATION SLAVE ON *.* TO 'sourcereplicator'@'%' IDENTIFIED BY 'solution-admin';
    

Die neue primäre Datenbank ist jetzt eingerichtet.

Neue MySQL-Replikatdatenbank vertikal skalieren

Die vorherige Replikatdatenbank ist jetzt die primäre Datenbank und Clients können für Lese- und Schreibvorgänge darauf zugreifen.

Skalieren Sie die Replikatdatenbank (die vorherige primäre Datenbank) vertikal, indem Sie der zuvor beschriebenen Anleitung folgen, und starten Sie dann die Replikatdatenbank.

Replikatdatenbank zur Replikation mit der primären Datenbank verbinden

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    ZUR SEITE "VM-INSTANZEN"

  2. Klicken Sie in der Zeile der Instanz source-mysql-primary auf SSH, um eine Verbindung zu einer sicheren Shell herzustellen.

  3. Wenn die sichere Shell verfügbar ist, starten Sie die mysql-Shell:

    mysql -u root -psolution-admin
    
  4. Starten Sie die Replikation:

    CHANGE MASTER TO MASTER_HOST='source-mysql-replica', master_user='sourcereplicator',master_password='solution-admin';
    RESET SLAVE;
    START SLAVE;
    

Die Instanz der primären MySQL-Datenbank repliziert nun zur Replikatdatenbank.

Replikation von der primären zur Replikatdatenbank testen

Durch den folgenden Test wird in der Tabelle source_table eine Zeile für die Instanz der primären MySQL-Datenbank source-mysql-replica hinzugefügt. Sie können das Hinzufügen in der Instanz der MySQL-Datenbank source-mysql-primary beobachten.

  1. Fügen Sie in der Instanz source-mysql-replica eine Zeile für die neue primäre Datenbank hinzu. Wenn zuvor keine Zeile hinzugefügt wurde, muss für die Anzahl 5001 angezeigt werden.

    USE source_db;
    INSERT INTO source_table (event_data) VALUES (ROUND(RAND()*15000,2));
    SELECT count(*) FROM source_table;
    
  2. Beobachten Sie die Replikation anhand der Replikatdatenbank. Für die Anzahl muss 5001 angezeigt werden.

    USE source_db;
    SELECT count(*) FROM source_table;
    

Damit ist das für den Failover-Prozess erforderliche Verfahren abgeschlossen. Sie verwenden dasselbe Verfahren zum Herunterskalieren in Verbindung mit einem Failover.

Größe der Laufwerke der Compute Engine-Instanzen erhöhen

In diesem Abschnitt wird beschrieben, wie Sie die Größe eines Compute Engine-Instanzlaufwerks sowohl für die Compute Engine-Instanz, die die primäre MySQL-Datenbank hostet, als auch für die Compute Engine-Instanz, die die MySQL-Replikatdatenbank hostet, erhöhen. Laufwerke können vergrößert, aber nicht verkleinert werden.

Zum vertikalen Skalieren von Laufwerken gibt es zwei Ansätze, die beide in den folgenden Abschnitten beschrieben werden. Die Möglichkeit, die Größe von Laufwerken dynamisch anzupassen, ist ein Feature, bei dem Sie die Compute Engine-Instanzen nicht neu erstellen müssen. Weitere Informationen finden Sie in diesem Blogpost. Ein Ansatz besteht darin, die Compute Engine-Instanzen vor dem Erhöhen der Laufwerkgröße zu beenden und sie danach neu zu starten. Beim Neustart der Instanzen wird automatisch die Größe der Root-Partition angepasst, in der die MySQL-Datendateien gespeichert sind.

Der alternative Ansatz erfordert kein Beenden und Neustarten der Compute Engine-Instanzen. Stattdessen müssen Sie in Cloud Shell und in den sicheren Shells der Instanzen Befehlszeilenanweisungen ausführen.

Zur Bestätigung können Sie vor und nach der Erhöhung der Laufwerkgröße jeweils mit dem Befehl df -h --total die Größe prüfen.

Wir empfehlen als Best Practice, für beide Laufwerke jeweils einen Snapshot zu erstellen, bevor Sie ihre Größe ändern. Dadurch können Sie den Zustand wiederherstellen, den die Laufwerke vor der Größenanpassung hatten.

Laufwerkgröße der MySQL-Replikatdatenbank erhöhen (mit Herunterfahren)

Erhöhen Sie zuerst die Größe des Laufwerks der Compute Engine-Instanz, die die MySQL-Replikatdatenbank hostet.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie in der Zeile für die Instanz source-mysql-replica auf (Weitere Aktionen) und dann auf Beenden.

  3. Listen Sie die Laufwerke der Compute Engine-Instanzen auf:

    LAUFWERKE DER INSTANZEN AUFLISTEN

  4. Wählen Sie source-mysql-replica aus.

  5. Klicken Sie auf  Bearbeiten.

  6. Erhöhen Sie die Größe auf 20 GB.

  7. Klicken Sie auf Speichern und warten Sie, bis der Speichervorgang abgeschlossen ist.

  8. Listen Sie die Compute Engine-Instanzen auf:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  9. Klicken Sie in der Zeile für die Instanz source-mysql-replica auf (Weitere Aktionen) und dann auf Starten.

Mit den zuvor erwähnten mysql-Überprüfungsbefehlen können Sie prüfen, ob die MySQL-Primärdatenbank nach der Erhöhung der Laufwerkgröße wie erwartet ausgeführt wird.

Laufwerkgröße der primären MySQL-Datenbank erhöhen (mit Herunterfahren)

Erhöhen Sie die Größe des Laufwerks der Compute Engine-Instanz, die die primäre MySQL-Datenbank hostet.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie in der Zeile für die Instanz source-mysql-primary auf (Weitere Aktionen) und dann auf Beenden.

  3. Listen Sie die Laufwerke der Compute Engine-Instanzen auf:

    LAUFWERKE DER INSTANZEN AUFLISTEN

  4. Wählen Sie source-mysql-primary aus.

  5. Klicken Sie auf  Bearbeiten.

  6. Erhöhen Sie die Größe auf 20 GB.

  7. Klicken Sie auf Speichern und warten Sie, bis der Speichervorgang abgeschlossen ist.

  8. Listen Sie die Compute Engine-Instanzen auf:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  9. Klicken Sie in der Zeile für die Instanz source-mysql-primary auf (Weitere Aktionen) und dann auf Starten.

Mit den zuvor erwähnten mysql-Überprüfungsbefehlen können Sie prüfen, ob die MySQL-Primärdatenbank nach der Erhöhung der Laufwerkgröße wie erwartet ausgeführt wird.

Laufwerkgröße der MySQL-Replikatdatenbank erhöhen (dynamisch ohne Herunterfahren)

Durch die folgenden Schritte wird die Laufwerkgröße für das Dateisystem ext4 und ein Volume mit einer einzelnen Partition dynamisch erhöht. Bei anderen Dateisystemtypen oder Partitionskonfigurationen sind für die Erhöhung andere Schritte erforderlich.

Wie zuvor erhöhen Sie zuerst die Laufwerkgröße der Compute Engine-Instanz, auf der die Replikatdatenbank gehostet wird, und erhöhen dann die Laufwerkgröße der Compute Engine-Instanz, auf der die primäre Datenbank gehostet wird.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie auf SSH, um eine Verbindung zur Instanz source-mysql-replica herzustellen.

  3. Prüfen Sie in der sicheren Shell das Laufwerk und seine Partitionierung und beachten Sie, dass das Laufwerk sda genau eine Partition sda1 hat:

    lsblk
    
  4. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Laufwerkgröße zu erhöhen. Antworten Sie bei der Eingabeaufforderung mit y.

    gcloud compute disks resize source-mysql-replica --size=20G --zone=us-east1-c
    
  5. Prüfen Sie in der sicheren Shell, ob die Laufwerkgröße erhöht wurde:

    lsblk
    

    Beachten Sie auch, dass die Partition immer noch 10 GB groß ist.

  6. Führen Sie in der sicheren Shell den folgenden Befehl aus, um die Dateisysteme, ihren Typ und ihre Größe zu sehen:

    df -Th
    
  7. Vergrößern Sie in der sicheren Shell die Partition:

    sudo growpart /dev/sda 1
    sudo resize2fs /dev/sda1
    lsblk
    df -Th
    

    Mit den letzten beiden Befehlen können Sie die Erhöhung sehen.

Laufwerkgröße der primären MySQL-Datenbank erhöhen (dynamisch ohne Herunterfahren)

Der Vorgang zum dynamischen Erhöhen der Laufwerkgröße für die primäre Datenbank stimmt mit dem für die Replikatdatenbank überein.

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf, um die Liste der Compute Engine-Instanzen zu sehen:

    COMPUTE ENGINE-INSTANZEN AUFLISTEN

  2. Klicken Sie auf SSH, um eine Verbindung zur Instanz source-mysql-primary herzustellen.

  3. Prüfen Sie in der sicheren Shell das Laufwerk und seine Partitionierung und beachten Sie, dass das Laufwerk sda genau eine Partition sda1 hat:

    lsblk
    
  4. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Laufwerkgröße zu erhöhen. Antworten Sie bei der Eingabeaufforderung mit y.

    gcloud compute disks resize source-mysql-primary --size=20G --zone=us-east1-b
    
  5. Prüfen Sie in der sicheren Shell, ob die Laufwerkgröße erhöht wurde:

    lsblk
    

    Beachten Sie auch, dass die Partition immer noch 10 GB groß ist.

  6. Führen Sie in der sicheren Shell den folgenden Befehl aus, um die Dateisysteme, ihren Typ und ihre Größe zu sehen:

    df -Th
    
  7. Vergrößern Sie in der sicheren Shell die Partition:

    sudo growpart /dev/sda 1
    sudo resize2fs /dev/sda1
    lsblk
    df -Th
    

    Mit den letzten beiden Befehlen können Sie die Erhöhung sehen.

Bereinigen

Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Weitere Informationen

Sie können die in dieser Anleitung erworbenen Kenntnisse auf MySQL-Cluster in einer Produktionsumgebung anwenden, um einen Prozess für erforderliche Skalierungen zu etablieren. Klonen Sie zur Übung zuerst die MySQL-Produktionsclusterumgebung und führen Sie einen Probelauf durch. Beachten Sie alle wichtigen Schritte, die sich auf nachfolgende vertikale Skalierungen in der Produktionsumgebung auswirken können.

Eventuell sollten Sie Skripts entwickeln, durch die die in dieser Anleitung beschriebenen Schritte ausgeführt werden. So können Sie in Ihrer Produktionsumgebung automatisch statt manuell skalieren.

Weitere Informationen finden Sie in diesen MySQL-Anleitungen.

Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center