Aggiornamenti a versioni principali per RDS per MySQL - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiornamenti a versioni principali per RDS per MySQL

Amazon RDS supporta i seguenti aggiornamenti in loco per le versioni principali del motore di database MySQL:

  • Da MySQL 5.7 a MySQL 8.0

  • Da MySQL 8.0 a MySQL 8.4

Nota

Puoi creare istanze database MySQL versione 5.7, 8.0 e 8.4 con classi di istanze database della generazione corrente e dell’ultima generazione

In alcuni casi, potresti voler aggiornare un’istanza database in esecuzione su una classe di istanza database di generazione precedente in un’istanza database con versione del motore MySQL superiore. In questi casi, modifica innanzitutto l'istanza database per utilizzare una classe di istanza database di ultima generazione o generazione corrente. Dopo aver effettuato questa operazione, puoi modificare l’istanza database affinché utilizzi la versione del motore di database MySQL con versione successiva. Per informazioni sulle classi di istanza database Amazon RDS, consulta Classi di istanze database .

Panoramica degli aggiornamenti di una versione principale di MySQL

Gli aggiornamenti a versioni principali possono contenere modifiche al database non compatibili con le versioni precedenti delle applicazioni esistenti. Di conseguenza, Amazon RDS non applica automaticamente gli aggiornamenti di versioni principale; devi modificare l'istanza database manualmente. Ti raccomandiamo di eseguire un test approfondito di qualsiasi aggiornamento prima di applicarlo alle istanze di produzione.

Per eseguire un aggiornamento a una versione principale, esegui prima gli aggiornamenti del sistema operativo disponibili. Al termine degli aggiornamenti del sistema operativo, esegui l’aggiornamento a ogni versione principale: da 5.7 a 8.0 e quindi da 8.0 a 8.4. Per informazioni sull’aggiornamento di un cluster di database Multi-AZ RDS per MySQL, consulta Aggiornamento della versione del motore di un cluster di database Multi-AZ per Amazon RDS. Le istanze database MySQL create prima del 24 aprile 2014 indicano la disponibilità di un aggiornamento del sistema operativo fino a quando l'aggiornamento non viene applicato. Per ulteriori informazioni sugli aggiornamenti del sistema operativo, consulta Applicazione di aggiornamenti a un’istanza database.

Durante un aggiornamento della versione principale di MySQL, Amazon RDS esegue il file binario mysql_upgrade di MySQL per aggiornare le tabelle, se necessario. Amazon RDS svuota inoltre le tabelle slow_log e general_log durante un aggiornamento della versione principale. Per conservare le informazioni di log, salva il contenuto dei log prima dell'aggiornamento di versione principale.

Gli aggiornamenti di versione principale di MySQL sono in genere completati nel giro di 10 minuti. Alcuni aggiornamenti possono richiedere più tempo a causa della dimensione della classe di istanza database o perché l'istanza non segue determinate linee guida operative descritte in Best practice per Amazon RDS. Se aggiorni un'istanza database dalla console di Amazon RDS, lo stato dell'istanza database indica quando l'aggiornamento è terminato. Se esegui l'aggiornamento tramite AWS Command Line Interface (AWS CLI), utilizzare il comando describe-db-instances e controllare il valore di Status.

Controlli preliminari per gli aggiornamenti

Amazon RDS esegue controlli preliminari prima dell’aggiornamento per verificare eventuali incompatibilità. Queste incompatibilità variano in base alla versione di MySQL a cui viene eseguito l’aggiornamento.

I controlli preliminari comprendono alcuni controlli inclusi in MySQL e alcuni che sono stati creati specificamente dal team Amazon RDS. Per informazioni sui controlli preliminari forniti da MySQL, consultare Utility di controllo aggiornamenti.

I controlli preliminari vengono eseguiti prima dell'arresto dell'istanza database per l'aggiornamento, il che significa che non generano alcun tempo di inattività durante l'esecuzione. Se i controlli preliminari rilevano un'incompatibilità, Amazon RDS annulla automaticamente l'aggiornamento prima che l'istanza database venga arrestata. Amazon RDS genera anche un evento per l'incompatibilità. Per ulteriori informazioni sugli eventi di Amazon RDS, consulta Utilizzo della notifica degli eventi di Amazon RDS.

Amazon RDS memorizza le informazioni dettagliate su ciascuna incompatibilità nel file di log PrePatchCompatibility.log. Nella maggior parte dei casi, la voce di log include un collegamento alla documentazione MySQL utile per correggere l'incompatibilità. Per ulteriori informazioni sulla visualizzazione dei file di log, consultare Visualizzazione ed elenco dei file di log del database.

A causa della natura dei controlli preliminari, questi analizzano gli oggetti nel database. Questa analisi comporta il consumo di risorse e incrementa il tempo di completamento dell'aggiornamento.

Controlli preliminari per aggiornamenti da MySQL 8.0 a 8.4

