Esegui l'upgrade della versione secondaria del database di MySQL 8.0

Cloud SQL per MySQL supporta più versioni secondarie di MySQL 8.0 e esegue il provisioning delle istanze MySQL 8.0 nella versione secondaria predefinita, che è una versione secondaria precedente alla versione secondaria più recente.

Con ogni nuova versione secondaria, i fornitori di database rilasciano nuove funzionalità, patch di sicurezza, correzioni di bug e miglioramenti delle prestazioni.

MySQL 8.0 non supporta il downgrade.

Upgrade automatico

Cloud SQL supporta l'upgrade automatico delle versioni secondarie delle istanze Cloud SQL per MySQL 8.0 non associate a una versione secondaria specifica. L'istanza deve eseguire MySQL versione 8.0.35 o successive.

Se l'istanza è abilitata all'upgrade automatico delle versioni secondarie, l'istanza Cloud SQL per MySQL 8.0 viene aggiornata automaticamente alla versione secondaria predefinita di Cloud SQL per MySQL 8.0 durante l'aggiornamento di manutenzione pianificato regolarmente. Non è più necessario eseguire manualmente gli upgrade delle versioni secondarie per mantenere la tua istanza Cloud SQL per MySQL aggiornata con le patch di sicurezza e le correzioni di bug più recenti rilasciate dalla community MySQL.

Controllare l'abilitazione dell'upgrade automatico della versione secondaria

Per verificare se l'istanza è abilitata per l'upgrade automatico della versione secondaria, esegui questo comando:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID

Sostituisci INSTANCE_NAME con il nome dell'istanza e PROJECT_ID con l'ID progetto dell'istanza. Nell'output del comando, individua i seguenti campi.

  • databaseVersion: il valore deve essere MYSQL_8_0
  • databaseInstalledVersion: il valore deve essere una versione secondaria uguale o superiore a MYSQL_8_0_35

Upgrade manuale

Questa sezione descrive come eseguire l'upgrade manuale della versione secondaria di un'istanza Cloud SQL per MySQL 8.0. Se esegui una versione di Cloud SQL per MySQL 8.0.34 o precedente, devi eseguire l'upgrade manuale della versione secondaria di Cloud SQL per MySQL.

Prima di eseguire l'upgrade a una nuova versione secondaria di MySQL 8.0, prendi confidenza con le modifiche. Consulta le note di rilascio di MySQL 8.0. Se utilizzi Cloud SQL per MySQL 5.6 o 5.7, Cloud SQL gestisce automaticamente la versione secondaria dell'istanza. Quando esegui il provisioning di una nuova istanza, Cloud SQL la configura automaticamente con la versione più recente del database disponibile. Durante la manutenzione di routine, Cloud SQL esegue automaticamente l'upgrade dell'istanza all'ultima versione supportata.

Per eseguire l'upgrade della versione secondaria del database dell'istanza MySQL 8.0, devi aggiornare l'istanza con la versione secondaria che preferisci, che deve essere maggiore della versione secondaria installata. Non puoi ripristinare una versione secondaria non specificata dopo il provisioning di un'istanza.

Se esegui un'istanza di Cloud SQL Enterprise Plus, l'upgrade della versione secondaria viene completato con tempi di inattività quasi azzerati.

Prima di eseguire l'upgrade manuale

