Ridurre la capacità di archiviazione dell'istanza

Questa pagina mostra come gestire la capacità di archiviazione di un'istanza Cloud SQL utilizzando le funzionalità di riduzione dello spazio di archiviazione.

Prima di iniziare

  1. Esamina le limitazioni della funzionalità.

  2. Se utilizzi gcloud CLI, assicurati di utilizzare l'ultima versione di Google Cloud SDK e gcloud CLI.

  3. Ottieni le seguenti autorizzazioni IAM:

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

    Queste autorizzazioni sono disponibili in uno dei seguenti ruoli. Quando assegni il tuo ruolo, ti consigliamo di applicare il principio del privilegio minimo:

    • Amministratore Cloud SQL (roles/cloudsql.admin)
    • Cloud SQL Editor (roles/cloudsql.editor)

    Per maggiori informazioni, consulta le seguenti risorse:

Prepara l'istanza

Completa i seguenti requisiti prima di iniziare.

Questi passaggi sono gli stessi per le istanze primarie e le repliche di lettura.

Se aggiorni una replica di lettura, assicurati di ridurre prima la capacità dell'istanza primaria, quindi riduci le dimensioni della replica.

  1. Recupera l'ID progetto del progetto contenente l'istanza che vuoi gestire.

  2. Controlla lo stato attuale dell'istanza per assicurarti che sia in esecuzione. Un modo per verificare è utilizzare il comando describe:

      gcloud sql instances describe
    

    Restituisce il seguente stato:

      RUNNABLE
    

    In caso contrario, avvia l'istanza.

  3. Crea un backup dell'istanza corrente. In questo modo, puoi ripristinare l'istanza in un secondo momento se riscontri problemi durante la configurazione.

  4. Se esegui un'istanza PostgreSQL, imposta il valore del flag max_wal_size su un valore inferiore a 5128 MB. Se il valore di max_wal_size è troppo grande, l'istanza potrebbe avviarsi lentamente e l'operazione potrebbe non riuscire.

  5. Disattiva tutte le estensioni o le funzionalità che consentono connessioni in uscita (o richiedono il trasferimento di dati in uscita). Ad esempio, una connessione in uscita potrebbe essere stabilita utilizzando una di queste estensioni o funzionalità e deve essere disattivata prima di eseguire un'operazione di riduzione dello spazio di archiviazione:

    • dblink estensione
    • PL/proxy estensione
    • pglogical estensione
    • Wrapper di dati esterni (come postgres_fdw, oracle_fdw e tds_fdw)
    • Replica logica in PostgreSQL 10 e versioni successive

Ridurre la capacità di archiviazione di un'istanza

I passaggi seguenti sono gli stessi per le istanze primarie e le repliche di lettura.

  1. Controlla la capacità di archiviazione minima target dell'istanza e il tempo di operazione stimato. Queste informazioni possono aiutarti a pianificare l'operazione di riduzione dello spazio di archiviazione.

    gcloud

    Esegui il comando gcloud sql instances get-storage-shrink-config:

    gcloud sql instances get-storage-shrink-config INSTANCE_NAME
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza primaria.

    La risposta include un valore per minimalTargetSizeGb. Puoi utilizzare questo valore per determinare il valore da utilizzare per il parametro --storage-size quando esegui un'operazione di riduzione dello spazio di archiviazione.

    La risposta restituisce anche un messaggio con un tempo di operazione stimato, simile al seguente:

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

    REST v1

    Utilizza il metodo GET per visualizzare la capacità di archiviazione minima di destinazione dell'istanza.

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: il nome del progetto in cui si trova l'istanza primaria.
    • INSTANCE_ID: l'ID istanza dell'istanza primaria.

    Metodo HTTP e URL:

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

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    La risposta include un valore per min_target_size_gb. Puoi utilizzare questo valore per determinare il valore da utilizzare per il parametro --storage-size quando esegui un'operazione di riduzione dello spazio di archiviazione.

    La risposta restituisce anche un messaggio con un tempo di operazione stimato, simile al seguente:

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

    REST v1beta4

    Utilizza il metodo GET per visualizzare la capacità di archiviazione minima di destinazione dell'istanza.

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: il nome del progetto in cui si trova l'istanza primaria.
    • INSTANCE_ID: l'ID istanza dell'istanza primaria.

    Metodo HTTP e URL:

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

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    La risposta include un valore per min_target_size_gb. Puoi utilizzare questo valore per determinare il valore da utilizzare per il parametro --storage-size quando esegui un'operazione di riduzione dello spazio di archiviazione.

    La risposta restituisce anche un messaggio con un tempo di operazione stimato, simile al seguente:

    ...
    "The estimated operation time is 20 minutes".
    
  2. Riduci la capacità di archiviazione dell'istanza.

    gcloud

    Esegui questo comando per ridurre lo spazio di archiviazione sull'istanza:

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

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza
    • TARGET_STORAGE_SIZE: la capacità di archiviazione di destinazione in GB. Ad esempio, 100 GB.

    Ti consigliamo di utilizzare il flag --async per attendere l'operazione in modo asincrono.

    REST v1

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.
    • TARGET_STORAGE_SIZE: le dimensioni di archiviazione target in GB.

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    REST v1beta4

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.
    • TARGET_STORAGE_SIZE: la dimensione di archiviazione target dell'istanza.

    Metodo HTTP e URL:

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

    Corpo JSON della richiesta:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  3. Per controllare lo stato dell'operazione di riduzione dello spazio di archiviazione, consulta Controllare lo stato di un'operazione.

Annulla operazione di riduzione dello spazio di archiviazione

  1. Recupera l'ID operazione di riduzione dello spazio di archiviazione.

    Puoi recuperare l'ID operazione eseguendo il seguente comando list:

    gcloud sql operations list
    
  2. Invia una richiesta di annullamento.

    gcloud

    Esegui questo comando per annullare la richiesta:

    gcloud sql operations cancel OPERATION_ID
    

    Sostituisci quanto segue:

    OPERATION_ID: l'ID dell'operazione di riduzione dello spazio di archiviazione che vuoi annullare.

    REST v1

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • OPERATION_ID: l'ID dell'operazione di riduzione dello spazio di archiviazione che vuoi annullare.

    Metodo HTTP e URL:

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

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

    REST v1beta4

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • PROJECT_ID: l'ID del progetto in cui si trova l'istanza.
    • OPERATION_ID: l'ID dell'operazione di riduzione dello spazio di archiviazione che vuoi annullare.

    Metodo HTTP e URL:

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

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

Controllare lo stato di una richiesta di annullamento o di un'altra operazione

Per controllare lo stato di una richiesta, esegui questi comandi:

gcloud

  1. Recupera l'ID operazione per la richiesta di annullamento:

    gcloud sql operations list
    
  2. Controlla lo stato dell'operazione:

    gcloud sql operations describe OPERATION_ID
    

    Sostituisci quanto segue:

    OPERATION_ID: l'ID dell'operazione che vuoi controllare.

REST v1

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il nome del progetto in cui si trova l'istanza.
  • OPERATION_ID: l'ID dell'operazione di riduzione dello spazio di archiviazione.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il nome del progetto in cui si trova l'istanza.
  • OPERATION_ID: l'ID dell'operazione di riduzione dello spazio di archiviazione.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Risoluzione dei problemi

Per informazioni sulla risoluzione dei problemi, vedi Problemi di aggiornamento della capacità di archiviazione.

Passaggi successivi