MySQL 8.4 include un certo numero di incompatibilità con MySQL 8.0. Queste incompatibilità possono causare problemi durante l’aggiornamento da MySQL 8.0 a MySQL 8.4. Pertanto, potrebbe essere necessaria una specifica preparazione del database affinché l’aggiornamento possa concludersi correttamente. Di seguito è riportato un elenco generale di queste incompatibilità:

  • Non devono essere presenti tabelle che utilizzano tipi di dati o funzioni obsolete.

  • I trigger non devono avere un definer mancante o vuoto oppure un contesto di creazione non valido.

  • Non devono essere presenti violazioni di parole chiave o parole riservate. Alcune parole chiave, che non erano riservate in precedenza, possono essere riservate in MySQL 8.4.

    Per ulteriori informazioni, consulta Keywords and Reserved Words nella documentazione MySQL.

  • Non devono essere presenti tabelle nel database di sistema MySQL 8.0 mysql che hanno lo stesso nome di una tabella utilizzata dal dizionario dati MySQL 8.4.

  • Non devono esistere modalità SQL obsolete definite nell’impostazione della variabile di sistema sql_mode.

  • Non devono essere presenti tabelle o stored procedure con singoli elementi di colonna ENUM o SET la cui lunghezza è superiore a 255 caratteri o 1020 byte.

  • L’installazione MySQL 8.0 non deve utilizzare funzionalità che non sono supportate in MySQL 8.4.

    Per ulteriori informazioni, consulta Features Removed in MySQL 8.4 nella documentazione MySQL.

  • Non devono essere presenti nomi di vincoli della chiave più lunghi di 64 caratteri.

  • Per un supporto Unicode migliorato, consulta le informazioni riportate di seguito:

    • Valuta la conversione di oggetti che utilizzano il set di caratteri utf8mb3 per utilizzare il set di caratteri utf8mb4. Il set di caratteri utf8mb3 è obsoleto.

    • Valuta l’utilizzo di utf8mb4 per i riferimenti al set di caratteri anziché utf8, perché attualmente utf8 è un’alias per il set di caratteri utf8mb3. Se possibile, modifica innanzitutto utf8 in utf8mb4 e poi aggiorna il database.

    • Poiché i client meno recenti possono ricevere un errore di set di caratteri sconosciuto per utf8mb3, aggiorna i client del database prima di aggiornare il database.

    Per ulteriori informazioni, consulta The utf8mb3 Character Set (3-Byte UTF-8 Unicode Encoding) nella documentazione MySQL.

    Per modificare i set di caratteri, è possibile eseguire manualmente un backup, un ripristino e una replica del database. In alternativa è possibile utilizzare le implementazioni blu/verdi di Amazon RDS. Per ulteriori informazioni, consulta Utilizzo delle implementazioni blu/verde Amazon RDS per gli aggiornamenti del database.

Quando avvii un aggiornamento da MySQL 8.0 a 8.4, Amazon RDS esegue automaticamente dei controlli preliminari per rilevare queste incompatibilità. Per informazioni sull’aggiornamento a MySQL 8.4, consulta Upgrading MySQL nella documentazione di MySQL.

Questi controlli preliminari sono obbligatori. Non puoi scegliere di saltarli. I controlli preliminari offrono i seguenti vantaggi:

  • Ti consentono di evitare tempi di inattività non pianificati durante l'aggiornamento.

  • Se sono presenti incompatibilità, Amazon RDS impedisce l’aggiornamento e fornisce un log per ottenere informazioni sulle stesse. Puoi quindi utilizzare il log per preparare il database per l'aggiornamento a MySQL 8.4 riducendo le incompatibilità. Per informazioni dettagliate sulla rimozione di eventuali incompatibilità, consulta Preparazione dell’installazione per l’aggiornamento nella documentazione di MySQL.

Controlli preliminari per aggiornamenti da MySQL 5.7 a 8.0

