Instanzspeicherkapazität verringern

Auf dieser Seite wird beschrieben, wie Sie die Speicherkapazität einer Cloud SQL-Instanz mithilfe von Funktionen zur Speicherverkleinerung verwalten.

Hinweis

  1. Sehen Sie sich die Einschränkungen der Funktion an.

  2. Wenn Sie die gcloud CLI verwenden, achten Sie darauf, dass Sie die aktuelle Version des Google Cloud SDK und der gcloud CLI verwenden.

    • Installieren Sie die neueste gcloud CLI-Version (gcloud CLI-Version 563.0.0 oder höher).
    • Führen Sie gcloud --version aus, um die aktuelle gcloud CLI-Version abzurufen.
    • Führen Sie gcloud components update aus, um die gcloud CLI-Version zu aktualisieren.
  3. Rufen Sie die folgenden IAM-Berechtigungen ab:

    • cloudsql.instances.getDiskShrinkConfig
    • cloudsql.instances.performDiskShrink

    Diese Berechtigungen sind in einer der folgenden Rollen verfügbar. Wir empfehlen, beim Zuweisen Ihrer Rolle das Prinzip der geringsten Berechtigung anzuwenden:

    • Cloud SQL-Administrator (roles/cloudsql.admin)
    • Cloud SQL-Bearbeiter (roles/cloudsql.editor)

    Weitere Informationen finden Sie in den folgenden Ressourcen:

Instanz vorbereiten

Folgende Anforderungen müssen erfüllt sein, bevor Sie beginnen.

Diese Schritte sind für primäre Instanzen und Lesereplikate identisch.

Wenn Sie ein Lesereplikat aktualisieren, müssen Sie zuerst die Kapazität der primären Instanz und dann die Größe des Replikats verringern.

  1. Rufen Sie die Projekt-ID des Projekts ab, das die Instanz enthält, die Sie verwalten möchten.

  2. Prüfen Sie den aktuellen Status der Instanz, um sicherzustellen, dass sie ausgeführt wird. Eine Möglichkeit zur Überprüfung ist die Verwendung des Befehls describe:

      gcloud sql instances describe
    

    Gibt den folgenden Status zurück:

      RUNNABLE
    

    Wenn nicht, starten Sie die Instanz.

  3. Erstellen Sie eine Sicherung der aktuellen Instanz. So können Sie die Instanz später wiederherstellen, falls bei der Konfiguration Probleme auftreten.

  4. Wenn Sie eine PostgreSQL-Instanz ausführen, legen Sie den Flag-Wert max_wal_size auf weniger als 5.128 MB fest. Wenn der Wert max_wal_size zu groß ist, kann es sein, dass die Instanz langsam startet und der Vorgang fehlschlägt.

  5. Deaktivieren Sie alle Erweiterungen oder Funktionen, die ausgehende Verbindungen ermöglichen oder eine ausgehende Datenübertragung erfordern. Beispielsweise kann eine ausgehende Verbindung mit einer dieser Erweiterungen oder Funktionen hergestellt werden. Diese sollte vor dem Verkleinern des Speichers deaktiviert werden:

    • Erweiterung dblink
    • Erweiterung PL/proxy
    • Erweiterung pglogical
    • Foreign Data Wrapper (z. B. postgres_fdw, oracle_fdw und tds_fdw)
    • Logische Replikation in PostgreSQL 10 und höher

Speicherkapazität einer Instanz verringern

