Auf dieser Seite wird die Legacy-Konfiguration einer MySQL-Instanz für Hochverfügbarkeit erläutert.
Bei einer Legacy-HA-Konfiguration verwendet eine Cloud SQL for MySQL-Instanz ein Failover-Replikat, um der Instanz Hochverfügbarkeit zu verleihen. Dieses Feature ist in der Google Cloud Console nicht verfügbar. 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:
- Löschen Sie das Failover-Replikat auf den MySQL-Instanzen, die Sie aktualisieren möchten. Hochverfügbarkeit für eine Instanz deaktivieren
- 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 Google Cloud Console nicht verfügbar. Verwenden Sie stattdessen die gcloud CLI- oder cURL-Befehle.
Eine Instanz mit konfigurierter Hochverfügbarkeit erstellen:
gcloud
- 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 \ --database-version=DATABASE_VERSION \ --memory=MEMORY \ --enable-bin-log
Die Startzeit des Sicherungszeitraums hat das Format
HH:MM
.Ersetzen Sie den Platzhalter DATABASE_VERSION durch MySQL 5.6 oder MySQL 5.7 (
--database-version=MYSQL_5_6
oder
--database-version=MYSQL_5_7
).Wenn Sie für den Parameter
database-version
keine Version angeben, wird standardmäßig MySQL 8.0 ausgewählt. Die Legacy-Konfiguration für Hochverfügbarkeit für MySQL unterstützt Version 8.0 nicht.Die vollständige Liste der verfügbaren Parameter finden Sie auf der Referenzseite für gcloud sql instances create.
- 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
- Erstellen Sie die primäre Instanz und das zugehörige Failover-Replikat:
Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.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
- Wenn die Initialisierung der primären Instanz abgeschlossen ist, aktualisieren Sie das Root-Passwort auf der primären Instanz:
Diese Änderung wird automatisch für das Replikat übernommen.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'
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
- Prüfen Sie den Status der primären Instanz:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Wenn das Attribut
databaseReplicationEnabled
den Werttrue
hat, ist die Instanz ein Replikat. Für ein Replikat können Sie kein Failover-Replikat erstellen. - Wenn das Attribut
enabled
unterbackupConfiguration
den Wertfalse
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. - Wenn das Attribut
binaryLogEnabled
den Wertfalse
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.
- Erstellen Sie das Replikat:
gcloud sql instances create FAILOVER_REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --replica-type=FAILOVER
curl
- 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 }
- Wenn entweder
enabled
oderbinaryLogEnabled
den Wertfalse
hat, verwenden Sie die Methodepatch
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 Werttrue
fest und geben Sie als Wert fürstartTime
den Beginn des Sicherungszeitraums an, um die Sicherungen zu aktivieren. Legen Sie fürbinaryLogEnabled
den Werttrue
fest, 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/
-
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 auslösen
Der Test des Failovers ist optional. Er wird jedoch empfohlen, damit Sie wissen, wie Ihre Anwendung auf ein Failover reagiert.
Weitere Informationen zu Failovers finden Sie unter Failover – Übersicht.
gcloud
Failover initialisieren:
gcloud sql instances failover PRIMARY_INSTANCE_NAME
curl
- 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
- 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 Cloud Monitoring in der Google Cloud Console verwenden, um sich benachrichtigen zu lassen, wenn die Replikationsverzögerung einen Schwellenwert überschreitet.
Weitere Informationen über Replikationsverzögerungen erhalten Sie in der MySQL-Dokumentation auf der Seite SHOW SLAVE STATUS Syntax, indem Sie nach "seconds_behind_master" suchen.
Weitere Informationen zu Cloud Monitoring finden Sie in der Cloud Monitoring-Dokumentation.
Legacy-Konfiguration: Benachrichtigung für ein bestimmtes Failover-Replikat einstellen
- Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend Benachrichtigungen aus.
- Klicken Sie auf Benachrichtigungsrichtlinie erstellen.
- Geben Sie für die Benachrichtigung einen aussagekräftigen Namen ein.
- Wählen Sie Messwertschwelle aus und klicken Sie auf Weiter, um den zugehörigen Tab zu öffnen.
- Wählen Sie Cloud SQL als Ressourcentyp aus.
- Wählen Sie unter Gilt für die Option Einzeln und dann Ihr Failover-Replikat aus.
- Klicken Sie auf Weiter, um den Konfigurations-Tab zu öffnen.
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 Wählen Sie die 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 einfacher, die Benachrichtigung für die gesamte Gruppe als für jedes einzelne Replikat zu konfigurieren. Erweitern Sie die Namen der Failover-Replikate um ein Suffix wie "-failover", um eine Gruppe für die Überwachung zu erstellen. Achten Sie darauf, dass dieses Suffix nicht für andere Cloud SQL-Instanzen verwendet wird.
Gruppe von Failover-Replikaten erstellen:
-
Rufen Sie in der Google Cloud Console die Seite Monitoring auf.
- Wählen Sie in der oberen Menüleiste Gruppen > Erstellen... aus.
- Geben Sie einen aussagekräftigen Namen für die Gruppe ein.
- Lassen Sie Name und Enthält aktiviert und geben Sie Ihren Teilstring für den Namen ein.
- Klicken Sie auf Gruppe speichern. Es wird eine Übersichtsseite der neuen Gruppe geöffnet.
- Prüfen Sie, ob alle erwarteten Instanzen in der Gruppe enthalten sind.
Benachrichtigung für Failover-Replikatgruppen erstellen:
- Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend Benachrichtigungen aus.
- Klicken Sie auf Benachrichtigungsrichtlinie erstellen.
- Geben Sie für die Gruppenbenachrichtigung einen aussagekräftigen Namen ein.
- Wählen Sie Messwertschwelle aus und klicken Sie auf Weiter, um den zugehörigen Tab zu öffnen.
- Wählen Sie Cloud SQL als Ressourcentyp aus.
- Wählen Sie unter Gilt für die Option Gruppe und dann Ihre Failover-Gruppe aus.
- Lassen Sie Verstoß bei jedem Mitglied aktiviert und klicken Sie auf Weiter, um den Konfigurations-Tab zu öffnen.
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 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
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Wählen Sie die Failover-Instanz aus, die der Instanz zugeordnet ist, für die Sie Hochverfügbarkeit deaktivieren möchten.
- Klicken Sie auf der Seite Instanzdetails auf LÖSCHEN.
- Geben Sie im Fenster Replikat löschen den Namen der Failover-Instanz noch einmal ein.
- Klicken Sie auf löschen. Die Konfiguration für die ursprüngliche Instanz ändert sich in zonal.
gcloud
Weitere Informationen finden Sie untergcloud sql instances delete
.gcloud sql instances delete FAILOVER_REPLICA_NAME
curl
In der folgenden Anfrage wird mit der Methodeinstances: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
- Mehr über die Funktionsweise der Hochverfügbarkeitskonfiguration
- Instanz neu starten, um zu testen, wie die Anwendung auf getrennte Verbindungen reagiert
- Mehr über die Verwaltung von Datenbankverbindungen
- Weitere Informationen zu Cloud Monitoring
- Lesereplikate für eine Instanz erstellen