Diese Seite beschreibt die Self-Service-Wartung, mit der Sie ein Wartungsupdate für Ihre Instanz außerhalb des normalen Ablaufs der geplanten Wartung annehmen können.
Übersicht
Cloud SQL veröffentlicht regelmäßig Softwareverbesserungen wie z. B. Patches für bekannte Sicherheitslücken über neue Wartungsversionen. Cloud SQL führt geplante Wartungen alle paar Monate standardmäßig aus, damit Sie immer die neueste Wartungsversion haben. Sie sollten aber eine Self-Service-Wartung ausführen, wenn:
- Sie ein Update vor dem nächsten geplanten Wartungsereignis benötigen.
- Sie möchten die neueste Wartungsversion installieren, nachdem Sie das letzte geplante Wartungsereignis übersprungen haben.
Sie müssen keine manuellen Updates auf die neueste Version ausführen. Sie können festlegen, dass Cloud SQL Ihre Wartungsversion während des nächsten geplanten Wartungsereignisses automatisch aktualisiert.
Wartung für alle Lesereplikate einer primären Instanz verwalten
Wenn Sie eine Self-Service-Wartung auf einer primären Instanz mit Lesereplikaten durchführen, wendet Cloud SQL das Wartungsupdate automatisch auf alle ihre Lesereplikate an. Wenn Sie mehr als drei Lesereplikate haben, werden die Instanzen in Gruppen unterteilt und parallel aktualisiert. Im letzten Schritt wird das Wartungsupdate auf die primäre Instanz angewendet.
Bei Bedarf können Sie trotzdem eine Self-Service-Wartung für ein einzelnes Lesereplikat durchführen. Damit alle Lesereplikatinstanzen und die primäre Instanz mit derselben Wartungsversion ausgeführt werden, empfehlen wir jedoch eine Self-Service-Wartung für alle Lesereplikate einer primären Instanz zur selben Zeit.
Wenn Sie eine einzelne Lesereplikatinstanz aktualisieren möchten, geben Sie diese Lesereplikatinstanz an, wenn Sie die Self-Service-Wartung ausführen.
Hinweise
Vor jeder Self-Service-Wartung sollten Sie Ihre aktuelle Wartungsversion prüfen. Dann können Sie die Wartungsversion des Ziels festlegen, auf die Sie aktualisieren möchten, und die Instanz auf diese Version aktualisieren. Wenn Sie Lesereplikate verwenden, aktualisieren Sie alle Lesereplikate der primären Instanz auf diese Version.
So rufen Sie die aktuelle Wartungsversion einer Instanz auf:
gcloud
Bevor Sie den folgenden gcloud
-Befehl ausführen, ersetzen Sie die folgenden Werte:
- INSTANCE_ID: Die abzufragende Instanz
gcloud sql instances describe INSTANCE_ID
Die Wartungsversion, die auf der Instanz installiert ist, wird neben dem maintenanceVersion
-Attribut angezeigt.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der Instanz, die Sie für Hochverfügbarkeit konfigurieren
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Suchen Sie im DatabaseInstance
-Abschnitt der Antwort nach dem maintenanceVersion
-Element.
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der Instanz, die Sie für Hochverfügbarkeit konfigurieren
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Suchen Sie im DatabaseInstance
-Abschnitt der Antwort nach dem maintenanceVersion
-Element.
Zielwartungsversion ermitteln
Verwenden Sie folgende Methode, um die Wartungsversionen aufzurufen, die Sie als Ziel auswählen können. Ein Update auf eine frühere Version als die aktuelle Wartungsversion ist nicht möglich.
gcloud
Bevor Sie den folgenden gcloud
-Befehl ausführen, ersetzen Sie die folgenden Werte:
- INSTANCE_ID: Die abzufragende Instanz
gcloud sql instances describe INSTANCE_ID
Die verfügbare Wartungsversion wird neben dem availableMaintenanceVersions
-Attribut angezeigt.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der Instanz, die Sie für Hochverfügbarkeit konfigurieren
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Suchen Sie im DatabaseInstance
-Abschnitt der Antwort nach dem availableMaintenanceVersions
-Element.
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der Instanz, die Sie für Hochverfügbarkeit konfigurieren
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13" }
Suchen Sie im DatabaseInstance
-Abschnitt der Antwort nach dem availableMaintenanceVersions
-Element.
Alle Lesereplikate einer primären Instanz auf die Zielwartungsversion aktualisieren
Mit dem folgenden Verfahren können Sie ein Wartungsupdate für alle Lesereplikatinstanzen einer primären Instanz ausführen.
gcloud
Bevor Sie den folgenden gcloud
-Befehl verwenden, ersetzen Sie die folgenden Werte:
- PRIMARY_INSTANCE_ID: Die ID der primären Instanz
- MAINTENANCE_VERSION: Die anzuwendende Cloud SQL-Wartungsversion
gcloud sql instances patch PRIMARY_INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Geben Sie bei der Aufforderung zur Bestätigung Y
ein, um fortzufahren, oder N
, um abzubrechen.
Wenn Sie Y
auswählen, wird die angegebene Wartungsversion zuerst auf alle Lesereplikate angewendet, bevor die primäre Instanz aktualisiert wird. Lesereplikate, die bereits auf die Zielwartungsversion aktualisiert wurden, werden übersprungen.
Wenn Sie N
auswählen, werden keine Instanzen aktualisiert.
Nach Abschluss des Updates der Lesereplikate und der primären Instanz wird eine Meldung wie die folgende angezeigt:
Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID]
Terraform
Verwenden Sie zum Erstellen einer Instanz eine Terraform-Ressource.
Änderungen anwenden
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Änderungen löschen
So löschen Sie das Projekt:
- Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument
deletion_protection
auffalse
.deletion_protection = "false"
- Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
-
Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und
yes
an der Eingabeaufforderung eingeben:terraform destroy
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- PROJECT_ID: Die Instanz-ID der primären Instanz
- MAINTENANCE_VERSION: Die anzuwendende Cloud SQL-Softwarewartungsversion
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: Die Instanz-ID der primären Instanz
- MAINTENANCE_VERSION: Die anzuwendende Cloud SQL-Softwarewartungsversion
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Einzelne Instanz auf die Zielwartungsversion aktualisieren
Mit dem folgenden Verfahren können Sie ein Wartungsupdate für eine einzelne Instanz ausführen. Mit dieser Methode können Sie bei Bedarf eine einzelne Lesereplikatinstanz aktualisieren.
gcloud
Bevor Sie den folgenden gcloud
-Befehl ausführen, ersetzen Sie die folgenden Werte:
- INSTANCE_ID: Die ID der Instanz. Diese Instanz kann eine Lesereplikatinstanz sein.
- MAINTENANCE_VERSION: Die anzuwendende Cloud SQL-Wartungsversion
gcloud sql instances patch INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Wenn Sie ein Lesereplikat angeben, wird eine Bestätigungsaufforderung angezeigt. Gib Y
ein, um fortzufahren, oder N
, um abzubrechen.
- Wenn Sie
Y
auswählen, wird die angegebene Wartungsversion nur auf das angegebene Lesereplikat angewendet. - Wenn Sie
N
auswählen, werden keine Instanzen aktualisiert.
Nach Abschluss des Updates der Instanz wird eine Meldung wie diese angezeigt:
Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID]
Terraform
Verwenden Sie zum Erstellen einer Instanz eine Terraform-Ressource.
Änderungen anwenden
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Änderungen löschen
So löschen Sie das Projekt:
- Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument
deletion_protection
auffalse
.deletion_protection = "false"
- Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
-
Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und
yes
an der Eingabeaufforderung eingeben:terraform destroy
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- PROJECT_ID: Die Instanz-ID, die eine Lesereplikatinstanz sein kann
- MAINTENANCE_VERSION: Die anzuwendende Cloud SQL-Softwarewartungsversion
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: Die Instanz-ID, die eine Lesereplikatinstanz sein kann
- MAINTENANCE_VERSION: Die anzuwendende Cloud SQL-Softwarewartungsversion
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Fehlerbehebung
Problem | Fehlerbehebung |
---|---|
Wartungsupdate kann nicht auf eine gestoppte Instanz angewendet werden. | Starten Sie zur Behebung des Problems die Instanz, bevor Sie das Self-Service-Wartungsupdate ausführen. |
Aufgrund einer Abweichung bei der Hauptversion der Datenbank ist das Wartungsupdate fehlgeschlagen. | Sie können die Hauptversion der Datenbank einer Instanz nicht über die Selfservice-Wartung aktualisieren. So führen Sie ein Upgrade der Hauptversion einer Instanz durch: |
Nächste Schritte
- Vorgangslogs von Instanzen ansehen
- FAQ zur Wartung lesen
- Mehr über Replikation in Cloud SQL erfahren