Eseguire l'upgrade in loco di una versione principale del database

Questa pagina descrive come eseguire un upgrade in place della versione principale di un database di un cluster AlloyDB per PostgreSQL. Per informazioni sui casi d'uso, sul flusso di lavoro e sui backup automatici dell'upgrade della versione principale del database sul posto, consulta la Panoramica dell'upgrade della versione principale del database sul posto.

Pianificare un upgrade della versione principale del database

Per pianificare un upgrade della versione principale del database:

  1. Individua la versione principale del database corrente.

    Console

    1. Nella console Google Cloud, vai alla pagina Cluster.

      Vai a Cluster

    2. Seleziona un cluster dall'elenco. Viene visualizzata la pagina Panoramica.

    3. Individua la versione principale del database nel campo Versione.

    gcloud

    Per informazioni su come installare e iniziare a utilizzare gcloud CLI, consulta Installare gcloud CLI. Per informazioni su come avviare Cloud Shell, consulta Utilizzare Cloud Shell.

    Esegui il comando seguente per ottenere i dettagli del cluster, inclusa la versione principale corrente:

    gcloud alloydb clusters describe CLUSTER_ID --region=REGION

    Esegui le seguenti sostituzioni:

    • CLUSTER_ID: l'ID cluster
    • REGION: la posizione o la regione del cluster

    REST v1beta

    Esegui la seguente richiesta per ottenere i dettagli del cluster, inclusa la versione principale corrente:

    GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID

    Esegui le seguenti sostituzioni:

    • CLUSTER_ID: l'ID cluster
    • PROJECT_ID: l'ID progetto
    • REGION: la posizione o la regione del cluster

    Per inviare la richiesta, utilizza una delle seguenti opzioni:

    curl (Linux, macOS o Cloud Shell)

    Esegui questo comando:

       curl -X GET \
             -H "Authorization: Bearer $(gcloud auth print-access-token)" \
             -H "Content-Type: application/json; charset=utf-8" \
             -d @request.json \
             "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID"
       

    PowerShell (Windows)

    Esegui questo comando:

       $cred = gcloud auth print-access-token
       $headers = @{ "Authorization" = "Bearer $cred" }
    
       Invoke-WebRequest `
         -Method GET `
         -Headers $headers `
         -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID| Select-Object -Expand Content
       
  2. Identifica una versione principale del database di destinazione dalla tabella seguente. Per un elenco completo delle versioni del database supportate da AlloyDB, consulta Versioni e criteri per le versioni dei database.

    Versione principale dell'origine Versioni principali di destinazione supportate
    POSTGRES_14 POSTGRES_15
  3. Esamina le funzionalità offerte in ogni versione principale del database.

  4. Identifica eventuali incompatibilità da risolvere. Le nuove versioni principali possono introdurre modifiche incompatibili che potrebbero richiedere la modifica del codice dell'applicazione, dello schema o delle impostazioni del database.

  5. Prima di iniziare l'upgrade della versione principale nel cluster di produzione, ti consigliamo di clonare il cluster e di testare l'upgrade della versione principale sul cluster clonato.

    Oltre a verificare che l'upgrade venga completato correttamente, esegui test per assicurarti che l'applicazione si comporti come previsto nel cluster sottoposto ad upgrade.

Prepara il cluster per un upgrade della versione principale

Per completare i passaggi che richiedono la connessione al database, utilizza AlloyDB Studio, psql o altri metodi di connessione.

  1. Elimina o promuovi le repliche tra regioni. Gli upgrade delle versioni principali in-place del database non supportano le repliche tra regioni. Per ulteriori informazioni, consulta Replica tra regioni.
  2. Assicurati che le impostazioni di codifica e impostazioni internazionali per i database postgres e template1 siano le stesse del database template0.

    Esegui questo comando:

    SELECT pg_encoding_to_char(encoding), datcollate, datctype
    FROM pg_database
    WHERE datname IN ('postgres', 'template1', 'template0');
    

    Se i valori per i database postgres o template1 sono diversi da quelli per il database template0, l'upgrade non va a buon fine. Per risolvere il problema, segui questi passaggi:

    1. Esegui il dump dell'altro database (non basato su modello). Per saperne di più, consulta Esportazione di dati.

    2. Elimina il database eseguendoDROP DATABASE <database_name>;

    3. Ricrea il database con le stesse impostazioni di codifica e impostazioni internazionali del database template0 eseguendo quanto segue:

      CREATE DATABASE <database_name>
      ENCODING = '<template0_encoding>'
      LC_COLLATE = '<template0_datcollate>'
      LC_CTYPE = '<template0_datctype>';
      
    4. Ricarica i dati. Per ulteriori informazioni, consulta Importazione dei dati.

  3. Se il tuo cluster AlloyDB è un'origine di replicazione logica, disattiva le iscrizioni a valle ed elimina tutti gli slot di replicazione logica. Puoi riattivare gli abbonamenti e ricreare gli slot di replica logica dopo l'upgrade. Se l'istanza AlloyDB è solo una destinazione di replica logica, questi passaggi non sono necessari. Per disabilitare le sottoscrizioni e eliminare gli slot di replica logica:

    1. Disattiva ogni sottoscrizione a valle nell'abbonato o nel target di replica a valle. Non disattivare gli abbonamenti a valle sull'istanza AlloyDB di cui viene eseguito l'upgrade:

      • Se utilizzi pglogical, esegui il seguente comando:

        SELECT * FROM
        pglogical.alter_subscription_disable(subscription_name, immediate);
        

        Sostituisci subscription_name nella query con il nome dell'abbonamento esistente. Se l'abbonamento deve essere disattivato immediatamente, imposta il valore del parametro immediate su true. Per impostazione predefinita, il valore è false e l'abbonamento viene disattivato solo al termine della transazione in corso.

        Ad esempio:

        postgres=> SELECT * FROM pglogical.alter_subscription_disable('test_sub',true);
        alter_subscription_disable
        ----------------------------
        t
        (1 row)
        
      • Se utilizzi un'estensione diversa da pglogical, esegui il seguente comando:

        ALTER SUBSCRIPTION <subscription_name> DISABLE;
        
    2. Elimina tutti gli slot di replica logica nell'istanza principale AlloyDB eseguendo il seguente comando:

      SELECT pg_drop_replication_slot(slot_name) FROM pg_replication_slots WHERE slot_type = 'logical';
      
  4. Gestisci le estensioni PostgreSQL. Per ulteriori informazioni, consulta Configurare le estensioni del database.

    I controlli pre-upgrade rilevano le incompatibilità delle estensioni e mostrano queste violazioni nei log, insieme alle azioni suggerite. Per ulteriori informazioni, consulta Visualizzare gli errori di controllo pre-upgrade.

    Potresti dover svolgere le seguenti operazioni:

    1. Rimuovi le estensioni non più supportate nella versione di destinazione.
    2. Esegui l'upgrade di PostGIS e delle estensioni correlate (address_standardizer, address_standardizer_data_us, postgis_raster, postgis_sfcgal, postgis_tiger_geocoder e postgis_topology) a una versione supportata nella versione PostgreSQL di destinazione. Per ulteriori informazioni, consulta Estensioni PostGIS. La tabella seguente elenca le versioni minime dell'estensione PostGIS supportate per ogni versione principale di PostgreSQL:

      Versione PostgreSQL Versione minima supportata di PostGIS
      PG14 3.1
      PG15 3.2

      Ad esempio, se la versione di PostGIS è 3.1.x e vuoi eseguire l'upgrade da POSTGRES 14 a POSTGRES 15, utilizza il seguente comando per eseguire l'upgrade dell'estensione PostGIS:

      ALTER EXTENSION postgis UPDATE TO '3.2.3';
      SELECT PostGIS_Version();
      
  5. Verifica che le connessioni siano consentite per ogni database, tranne per template0, eseguendo la seguente query e controllando il campo datallowconn per ogni database:

    SELECT datname,datallowconn from pg_database;
    

    Un valore t nel campo datallowconn indica che la connessione è consentita. Un valore f indica che non è possibile stabilire una connessione. Il database template0 non deve consentire connessioni.

    Per consentire le connessioni a un database, esegui il seguente comando:

    ALTER DATABASE <database> WITH ALLOW_CONNECTIONS = true;
    

Esegui l'upgrade in situ della versione principale del cluster

L'upgrade in place della versione principale del database può richiedere da 40 minuti a 48 ore, a seconda di fattori quali le dimensioni del database, le dimensioni dello schema e il numero di istanze del pool di lettura nel cluster. Il tempo di riposo dell'istanza principale solitamente varia da 20 minuti a un'ora e dipende principalmente dallo schema del database.

Quando effettui una richiesta di upgrade in-place della versione principale, AlloyDB esegue prima i controlli di pre-upgrade. Se AlloyDB stabilisce che il tuo cluster non è pronto per un upgrade della versione principale, la richiesta non va a buon fine. Per maggiori informazioni, consulta la sezione Risolvere i problemi relativi a un upgrade in situ della versione principale.

Per eseguire l'upgrade della versione principale del database in situ:

Console

  1. Nella console Google Cloud, vai alla pagina Cluster.

    Vai a Cluster

  2. Seleziona un cluster dall'elenco. Viene visualizzata la pagina Panoramica.

  3. Fai clic su Esegui l'upgrade per avviare la procedura di upgrade della versione principale del database.

  4. Nel passaggio Scegli una versione del database, seleziona una delle versioni principali del database disponibili come versione principale di destinazione.

  5. Fai clic su Continua.

  6. Nel passaggio Esegui l'upgrade del cluster, nel campo ID cluster, inserisci il nome del cluster.

  7. Fai clic su Avvia upgrade. Viene visualizzato il passaggio Stato dell'upgrade, dove puoi controllare lo stato dell'upgrade. Per ulteriori informazioni, consulta Monitorare l'upgrade della versione principale del database.

gcloud

Avvia l'upgrade in-place della versione principale eseguendo il seguente comando:

gcloud alloydb beta clusters upgrade CLUSTER_ID --region=REGION --version=DATABASE_VERSION --async

Di seguito è riportato un esempio di comando:

gcloud alloydb beta clusters upgrade my-cluster --region=us-central1 --version=POSTGRES_15 --async

REST v1beta

Avvia l'upgrade in-place della versione principale eseguendo il seguente comando:

PATCH https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID:upgrade

Corpo JSON della richiesta:

{
  "version": "DATABASE_VERSION"
}

Sostituisci con l'enum per la versione principale del database di destinazione, che deve essere successiva alla versione corrente.

Corpo JSON della richiesta di esempio:

{
"version": "POSTGRES_15"
}

Monitora l'upgrade della versione principale del cluster

Dopo l'avvio dell'upgrade in place della versione principale del database, puoi monitorare lo stato dell'upgrade utilizzando la console Google Cloud, l'interfaccia a riga di comando gcloud o l'API REST.

Console

Per controllare lo stato dell'upgrade nella console Google Cloud:

  1. Nella console Google Cloud, vai alla pagina Cluster.

    Vai a Cluster

  2. Seleziona il cluster di cui eseguire l'upgrade. Viene visualizzata la pagina Panoramica.

  3. Apri la pagina Panoramica.

  4. Fai clic su Stato upgrade. Viene visualizzata la pagina Stato upgrade, dove puoi controllare lo stato dell'upgrade.

gcloud

Per controllare lo stato dell'upgrade nella CLI gcloud:

  1. Recupera l'ID operazione di upgrade eseguendo il seguente comando. Prima di eseguire il comando, sostituisci la variabile CLUSTER_ID con il nome del cluster:

    gcloud alloydb operations list --cluster=CLUSTER_ID --region=REGION_ID --filter=metadata.verb:upgrade

    La chiamata all'interfaccia a riga di comando gcloud utilizzata per attivare un upgrade della versione principale. alloydb beta clusters upgrade, restituisce l'ID operazione come risposta sincrona. In alternativa, utilizza il comando gcloud alloydb operations list con il flag --cluster.

    Di seguito è riportato un esempio di comando:

    gcloud alloydb operations list --cluster=my-cluster --region=us-central1 --filter=metadata.verb:upgrade
  2. Monitora lo stato dell'upgrade eseguendo il seguente comando:

    gcloud alloydb operations describe OPERATION_ID
    --region=REGION
    https://cloud.google.com/sdk/gcloud/reference/alloydb/operations/describe

REST v1beta

Per controllare lo stato dell'upgrade nell'API REST:

  1. Recupera l'ID operazione di upgrade.

    Utilizza la seguente richiesta GET con il metodo operations.list per elencare tutte le operazioni di upgrade e trovare quella corrispondente al cluster di destinazione:

    GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/operations/filter=metadata.verb:upgrade

    La chiamata all'API REST restituisce l'ID operazione come risposta sincrona.

  2. Monitora lo stato dell'upgrade.

    Utilizza una richiesta GET con il metodo operations.get:

      GET https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID

    Esegui le seguenti sostituzioni:

    • PROJECT_ID: l'ID progetto
    • REGION: la posizione o la regione del cluster
    • OPERATION_ID: l'ID operazione di upgrade, recuperato nel passaggio precedente.

    Di seguito è riportato un esempio di risposta quando l'operazione è in corso:

    {
    "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
    "metadata": {
    "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata",
    "createTime": "2024-09-16T23:17:39.727319438Z",
    "target": "projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID",
    "verb": "upgrade",
    "requestedCancellation": false,
    "apiVersion": "v1",
    "upgradeClusterStatus": {
       "state": "IN_PROGRESS",
       "cancellable": true,
       "stages": [
        {
          "stage": "ALLOYDB_PRECHECK",
          "state": "IN_PROGRESS"
        },
        {
          "stage": "PG_UPGRADE_CHECK",
          "state": "IN_PROGRESS"
        },
        {
          "stage": "PREPARE_FOR_UPGRADE",
          "state": "NOT_STARTED"
        },
        {
          "stage": "PRIMARY_INSTANCE_UPGRADE",
          "state": "NOT_STARTED"
        },
        {
          "stage": "CLEANUP",
          "state": "NOT_STARTED"
        }
       ]
     }
    },
    "done":false
    }
    

    Di seguito è riportata una risposta di esempio al termine dell'operazione:

    {
    "operations": [
    {
     "metadata": {
     "@type": "type.googleapis.com/google.cloud.alloydb.v1betaalpha.OperationMetadata",
     "createTime": "2024-09-16T21:52:17.303861317Z",
     "endTime": "2024-09-16T22:29:13.947527949Z",
     "target": "projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID",
     "verb": "upgrade",
     "requestedCancellation": false,
     "apiVersion": "v1beta",
     "upgradeClusterStatus": {
      "state": "SUCCESS",
      "stages": [
        {
          "stage": "ALLOYDB_PRECHECK",
          "state": "SUCCESS"
        },
        {
          "stage": "PG_UPGRADE_CHECK",
          "state": "SUCCESS"
        },
        {
          "stage": "PREPARE_FOR_UPGRADE",
          "state": "SUCCESS"
        },
        {
          "stage": "PRIMARY_INSTANCE_UPGRADE",
          "state": "SUCCESS"
        },
        {
          "stage": "CLEANUP",
          "state": SUCCESS"
        }
       ]
     }
    },
    "response": {
         …
    },
    "name":  "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
    "done": true
    }
    ]
    }
    

    Per ulteriori informazioni sulla struttura response, consulta Risposta all'operazione di upgrade.

Risposta all'operazione di upgrade

La risposta all'operazione UpgradeCluster include quanto segue:

  • status: stato dell'operazione di upgrade complessiva. I valori possibili sono SUCCESS, FAILED e PARTIAL_SUCCESS.
  • message: fornisce un breve riepilogo del risultato dell'operazione di upgrade.
  • clusterUpgradeDetails: i dettagli dell'upgrade per i cluster di cui viene eseguito l'upgrade. Questo campo è un array. AlloyDB consente solo un upgrade di un singolo cluster, pertanto deve avere una sola voce.
    • name: il nome completo del cluster.
    • upgradeStatus: lo stato dell'upgrade del cluster. I valori possibili sono SUCCESS, FAILED, PARTIAL_SUCCESS. PARTIAL_SUCCESS indica che non è possibile eseguire l'upgrade di una o più istanze del pool di lettura.
    • clusterType: il tipo di cluster. AlloyDB consente di eseguire l'upgrade di un solo cluster PRIMARY. Questo tipo deve sempre essere PRIMARY.
    • databaseVersion: la versione attuale del database del cluster.
    • stageInfo: informazioni sulle fasi di upgrade di base.
      • status: SUCCESS o FAILED
      • logs_url: link ai log generati dalla fase. Vuoto per le fasi che non generano log.
    • instanceUpgradeDetails: informazioni sull'upgrade per tutte le istanze nel cluster.
      • name: nome completo dell'istanza
      • upgradeStatus: SUCCESS o FAILED
      • instanceType: PRIMARY o READ_POOL

Di seguito è riportata una risposta di esempio all'operazione di upgrade:

"response": {
  "@type": "type.googleapis.com/google.cloud.alloydb.v1alpha.UpgradeClusterResponse",
  "status": "SUCCESS",
  "message": "Cluster upgraded successfully.",
  "clusterUpgradeDetails": [
    {
      "name": "projects/1234/locations/us-central1/clusters/abc",
      "upgradeStatus": "SUCCESS",
      "clusterType": "PRIMARY",
      "databaseVersion": "POSTGRES_15",
      "stageInfo": [
        {
          "stage": "ALLOYDB_PRECHECK", 
          "status": "SUCCESS",
          "logsUrl": "https://console.cloud.google.com/logs/query..."
        },
        {
          "stage": "PG_UPGRADE_CHECK",
          "status": "SUCCESS",
          "logsUrl": "https://console.cloud.google.com/logs/query..."
        },
        {
          "stage": "PRIMARY_INSTANCE_UPGRADE",
          "status": "SUCCESS",
          "logsUrl": "https://console.cloud.google.com/logs/query..."
        },
        {
          "stage": "READ_POOL_INSTANCES_UPGRADE",
          "status": "SUCCESS",
        }
      ],
      "instanceUpgradeDetails": [
        {
          "name": "projects/1234/locations/us-central1/clusters/abc/instances/primary",
          "upgradeStatus": "SUCCESS",
          "instanceType": "PRIMARY",
        },
        {
          "name": "projects/1234/locations/us-central1/clusters/abc/instances/read1",
          "upgradeStatus": "SUCCESS",
          "instanceType": "READ_POOL",
        },
        {
          "name": "projects/1234/locations/us-central1/clusters/abc/instances/read2",
          "upgradeStatus": "SUCCESS",
          "instanceType": "READ_POOL",
        }
      ]
    }
  ]
}

Visualizza i log di upgrade

AlloyDB pubblica tutti i log di upgrade nel nome log postgres_upgrade.

Per visualizzare i log relativi all'upgrade:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Seleziona alloydb.googleapis.com/postgres_upgrade come nome del log. Il risultato è la query "logName="projects/PROJECT_ID/logs/alloydb.googleapis.com%2Fpostgres_upgrade".

  3. Utilizza le seguenti etichette per filtrare i log:

    Etichetta Descrizione

    LOG_TYPE

    Fase di upgrade che ha generato il log. I valori possibili sono ALLOYDB_PRECHECK, PG_UPGRADE_CHECK e PG_UPGRADE.

    OPERATION_NAME

    Nome completo dell'operazione di upgrade.

    FILE_NAME

    Viene compilato solo per i log pg_upgrade_check e pg_upgrade e corrisponde ai file di log generati dall'utilità pg_upgrade.

Di seguito è riportata una query di esempio che restituisce i log di precontrollo dell'upgrade di AlloyDB per una determinata operazione:

logName="projects/project1234/logs/alloydb.googleapis.com%2Fpostgres_upgrade"
labels.LOG_TYPE="ALLOYDB_PRECHECK"
labels.OPERATION_NAME="projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID"

Per ulteriori informazioni sui controlli di upgrade, consulta la Panoramica dell'upgrade delle versioni principali del database sul posto.

Visualizzare i log di upgrade di un cluster

Per visualizzare i log di upgrade di un cluster quando non conosci l'ID operazione e l'operazione è scaduta:

  1. Esegui una query per i log di precontrollo di AlloyDB per il tuo cluster.

    logName="projects/PROJECT_ID/logs/alloydb.googleapis.com%2Fpostgres_upgrade"
    labels.LOG_TYPE="ALLOYDB_PRECHECK"
    resource.labels.cluster_id=CLUSTER_ID
    
  2. Trova Operation_ID dall'etichetta del log OPERATION_NAME.

    Nel seguente esempio, Operation_ID da OPERATION_NAME è operation-1728225968201-623cff6ed1e02-e34b7191-3cd92013.

    labels.OPERATION_NAME="projects/myproject/locations/us-central1/operations/operation-1728225968201-623cff6ed1e02-e34b7191-3cd92013"
    
  3. Esegui una query per tutti i log postgres_upgrade relativi a un'operazione specifica.

    logName="projects/production-1/logs/alloydb.googleapis.com%2Fpostgres_upgrade"
    labels.OPERATION_NAME="operation-1728225968201-623cff6ed1e02-e34b7191-3cd92013"
    

Annullare l'upgrade della versione principale in loco del database

Puoi annullare un'operazione di upgrade della versione principale in corso dalla console Google Cloud, dall'interfaccia a riga di comando gcloud o dall'API REST.

Trovare l'ID operazione

Per annullare l'operazione di upgrade della versione principale utilizzando gcloud CLI o l'API REST, devi disporre dell'ID operazione. Devi specificare questo ID nel comando gcloud CLI o nell'API REST in modo che AlloyDB sappia quale operazione annullare.

Non puoi annullare l'upgrade dopo che l'upgrade dell'istanza principale ha raggiunto un determinato punto.

Quando avvii l'upgrade in place della versione principale, l'ID operazione viene fornito nel campo name della risposta. Vedi l'esempio di risposta.

Puoi trovare l'ID operazione anche effettuando una chiamata operations.list sul cluster AlloyDB.

Annullare l'upgrade

Per annullare un upgrade in place di una versione principale:

Console

  1. Nella console Google Cloud, vai alla pagina Cluster.

    Vai a Cluster

  2. Seleziona un cluster dall'elenco. Viene visualizzata la pagina Panoramica.

  3. Fai clic su Stato dell'upgrade.

  4. Fai clic su Annulla. Se l'upgrade non è annullabile, questo pulsante non è selezionabile.

gcloud

Utilizza il comando gcloud alloydb operations cancel per annullare l'operazione:

gcloud alloydb operations cancel OPERATION_ID

Sostituisci la variabile OPERATION_ID con l'ID dell'operazione.

Se cancellable in UpgradeClusterStatus è false nell'output del comando gcloud alloydb operations cancel, AlloyDB ignora la richiesta di annullamento e prosegue con l'upgrade. In questo caso, l'API non genera un errore e restituisce una risposta vuota. Per ulteriori informazioni sullo stato dell'upgrade, consulta Monitorare l'upgrade della versione principale del cluster.

REST v1beta

Esegui questo comando:

POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/operations/OPERATION_ID:cancel

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

  • PROJECT_ID: l'ID progetto.
  • OPERATION_ID: l'ID dell'operazione di importazione o esportazione.

Se cancellable in UpgradeClusterStatus è false, non puoi annullare l'upgrade.

Per inviare la richiesta, utilizza una delle seguenti opzioni:

curl (Linux, macOS o Cloud Shell)

Esegui questo comando:

       curl -X POST \
             -H "Authorization: Bearer $(gcloud auth print-access-token)" \
             -H "Content-Type: application/json; charset=utf-8" \
             -d "" \
            "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID/cancel"
  

PowerShell (Windows)

Esegui questo comando:

       $cred = gcloud auth print-access-token
       $headers = @{ "Authorization" = "Bearer $cred" }

       Invoke-WebRequest `
         -Method POST `
         -Headers $headers `
         -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/operations/OPERATION_ID/cancel"| Select-Object -Expand Content
    

