Legacy-Konfiguration für Hochverfügbarkeit

Auf dieser Seite wird die Legacy-Konfiguration einer MySQL-Instanz für Hochverfügbarkeit erläutert. Bei der Legacy-Konfiguration wird für eine Instanz mit einem Failover eine failover replica-Instanz verwendet. Die neue Konfiguration nutzt keine Failover-Replikate. Stattdessen werden die regionalen nichtflüchtigen Speicher von Google verwendet, die Daten auf Blockebene zwischen zwei Zonen in einer Region synchron replizieren.

Weitere Informationen zur aktuellen Konfiguration für Hochverfügbarkeit finden Sie unter Hochverfügbarkeit konfigurieren – Übersicht.

Instanz von Legacy-Version auf aktuelle Hochverfügbarkeit aktualisieren

So aktualisieren Sie Ihre Instanz von der Legacy-Konfiguration auf die neue Hochverfügbarkeitskonfiguration:

  1. Löschen Sie das Failover-Replikat auf den MySQL-Instanzen, die Sie aktualisieren möchten. Hochverfügbarkeit für eine Instanz deaktivieren.
  2. Konfigurieren Sie die Instanz so, dass sie die aktuelle Version der Hochverfügbarkeit verwendet. Siehe Bestehende Instanz für Hochverfügbarkeit konfigurieren.

Legacy-Konfiguration: Neue Instanz für Hochverfügbarkeit erstellen

Wenn Sie eine Instanz erstellen und sie für Hochverfügbarkeit konfigurieren können, erstellt Cloud SQL das Failover-Replikat zur selben Zeit wie die primäre Instanz. Das Legacy-Feature ist in der Cloud Console nicht verfügbar. Verwenden Sie stattdessen gcloud- oder cURL-Befehle.

Eine Instanz mit konfigurierter Hochverfügbarkeit erstellen:

gcloud

  1. Erstellen Sie die primäre Instanz und das zugehörige Failover-Replikat:
    gcloud sql instances create PRIMARY_INSTANCE_NAME \
    --backup-start-time=BACKUP_WINDOW_START_TIME \
    --failover-replica-name=FAILOVER_REPLICA_NAME \
    --cpu=CPU \
    --memory=MEMORY \
    --enable-bin-log
    

    Die Startzeit des Sicherungszeitraums hat das Format HH:MM.

    Die vollständige Liste der verfügbaren Parameter finden Sie auf der Referenzseite für gcloud sql instances create.

  2. Konfigurieren Sie den Root-Nutzer auf der primären Instanz:
    gcloud sql users set-password root --host=% \
                          --instance PRIMARY_INSTANCE_NAME --password PASSWORD
    

    Das Failover-Replikat wird mit denselben CPU- und Arbeitsspeicherressourcen wie die primäre Instanz erstellt. Sie können die CPU- und Arbeitsspeicherressourcen des Failover-Replikats später ändern, sie müssen jedoch mindestens so groß wie die primäre Instanz sein.

cURL

  1. Erstellen Sie die primäre Instanz und das zugehörige Failover-Replikat:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name":"PRIMARY_INSTANCE_NAME", "region":"REGION",
                  "settings": {
                               "tier":"MACHINE_TYPE",
                               "backupConfiguration": {"binaryLogEnabled": true, "enabled": true}},
                               "failoverReplica": {"name": "FAILOVER_REPLICA_NAME"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
    
    Die vollständige Liste der Parameter für diese Anfrage finden Sie auf der Seite instances:insert.
  2. Wenn die Initialisierung der primären Instanz abgeschlossen ist, aktualisieren Sie das Root-Passwort auf der primären Instanz:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "root", "host": "%", "password": "ROOT_PASSWORD"}' \
         'https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME/users?host=%25&name=root'
    
    Diese Änderung wird automatisch für das Replikat übernommen.

Legacy-Konfiguration: Eine bestehende Instanz für Hochverfügbarkeit konfigurieren

Während des Konfigurierens einer vorhandenen Instanz für Hochverfügbarkeit kommt es zu einer Ausfallzeit von einigen Minuten.

So konfigurieren Sie eine vorhandene Instanz für Hochverfügbarkeit:

