Esegui un upgrade in loco della versione principale del database

Questa pagina descrive come eseguire un upgrade in loco della versione principale di un database di un cluster AlloyDB per PostgreSQL. Per scoprire di più sui casi d'uso, sul flusso di lavoro e sui backup automatici dell'upgrade della versione principale del database in loco, consulta la panoramica dell'upgrade della versione principale del database in loco.

Pianificare un upgrade della versione principale del database

Per pianificare un upgrade della versione principale del database:

  1. Trova la versione principale attuale del database.

    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 sull'installazione e su come iniziare a utilizzare gcloud CLI, vedi Installa gcloud CLI. Per informazioni su come avviare Cloud Shell, consulta Utilizzare Cloud Shell.

    Esegui questo comando per recuperare i dettagli del cluster, inclusa la versione principale corrente:

    gcloud alloydb clusters describe CLUSTER_ID --region=REGION

    Effettua 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

    Effettua 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" \
             "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
    • POSTGRES_16
    POSTGRES_15
    • POSTGRES_16
  3. Esamina le funzionalità offerte in ogni versione principale del database.

  4. Identifica eventuali incompatibilità che devi 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 sul cluster di produzione, ti consigliamo di clonare il cluster e testare l'upgrade della versione principale sul cluster clonato.

    Oltre a verificare che l'upgrade venga completato correttamente, esegui dei test per assicurarti che l'applicazione si comporti come previsto sul cluster aggiornato.

Prepara il cluster per un upgrade della versione principale

Per connetterti al database, utilizza una delle seguenti opzioni:

  1. Elimina o promuovi le repliche tra regioni. Gli upgrade in loco della versione principale del database non supportano le repliche tra regioni. Per saperne di più, vedi Replica tra regioni.

  2. Se il tuo cluster AlloyDB è una sorgente di replica logica, disattiva gli abbonamenti downstream ed elimina tutti gli slot di replica 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 disattivare gli abbonamenti ed eliminare gli slot di replica logica:

    1. Disattiva ogni abbonamento downstream sul sottoscrittore o sulla destinazione di replica downstream. Non disattivare gli abbonamenti downstream 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 corrente.

        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 sull'istanza primaria AlloyDB eseguendo il seguente comando:

      SELECT pg_drop_replication_slot(REPLICATION_SLOT_NAME) FROM pg_replication_slots WHERE slot_type = 'logical';
      

      Sostituisci REPLICATION_SLOT_NAME nella query con il nome dello slot di replica.

  3. Gestisci le estensioni PostgreSQL. Per maggiori informazioni, vedi 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 saperne di più, consulta Visualizzare gli errori di controllo pre-upgrade.

    Potrebbe essere necessario:

    1. Elimina 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 di PostgreSQL di destinazione. Per ulteriori informazioni, consulta Estensioni PostGIS. La tabella seguente elenca le versioni minime supportate dell'estensione PostGIS per ogni versione principale di PostgreSQL:

      Versione di PostgreSQL Versione minima supportata di PostGIS
      PG14 3.1
      PG15 3.2
      PG16 3.4

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

      ALTER EXTENSION postgis UPDATE TO '3.4.0';
      SELECT PostGIS_Version();
      
  4. Verifica che le connessioni siano consentite per ogni database, ad eccezione di template0, eseguendo la query seguente 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 questo comando:

    ALTER DATABASE DATABASE_NAME WITH ALLOW_CONNECTIONS = true;
    
  5. Verifica che template1 sia un database modello eseguendo il seguente comando:

    SELECT datname, datistemplate FROM pg_database WHERE datname = 'template1';
    

    Se datistemplate è f, impostalo su true eseguendo questo comando:

    ALTER DATABASE template1 WITH IS_TEMPLATE true;
    

Esegui l'upgrade sul posto della versione principale del cluster

L'upgrade in loco 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 inattività dell'istanza principale è in genere compreso tra 20 minuti e un'ora e dipende principalmente dallo schema del database.

Quando invii una richiesta di upgrade della versione principale in loco, AlloyDB esegue innanzitutto dei controlli pre-upgrade. Se AlloyDB determina che il tuo cluster non è pronto per un upgrade della versione principale, la richiesta non va a buon fine. Per maggiori informazioni, vedi Risolvere i problemi relativi a un upgrade in loco di una versione principale.

Per eseguire l'upgrade della versione principale del database sul posto:

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 la 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, vedi Monitorare l'upgrade della versione principale del database.

gcloud

Avvia l'upgrade in loco della versione principale eseguendo questo comando:

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

Di seguito è riportato un comando di esempio:

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

REST v1beta

Avvia l'upgrade in loco della versione principale eseguendo questo 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'enumerazione per la versione principale del database di destinazione, che deve essere successiva alla versione attuale.

Corpo JSON della richiesta di esempio:

{
"version": "POSTGRES_16"
}

Terraform

Per eseguire l'upgrade di un'istanza all'interno del cluster di database a una versione di PostgreSQL, utilizza una risorsa Terraform e imposta database_version su una versione principale di destinazione supportata.

resource "google_alloydb_instance" "default" {
cluster       = google_alloydb_cluster.default.name
instance_id   = "alloydb-instance"
instance_type = "PRIMARY"

machine_config {
  cpu_count = 2
}

depends_on = [google_service_networking_connection.vpc_connection]
}

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  network_config {
    network = google_compute_network.default.id
  }
  database_version = "POSTGRES_16"

  initial_user {
    password = "alloydb-cluster"
  }
}

data "google_project" "project" {}