Dovresti ricevere una risposta JSON simile alla seguente:

Risposta

Questa chiamata API REST non restituisce alcuna risposta.

Completare l'upgrade in loco della versione principale

Per completare l'upgrade alla versione principale, connettiti a un'istanza AlloyDB utilizzando AlloyDB Studio, psql o altri metodi di connessione.

Se utilizzi un sistema diverso da AlloyDB, consulta la documentazione del sistema per le istruzioni di connessione.

Dopo aver eseguito l'upgrade del cluster, segui questi passaggi per completare l'operazione:

  1. Se in precedenza hai disattivato pglogical, riattiva la replica di pglogical. L'attivazione della replica pglogical crea automaticamente lo slot di replica richiesto.

    1. Elimina l'abbonamento pglogical nella replica di destinazione utilizzando il seguente comando:

      select pglogical.drop_subscription(subscription_name name);
      

      Sostituisci name con il nome dell'abbonamento esistente. Ad esempio:

      postgres=> select pglogical.drop_subscription(subscription_name:= 'test_sub');
      -[ RECORD 1 ]-----+--
      drop_subscription |1
      
    1. Ricrea l'abbonamento pglogical nella destinazione o nella replica fornendo le seguenti informazioni di connessione all'istanza principale AlloyDB:

      SELECT pglogical.create_subscription(
       subscription_name :='test_sub',<br>
       provider_dsn := 'host=primary-ip port=5432 dbname=postgres user=replication_user password=replicapassword'
      );
      
    2. Controlla lo stato dell'abbonamento utilizzando il seguente comando:

      SELECT * FROM pglogical.show_subscription_status('test_sub');
      
    3. Testa la replica eseguendo transazioni di scrittura e verificando che le modifiche siano visibili nella destinazione.

  1. Aggiorna le statistiche del database.

    Al termine dell'upgrade, esegui ANALYZE sul cluster principale per actualizare le statistiche di sistema. Statistiche accurate assicurano che il pianificatore delle query PostgreSQL elabori le query in modo ottimale. Le statistiche mancanti possono comportare piani di query inaccurati, che potrebbero ridurre le prestazioni e occupare una quantità eccessiva di memoria.

  2. Esegui test di accettazione per assicurarti che il sistema di cui è stato eseguito l'upgrade funzioni come previsto.

  3. Verifica che la versione principale del database di cui è stato eseguito l'upgrade in situ venga visualizzata nella pagina Panoramica del cluster nella console Google Cloud.