gcloud

  1. Prüfen Sie den Status der primären Instanz:
    gcloud sql instances describe PRIMARY_INSTANCE_NAME
    

    Wenn das Attribut databaseReplicationEnabled den Wert true hat, ist die Instanz ein Replikat. Für ein Replikat können Sie kein Failover-Replikat erstellen.

  2. Wenn das Attribut enabled unter backupConfiguration den Wert false hat, aktivieren Sie jetzt die Sicherungen für die primäre Instanz:
    gcloud sql instances patch PRIMARY_INSTANCE_NAME \
    --backup-start-time HH:MM
    

    Der Parameter backup-start-time wird im 24-Stunden-Format in der Zeitzone UTC±00 angegeben und definiert den Beginn eines vierstündigen Sicherungszeitraums. Die Sicherungen können zu einem beliebigen Zeitpunkt innerhalb dieses Sicherungszeitraums gestartet werden.

  3. Wenn das Attribut binaryLogEnabled den Wert false hat, aktivieren Sie das binäre Logging:
    gcloud sql instances patch PRIMARY_INSTANCE_NAME \
    --enable-bin-log
    

    Nach der Aktivierung der binären Logs wird die Instanz neu gestartet.

  4. Erstellen Sie das Replikat:
    gcloud sql instances create FAILOVER_REPLICA_NAME \
    --master-instance-name=PRIMARY_INSTANCE_NAME \
    --replica-type=FAILOVER
    