MySQL 8.0 include un certo numero di incompatibilità con MySQL 5.7. Queste incompatibilità possono causare problemi durante l'aggiornamento da MySQL 5.7 a MySQL 8.0. Pertanto, potrebbe essere necessaria una specifica preparazione del database affinché l’aggiornamento possa concludersi correttamente. Di seguito è riportato un elenco generale di queste incompatibilità:

  • Non devono essere presenti tabelle che utilizzano tipi di dati o funzioni obsolete.

  • Non devono esistere file *.frm orfani.

  • I trigger non devono avere un definer mancante o vuoto oppure un contesto di creazione non valido.

  • Non devono essere presenti tabelle partizionate che utilizzano un motore di storage che non dispone di supporto di partizionamento nativo.

  • Non devono essere presenti violazioni di parole chiave o parole riservate. Alcune parole chiave, che non erano riservate in precedenza, possono essere riservate in MySQL 8.0.

    Per ulteriori informazioni, consulta Keywords and Reserved Words nella documentazione MySQL.

  • Non devono essere presenti tabelle nel database di sistema MySQL 5.7 mysql che hanno lo stesso nome di una tabella utilizzata dal dizionario dati MySQL 8.0.

  • Non devono esistere modalità SQL obsolete definite nell’impostazione della variabile di sistema sql_mode.

  • Non devono essere presenti tabelle o stored procedure con singoli elementi di colonna ENUM o SET la cui lunghezza è superiore a 255 caratteri o 1020 byte.

  • Prima dell'aggiornamento a MySQL 8.0.13 o versioni successive, non devono esistere partizioni di tabella che risiedono in spazi tabelle InnoDB condivisi.

  • Non devono essere presenti definizioni di query e di programmi archiviati da MySQL 8.0.12 o versione inferiore che utilizzano qualificatori ASC o DESC per clausole GROUP BY.

  • L'installazione MySQL 5.7 non deve utilizzare caratteristiche che non sono supportate in MySQL 8.0.

    Per ulteriori informazioni, consulta Features Removed in MySQL 8.0 nella documentazione MySQL.

  • Non devono essere presenti nomi di vincoli della chiave più lunghi di 64 caratteri.

  • Per un supporto Unicode migliorato, consulta le informazioni riportate di seguito:

    • Valuta la conversione di oggetti che utilizzano il set di caratteri utf8mb3 per utilizzare il set di caratteri utf8mb4. Il set di caratteri utf8mb3 è obsoleto.

    • Valuta l’utilizzo di utf8mb4 per i riferimenti al set di caratteri anziché utf8, perché attualmente utf8 è un’alias per il set di caratteri utf8mb3. Se possibile, modifica innanzitutto utf8 in utf8mb4 e poi aggiorna il database.

    • Poiché i client meno recenti possono ricevere un errore di set di caratteri sconosciuto per utf8mb3, aggiorna i client del database prima di aggiornare il database.

    Per ulteriori informazioni, consulta The utf8mb3 Character Set (3-Byte UTF-8 Unicode Encoding) nella documentazione MySQL.

    Per modificare i set di caratteri, è possibile eseguire manualmente un backup, un ripristino e una replica del database. In alternativa è possibile utilizzare le implementazioni blu/verdi di Amazon RDS. Per ulteriori informazioni, consulta Utilizzo delle implementazioni blu/verde Amazon RDS per gli aggiornamenti del database.

Quando avvii un aggiornamento da MySQL 5.7 a 8.0, Amazon RDS esegue automaticamente dei controlli preliminari per rilevare queste incompatibilità. Per informazioni sull'aggiornamento a MySQL 8.0, consulta Upgrading MySQL nella documentazione MySQL.

Questi controlli preliminari sono obbligatori. Non puoi scegliere di saltarli. I controlli preliminari offrono i seguenti vantaggi:

  • Ti consentono di evitare tempi di inattività non pianificati durante l'aggiornamento.

  • Se sono presenti incompatibilità, Amazon RDS impedisce l’aggiornamento e fornisce un log per ottenere informazioni sulle stesse. Puoi quindi utilizzare il log per preparare il database per l'aggiornamento a MySQL 8.0 riducendo le incompatibilità. Per informazioni dettagliate sulla rimozione di incompatibilità, consulta l'argomento relativo alla preparazione dell'installazione per l'aggiornamento nella documentazione di MySQL e il post relativo alle informazioni sull'aggiornamento di MySQL 8.0 nel blog di MySQL Server.

Rollback dopo il mancato aggiornamento

Quando si aggiorna un’istanza database da MySQL versione 5.7 a MySQL versione 8.0 oppure da MySQL versione 8.0 a 8.4, l’aggiornamento può non andare a buon fine. In particolare, può fallire se il dizionario dati contiene incompatibilità che non sono state acquisite dai precontrolli. In questo caso, il database non viene avviato correttamente nella nuova versione di MySQL 8.0 o 8.4. A questo punto, Amazon RDS esegue il rollback delle modifiche eseguite per l'aggiornamento. Dopo il rollback, l’istanza database MySQL esegue la versione originale:

  • MySQL versione 8.0 (per un rollback da MySQL 8.4)

  • MySQL versione 5.7 (per un rollback da MySQL 8.0)

Quando un aggiornamento non riesce e viene eseguito il rollback, Amazon RDS genera un evento con l'ID evento RDS-EVENT-0188.

In genere, un aggiornamento non riesce perché ci sono incompatibilità nei metadati tra i database nell'istanza database e la versione di MySQL di destinazione. Quando un aggiornamento non riesce, è possibile visualizzare i dettagli su queste incompatibilità nel file upgradeFailure.log. Risolvere le incompatibilità prima di provare a eseguire nuovamente l'aggiornamento.

Durante un tentativo di aggiornamento e rollback non riusciti, l'istanza database viene riavviata. Eventuali modifiche dei parametri in sospeso vengono applicate durante il riavvio e persistono dopo il rollback.

Per ulteriori informazioni sull'aggiornamento a MySQL 8.0, consulta i seguenti argomenti nella documentazione di MySQL:

Per ulteriori informazioni sull’aggiornamento a MySQL 8.4, consulta Preparazione dell’installazione per l’aggiornamento nella documentazione di MySQL.