Ripristinare la versione principale precedente

Se il sistema di database sottoposto ad upgrade non funziona come previsto, potrebbe essere necessario ripristinare lo stato precedente all'upgrade. Puoi farlo ripristinando da un backup pre-upgrade, ovvero quello creato automaticamente da AlloyDB durante la procedura di upgrade o un backup pre-upgrade esistente, per creare un nuovo cluster con lo stato pre-upgrade.

Per ripristinare uno stato precedente all'upgrade:

  1. Identifica un backup precedente all'upgrade da cui eseguire il ripristino. Durante la procedura di upgrade, AlloyDB crea automaticamente un backup pre-upgrade con il prefisso pre-upgrade-bkp. Per ulteriori informazioni, consulta la sezione Visualizzare un elenco di backup.

  2. Avvia un ripristino dal backup precedente all'upgrade, che crea un nuovo cluster con la versione PostgreSQL precedente. Per ulteriori informazioni, consulta Ripristinare un cluster da un backup archiviato.

  3. Collega l'applicazione. Aggiorna l'applicazione con i dettagli del cluster ripristinato e delle relative repliche di lettura. Puoi riprendere la pubblicazione del traffico sul cluster ripristinato.

Puoi anche eseguire un recupero point-in-time a un punto temporale precedente all'upgrade. Per ulteriori informazioni, consulta la sezione Utilizzare il recupero point-in-time (PITR).