cURL

  1. Prüfen Sie den Status der primären Instanz:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME?fields=settings
    

    Die Ausgabe enthält die backupConfiguration. Beispiel:

    "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "binaryLogEnabled": true
    }
    
  2. Wenn entweder enabled oder binaryLogEnabled den Wert false hat, verwenden Sie die Methode patch der Instanzressource, um beide Parameter zu aktivieren. Legen Sie die Attribute der Sicherungskonfiguration fest, die Sie beibehalten bzw. ändern möchten.

    Legen Sie für enabled den Wert true fest und geben Sie als Wert für startTime den Beginn des Sicherungszeitraums an, um die Sicherungen zu aktivieren. Setzen Sie binaryLogEnabled auf true, um das binäre Logging zu aktivieren.

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"settings" : {"backupConfiguration" : {"startTime": "HH:MM", "enabled": true, "binaryLogEnabled": true}}}' \
         -X PATCH \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/
    
  3. Erstellen Sie mit der Methode insert der Instanzenressource das Failover-Replikat:

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "REPLICA_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME",
                  "region": "PRIMARY_IMSTANCE_REGION", "databaseVersion": "PRIMARY_DATABASE_VERSION",
                  "replicaConfiguration": {"failoverTarget": true},
                  "settings": {"tier":"MACHINE_TYPE"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
    

    MACHINE_TYPE muss mindestens so groß wie der Maschinentyp der primären Instanz sein.

Failover initialisieren

Der Test des Failovers ist optional. Er wird jedoch empfohlen, damit Sie wissen, wie Ihre Anwendung auf einen Failover reagiert.

Weitere Informationen zu Failovers finden Sie unter Failover – Übersicht.

gcloud

Failover initialisieren:

gcloud sql instances failover PRIMARY_INSTANCE_NAME

cURL

  1. Beschreiben Sie die primäre Instanz, um den Wert des Felds settingsVersion zu erhalten.
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME
    
  2. Initialisieren Sie den Failover:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"failoverContext":{"settingsVersion":"SETTINGS_VERSION"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/failover
    

Die Instanz kann während des Failovers einige Minuten keine Daten bereitstellen.

Legacy-Konfiguration: Benachrichtigung über Replikationsverzögerung erstellen

Die Zeit, die ein Failover-Vorgang beansprucht, hängt von der Replikationsverzögerung bei der Initialisierung des Failovers ab. Sie können in der Google Cloud Console mit dem Monitoring der Operations-Suite von Google Cloud festlegen, dass Sie benachrichtigt werden, wenn die Replikationsverzögerung einen bestimmten Schwellenwert überschreitet.

Weitere Informationen über Replikationsverzögerungen finden Sie auf der Seite der Syntax für SHOW SLAVE STATUS in der MySQL-Dokumentation unter "seconds_behind_master".

Weitere Informationen erhalten Sie in der Dokumentation zum Monitoring der Operations-Suite von Google Cloud.

Legacy-Konfiguration: Benachrichtigung für ein bestimmtes Failover-Replikat einstellen

  1. Klicken Sie links oben auf das Logo der Operations-Suite von Google Cloud, um zur Monitoring-Hauptseite der Operations-Suite von Google Cloud zurückzukehren.
  2. Klicken Sie auf Benachrichtigungsrichtlinie erstellen.
  3. Geben Sie für die Benachrichtigung einen aussagekräftigen Namen ein.
  4. Wählen Sie Messwertschwelle aus und klicken Sie auf Weiter, um den zugehörigen Tab zu öffnen.
  5. Wählen Sie Cloud SQL als Ressourcentyp aus.
  6. Wählen Sie unter Gilt für die Option Einzeln und dann Ihr Failover-Replikat aus.
  7. Klicken Sie auf Weiter, um den Konfigurations-Tab zu öffnen.
  8. Geben Sie die folgenden Werte ein:

    Feld Wert
    Wenn Messwert Sekunden nach Master
    Bedingung über
    Grenzwerte 120 (oder ein anderer, für Ihre Umgebung geeigneter Wert)
    Für 3 Minuten

  9. Wählen Sie die gewünschten Methoden der Benachrichtigung aus und klicken Sie auf Bedingung speichern.

Legacy-Konfiguration: Benachrichtigung für eine Gruppe von Failover-Replikaten festlegen

Wenn Sie innerhalb eines Projekts mehrere Failover-Replikate erstellen, ist es potenziell einfacher, die Benachrichtigung für die gesamte Gruppe als für jedes einzelne Replikat gesondert zu konfigurieren. Erweitern Sie die Namen der Failover-Replikate um ein Suffix wie "-failover", um eine Gruppe für die Überwachung zu erstellen. Vergewissern Sie sich, dass dieses Suffix nicht für andere Cloud SQL-Instanzen verwendet wird.

Gruppe von Failover-Replikaten erstellen:

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud Monitoring.

    Zu Cloud Monitoring

  2. Wählen Sie in der oberen Menüleiste Gruppen > Erstellen... aus.
  3. Geben Sie einen aussagekräftigen Namen für die Gruppe ein.
  4. Lassen Sie Name und Enthält aktiviert und geben Sie Ihren Teilstring für den Namen ein.
  5. Klicken Sie auf Gruppe speichern. Es wird eine Übersichtsseite der neuen Gruppe geöffnet.
  6. Prüfen Sie, ob alle erwarteten Instanzen in der Gruppe enthalten sind.

Benachrichtigung für Failover-Replikatgruppen erstellen:

  1. Klicken Sie links oben auf das Logo der Operations-Suite von Google Cloud, um zur Monitoring-Hauptseite der Operations-Suite von Google Cloud zurückzukehren.
  2. Klicken Sie auf Benachrichtigungsrichtlinie erstellen.
  3. Geben Sie für die Gruppenbenachrichtigung einen aussagekräftigen Namen ein.
  4. Wählen Sie Messwertschwelle aus und klicken Sie auf Weiter, um den zugehörigen Tab zu öffnen.
  5. Wählen Sie Cloud SQL als Ressourcentyp aus.
  6. Wählen Sie unter Gilt für die Option Gruppe und dann Ihre Failover-Gruppe aus.
  7. Lassen Sie Verstoß bei jedem Mitglied aktiviert und klicken Sie auf Weiter, um den Konfigurations-Tab zu öffnen.
  8. Die folgenden Werte eingeben:

    Feld Wert
    Wenn Messwert Sekunden nach Master
    Bedingung über
    Grenzwerte 120 (oder ein anderer, für Ihre Umgebung geeigneter Wert)
    Für 3 Minuten

  9. Wählen Sie die gewünschten Methoden der Benachrichtigung aus und klicken Sie auf Bedingung speichern.

Legacy-Konfiguration: Hochverfügbarkeit für eine Instanz deaktivieren

Sie müssen die Failover-Replikatinstanz löschen, um Hochverfügbarkeit aus der primären Instanz zu entfernen.

Bestätigen Sie vor dem Ausführen dieser Schritte, dass derzeit keine Vorgänge für die primäre Instanz ausgeführt werden.

So deaktivieren Sie Hochverfügbarkeit:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Wählen Sie die Failover-Instanz aus, die der Instanz zugeordnet ist, für die Sie Hochverfügbarkeit deaktivieren möchten.
  3. Klicken Sie auf der Seite Instanzdetails auf löschen.
  4. Geben Sie im Fenster Replikat löschen den Namen der Failover-Instanz noch einmal ein.
  5. Klicken Sie auf löschen. Die Konfiguration für die ursprüngliche Instanz ändert sich in zonal.

gcloud

Weitere Informationen finden Sie unter gcloud sql instances delete.
gcloud sql instances delete FAILOVER_REPLICA_NAME

cURL

In der folgenden Anfrage wird mit der Methode instances:delete die Instanz gelöscht:
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json'\
      -X DELETE\
https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME

Nächste Schritte