resource "google_compute_network" "default" {
  name = "alloydb-network"
}

resource "google_compute_global_address" "private_ip_alloc" {
  name          =  "alloydb-cluster"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_service_networking_connection" "vpc_connection" {
  network                 = google_compute_network.default.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Monitora l'upgrade della versione principale del cluster

Una volta avviato l'upgrade in loco della versione principale del database, puoi monitorare lo stato dell'upgrade utilizzando la console Google Cloud , gcloud CLI 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 in fase di upgrade. Viene visualizzata la pagina Panoramica.

  3. Apri la pagina Panoramica.

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

gcloud

Segui questi passaggi per controllare lo stato dell'upgrade nella gcloud CLI:

  1. Recupera l'ID dell'operazione di upgrade eseguendo questo 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 gcloud CLI 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 comando di esempio:

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

    gcloud alloydb operations describe OPERATION_ID
    --region=REGION

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 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

    Effettua 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 è riportato un esempio di risposta 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, vedi Risposta all'operazione di upgrade.

Risposta all'operazione di upgrade

La risposta dell'operazione UpgradeCluster include quanto segue:

  • status: lo 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: dettagli dell'upgrade per i cluster in fase di upgrade. Questo campo è un array. AlloyDB consente un solo upgrade del cluster, quindi include 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 significa 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 essere sempre PRIMARY.
    • databaseVersion: la versione attuale del database del cluster.
    • stageInfo: informazioni sulle fasi di upgrade del core.
      • 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: il nome completo dell'istanza
      • upgradeStatus: SUCCESS o FAILED
      • instanceType: PRIMARY o READ_POOL

Di seguito è riportato un esempio di risposta dell'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_16",
      "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 di AlloyDB

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

Per visualizzare i log relativi all'upgrade:

  1. Nella Google Cloud console, 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. Ciò si traduce nella 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

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

Di seguito è riportato un esempio di query che restituisce i log di pre-controllo 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 sul posto della versione principale del database.

Visualizza i log di upgrade per un cluster

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

  1. Nella Google Cloud console, 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. Esegui una query per i log di controllo preliminare 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
    
  3. 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"
    
  4. Esegui una query per tutti i log postgres_upgrade per un'operazione specifica.

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

Annulla l'upgrade della versione principale del database sul posto

Puoi annullare un'operazione di upgrade della versione principale in corso dalla console Google Cloud , da gcloud CLI 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 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 loco della versione principale, l'ID operazione viene restituito 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 l'upgrade in loco 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 upgrade. 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 UpgradeClusterStatus mostra cancellable come false nell'output del comando gcloud alloydb operations cancel, AlloyDB ignora la richiesta di annullamento e continua 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, effettua 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.

Completa l'upgrade in loco della versione principale

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

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

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

  1. Se in precedenza hai disattivato pglogical, riattiva la replica di pglogical. L'abilitazione 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.  Recreate the `pglogical` subscription on the destination or
        replica by providing the following connection information to the
        AlloyDB primary instance:
      
        ```sql
        SELECT pglogical.create_subscription(
        subscription_name :='test_sub',<br>
        provider_dsn := 'host=primary-ip port=5432 dbname=postgres user=replication_user password=replicapassword'
        );
        ```
      
      1.  Check the status of the subscription by using the following command:
      
        ```sql
        SELECT * FROM pglogical.show_subscription_status('test_sub');
        ```
      
      1.  Test the replication by performing write transactions and
        verifying that the changes are visible on the destination.
      
  2. Aggiorna le statistiche del database.

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

  3. Esegui test di accettazione per assicurarti che il sistema aggiornato funzioni come previsto.

  4. Verifica che la versione principale dell'upgrade in loco del database venga visualizzata nella pagina Panoramica del cluster nella console Google Cloud .

Ripristinare la versione principale precedente

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

Per ripristinare uno stato precedente all'upgrade:

  1. Identifica un backup pre-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, vedi Visualizzare un elenco di backup.

  2. Avvia un ripristino dal backup pre-upgrade, che crea un nuovo cluster con la versione precedente di PostgreSQL. Per maggiori informazioni, vedi Ripristinare un cluster da un backup archiviato.

  3. Connetti la tua applicazione. Aggiorna la tua applicazione con i dettagli del cluster ripristinato e delle relative repliche di lettura. Puoi riprendere a pubblicare il traffico sul cluster ripristinato.

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

Limitazioni

I seguenti limiti influiscono sugli upgrade in loco della versione principale per AlloyDB:

  • Non puoi eseguire un upgrade in loco 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 l'upgrade potrebbe scadere.
  • 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 della versione principale in loco potrebbe essere completata prima del backup pre-upgrade o prima del completamento dei backup post-upgrade, soprattutto se hai un database di grandi dimensioni con un numero inferiore di oggetti schema.
  • Potrebbe verificarsi un breve ritardo tra il momento in cui le scritture riprendono sull'istanza sottoposta ad 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 precedenti all'upgrade della versione principale.
  • I backup pre-upgrade potrebbero comunque essere creati in caso di errore di upgrade in loco della versione principale.
  • Poiché i backup dell'upgrade automatico sono continui, non puoi eliminarli finché non raggiungono il periodo massimo di conservazione dei backup e del recupero continui. Quando viene raggiunto il periodo massimo di conservazione, i backup vengono sottoposti a garbage collection; in alternativa, puoi utilizzare gcloud CLI per eliminare manualmente i backup. Per ulteriori informazioni, vedi Limitazioni all'eliminazione dei backup.

Passaggi successivi