Cloud SQL supporta l'upgrade della versione secondaria per le istanze MySQL 8.0. MySQL 8.0 non consente i downgrade. Pertanto, prima di eseguire l'upgrade dell'istanza principale, segui questi passaggi per assicurarti che i tuoi dati siano al sicuro.

  1. Scegli la versione secondaria di destinazione del database.

    gcloud

    Per informazioni sull'installazione e su come iniziare a utilizzare gcloud CLI, vedi Installa gcloud CLI. Per informazioni sull'avvio di Cloud Shell, consulta Utilizzare Cloud Shell.

    Per controllare quali versioni secondarie del database sono disponibili per un upgrade in loco: svolgi le seguenti operazioni:

    1. Esegui questo comando.
    2. gcloud sql instances describe INSTANCE_NAME
         

      Sostituisci INSTANCE_NAME con il nome dell'istanza.

    3. Nell'output del comando, individua la sezione etichettata upgradableDatabaseVersions.
    4. Ogni sottosezione restituisce una versione del database disponibile per l'upgrade. In ogni sottosezione, esamina il seguente campo.
      • name: la stringa della versione del database che include la versione principale e secondaria del database a cui puoi fare riferimento per l'upgrade in loco della versione secondaria di Cloud SQL per MySQL.

    REST v1

    Per controllare quali versioni secondarie del database sono disponibili per un upgrade in loco, utilizza il metodo instances.get dell'API Cloud SQL Admin.

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

    • INSTANCE_NAME: il nome dell'istanza.

    Metodo HTTP e URL:

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

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    REST v1beta4

    Per controllare quali versioni secondarie del database sono disponibili per un upgrade in loco, utilizza il metodo instances.get dell'API Cloud SQL Admin.

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

    • INSTANCE_NAME: il nome dell'istanza.

    Metodo HTTP e URL:

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

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    Per l'elenco completo delle versioni del database supportate da Cloud SQL, consulta Versioni del database e criteri delle versioni.

  2. Testa l'upgrade in un ambiente di gestione temporanea.

    1. Crea un clone dell'istanza di produzione da utilizzare come istanza di gestione temporanea. Viene creata una nuova istanza del database, con le stesse versioni principali e secondarie.

    2. Esegui l'upgrade della versione secondaria sull'istanza di staging.

    3. Esegui test del carico di lavoro per verificare che l'upgrade sia riuscito e che l'applicazione funzioni come previsto. Se il test ha esito positivo, procedi con l'upgrade delle istanze di replica di lettura.

  3. Esegui l'upgrade delle istanze di replica di lettura.

    1. Esegui l'upgrade di tutte le repliche di lettura nel database alla versione secondaria di destinazione.

    2. Verifica che l'applicazione funzioni come previsto.

  4. Esegui il backup dell'istanza principale.

    Come per qualsiasi aggiornamento significativo del database, esegui un backup dell'istanza principale.

Esegui l'upgrade della versione secondaria

Puoi specificare la versione secondaria del database di un'istanza esistente utilizzando gcloud o l'API REST. Esegui gli upgrade delle versioni secondarie in un momento in cui il database non è in uso. Se la tua istanza richiede un riavvio, di conseguenza si verifica un tempo di inattività. Le istanze della versione Cloud SQL Enterprise Plus hanno tempi di inattività quasi nulli. Se la versione installata è superiore a quella richiesta, la richiesta viene rifiutata.

gcloud

Utilizza il comando gcloud sql instances patch con il flag --database-version.

Sostituisci le seguenti variabili prima di eseguire il comando:

  • INSTANCE_NAME: il nome dell'istanza.
  • DATABASE_VERSION: la versione del database dell'istanza. Se non specifichi questo flag, viene utilizzata la versione principale predefinita.
gcloud sql instances patch INSTANCE_NAME \
   --database-version=DATABASE_VERSION

REST v1

Utilizza una richiesta PATCH con il metodo instances:patch e il flag databaseVersion.

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

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza
  • DATABASE_VERSION: la versione del database a cui eseguire l'upgrade.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "databaseVersion": "DATABASE_VERSION"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Utilizza una richiesta PATCH con il metodo instances:patch e il flag databaseVersion.

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

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza
  • DATABASE_VERSION: la versione del database a cui eseguire l'upgrade.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID

Corpo JSON della richiesta:

{
  "databaseVersion": "DATABASE_VERSION"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE-ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

Controllare la versione secondaria installata del database

Quando visualizzi le informazioni di riepilogo dell'istanza, la versione secondaria installata del database è visibile nella sezione Configurazione.

Esegui il rollback di un upgrade

Durante il test di un upgrade, se noti un problema, potresti voler eseguire il rollback del database per recuperare l'istanza del database che esegue la versione secondaria precedente.

Per ripristinare un backup precedente all'upgrade:

  1. Esegui il provisioning di un'istanza di database di recupero nella versione secondaria precedente.
  2. Configura le impostazioni dell'istanza di database di recupero allo stato precedente all'upgrade.
  3. Ripristina il backup pre-upgrade che hai eseguito nell'istanza di recupero.

In alternativa al ripristino di un backup, esegui un recupero point-in-time e crea una nuova istanza.