Die folgenden Schritte sind für primäre Instanzen und Lesereplikate identisch.

  1. Prüfen Sie die minimale Zielspeicherkapazität der Instanz und die geschätzte Vorgangszeit. Diese Informationen können Ihnen bei der Planung der Speicherverkleinerung helfen.

    gcloud

    Führen Sie den Befehl gcloud sql instances get-storage-shrink-config aus:

    gcloud sql instances get-storage-shrink-config INSTANCE_NAME
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: Der Name der primären Instanz.

    Die Antwort enthält einen Wert für minimalTargetSizeGb. Anhand dieses Werts können Sie den Wert für den Parameter --storage-size bestimmen, den Sie beim Verkleinern des Speichers verwenden möchten.

    Die Antwort enthält auch eine Nachricht mit einer geschätzten Vorgangszeit, die in etwa so aussieht:

    ...
    "The estimated operation time is 20 minutes".
    

    REST Version 1

    Verwenden Sie die GET-Methode, um die minimale Zielspeicherkapazität der Instanz aufzurufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: der Name des Projekts, in dem sich die primäre Instanz befindet.
    • INSTANCE_ID: Die Instanz-ID der primären Instanz.

    HTTP-Methode und URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

    Die Antwort enthält einen Wert für min_target_size_gb. Anhand dieses Werts können Sie den Wert für den Parameter --storage-size bestimmen, den Sie beim Verkleinern des Speichers verwenden möchten.

    Die Antwort enthält auch eine Nachricht mit einer geschätzten Vorgangszeit, die in etwa so aussieht:

    ...
    "The estimated operation time is 20 minutes".
    

    REST v1beta4

    Verwenden Sie die GET-Methode, um die minimale Zielspeicherkapazität der Instanz aufzurufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: der Name des Projekts, in dem sich die primäre Instanz befindet.
    • INSTANCE_ID: Die Instanz-ID der primären Instanz.

    HTTP-Methode und URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

    Die Antwort enthält einen Wert für min_target_size_gb. Anhand dieses Werts können Sie den Wert für den Parameter --storage-size bestimmen, den Sie beim Verkleinern des Speichers verwenden möchten.

    Die Antwort enthält auch eine Nachricht mit einer geschätzten Vorgangszeit, die in etwa so aussieht:

    ...
    "The estimated operation time is 20 minutes".
    
  2. Speicherkapazität der Instanz verringern.

    gcloud

    Führen Sie den folgenden Befehl aus, um den Speicher auf der Instanz zu verkleinern:

    gcloud sql instances perform-storage-shrink INSTANCE_NAME \
      --storage-size=TARGET_STORAGE_SIZE
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name der Instanz.
    • TARGET_STORAGE_SIZE: die Zielspeicherkapazität in GB. Beispiel: 100 GB.

    REST Version 1

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
    • INSTANCE_ID: die ID der Instanz.
    • TARGET_STORAGE_SIZE: die Zielspeichergröße in GB.

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    JSON-Text anfordern:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

    REST v1beta4

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
    • INSTANCE_ID: die ID der Instanz.
    • TARGET_STORAGE_SIZE: die Zielspeichergröße der Instanz.

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    JSON-Text anfordern:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

  3. Informationen zum Prüfen des Status des Vorgangs zum Verkleinern des Speichers finden Sie unter Status eines Vorgangs prüfen.

Vorgang zum Verkleinern des Speichers abbrechen

  1. Rufen Sie die Vorgangs-ID für die Speicherverkleinerung ab.

    Sie können die Vorgangs-ID mit dem folgenden list-Befehl abrufen:

    gcloud sql operations list
    
  2. Senden Sie eine Stornierungsanfrage.

    gcloud

    Führen Sie den folgenden Befehl aus, um die Anfrage abzubrechen:

    gcloud sql operations cancel OPERATION_ID
    

    Ersetzen Sie Folgendes:

    OPERATION_ID: die ID des Vorgangs zum Verkleinern des Speichers, den Sie abbrechen möchten.

    REST Version 1

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
    • OPERATION_ID: die ID des Vorgangs zum Verkleinern des Speichers, den Sie abbrechen möchten.

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID/cancel

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

    REST v1beta4

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
    • OPERATION_ID: die ID des Vorgangs zum Verkleinern des Speichers, den Sie abbrechen möchten.

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID/cancel

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Status einer Abbruchsanfrage oder eines anderen Vorgangs prüfen

Führen Sie die folgenden Befehle aus, um den Status einer Anfrage zu prüfen:

gcloud

  1. Rufen Sie die Vorgangs-ID für die Abbruchanfrage ab:

    gcloud sql operations list
    
  2. Prüfen Sie den Status des Vorgangs:

    gcloud sql operations describe OPERATION_ID
    

    Ersetzen Sie Folgendes:

    OPERATION_ID: die ID des Vorgangs, den Sie prüfen möchten.

REST Version 1

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: der Name des Projekts, in dem sich die Instanz befindet.
  • OPERATION_ID: die ID des Vorgangs zum Verkleinern des Speichers.

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

REST v1beta4

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: der Name des Projekts, in dem sich die Instanz befindet.
  • OPERATION_ID: die ID des Vorgangs zum Verkleinern des Speichers.

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:

Fehlerbehebung

Informationen zur Fehlerbehebung finden Sie unter Probleme beim Aktualisieren der Speicherkapazität.

Nächste Schritte