Limitazioni

I seguenti limiti riguardano gli upgrade in place delle versioni principali di AlloyDB:

  • Non puoi eseguire un upgrade in situ della versione principale su un cluster secondario.
  • L'upgrade delle istanze con più di 1000 database da una versione all'altra potrebbe richiedere molto tempo e il timeout dell'upgrade potrebbe verificarsi.
  • AlloyDB non supporta l'upgrade dei cluster che utilizzano pg_largeobject_metadata. Se select count(*) from pg_largeobject_metadata; è diverso da zero, l'upgrade non va a buon fine.
  • L'operazione di upgrade in place della versione principale potrebbe essere completata prima del completamento del backup per l'upgrade o dei backup post-upgrade, in particolare se hai un database di grandi dimensioni con meno oggetti.
  • Potrebbe verificarsi un breve ritardo tra il momento in cui le scritture ricominciano sull'istanza di cui è stato eseguito l'upgrade e il momento in cui viene creato il backup post-upgrade. Ciò significa che i contenuti del backup post-upgrade potrebbero non corrispondere a quelli del database precedente all'upgrade della versione principale.
  • I backup precedenti all'upgrade potrebbero essere comunque creati quando un upgrade della versione principale in situ non va a buon fine.
  • Poiché i backup dell'upgrade automatico sono continui, non puoi eliminarli fino a quando non raggiungono la conservazione massima dei backup e del recupero continui. Quando viene raggiunto il periodo di conservazione massimo, i backup vengono sottoposti a garbage collection. In alternativa, puoi utilizzare l'interfaccia a riga di comando gcloud per eliminare manualmente i backup. Per ulteriori informazioni, consulta la sezione Limitazioni all'eliminazione dei backup.

Passaggi successivi