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à.
Principali aggiornamenti di versione per RDS for 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
È possibile creare solo istanze DB MySQL versione 5.7, 8.0 e 8.4 con classi di istanze DB di ultima generazione e di ultima generazione.
In alcuni casi, si desidera aggiornare un'istanza DB in esecuzione su una classe di istanza DB di generazione precedente a un'istanza DB con una versione superiore del motore MySQL. In questi casi, modifica innanzitutto l'istanza database per utilizzare una classe di istanza database di ultima generazione o generazione corrente. Dopo aver eseguito questa operazione, è possibile modificare l'istanza DB per utilizzare la versione superiore del motore di database MySQL. Per informazioni sulle classi di istanza database Amazon RDS, consulta Classi di istanze DB .
Argomenti
Panoramica degli aggiornamenti di una versione principale di MySQL
Gli aggiornamenti di versione 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 della versione principale, esegui prima tutti gli aggiornamenti del sistema operativo disponibili. Una volta completati gli aggiornamenti del sistema operativo, esegui l'aggiornamento a ciascuna versione principale, ad esempio dalla 5.7 alla 8.0 e quindi dalla 8.0 alla 8.4. Per informazioni sull'aggiornamento di un cluster DB RDS for MySQL Multi-AZ, vedere. Aggiornamento della versione del motore di un cluster DB 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 degli aggiornamenti a un di istanze DB.
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 Le migliori pratiche 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 utilizzando AWS Command Line Interface (AWS CLI), usa il comando e controlla il describe-db-instancesvalore. 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 delle notifiche di RDS eventi di Amazon.
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 precontrolli, analizzano gli oggetti del database. Questa analisi comporta il consumo di risorse e incrementa il tempo di completamento dell'aggiornamento.
Argomenti
Controlli preliminari per gli aggiornamenti da MySQL 8.0 a 8.4
MySQL 8.4 include una serie 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 potrebbero essere riservate in MySQL 8.4 che non erano riservate in precedenza.
Per ulteriori informazioni, consulta Keywords and Reserved Words
nella documentazione MySQL. -
Nel database di sistema MySQL
mysql
8.0 non devono esserci tabelle con 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
oSET
la cui lunghezza è superiore a 255 caratteri o 1020 byte. -
L'installazione di MySQL 8.0 non deve utilizzare funzionalità non supportate in MySQL 8.4.
Per ulteriori informazioni, consulta Funzionalità rimosse in MySQL 8.4 nella documentazione di MySQL
. -
Non devono essere presenti nomi di vincoli della chiave più lunghi di 64 caratteri.
-
Per un supporto Unicode migliorato, consulta le seguenti informazioni:
-
Valuta la possibilità di convertire gli oggetti che utilizzano il set di
utf8mb3
caratteri in modo che utilizzino il set di caratteri.utf8mb4
Il set di caratteriutf8mb3
è obsoleto. -
Valuta la possibilità
utf8mb4
di utilizzarlo come riferimento al set di caratteri anzichéutf8
, poiché attualmenteutf8
è un alias per il set di caratteri.utf8mb3
Se possibile, passautf8mb4
primautf8
a e poi aggiorna il database. -
Poiché i client più vecchi 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. Oppure puoi usare Amazon RDS Blue/Green Deployments. Per ulteriori informazioni, consulta Utilizzo di RDSAmazon Blue/Green Deployments 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, vedere Aggiornamento di 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. È quindi possibile utilizzare il registro per preparare il database per l'aggiornamento a MySQL 8.4 riducendo le incompatibilità. Per informazioni dettagliate sulla rimozione delle incompatibilità, vedere 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 chiavi, 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
oSET
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
oDESC
per clausoleGROUP 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 seguenti informazioni:
-
Valuta la possibilità di convertire gli oggetti che utilizzano il set di
utf8mb3
caratteri in modo che utilizzino il set di caratteri.utf8mb4
Il set di caratteriutf8mb3
è obsoleto. -
Valuta la possibilità
utf8mb4
di utilizzarlo come riferimento al set di caratteri anzichéutf8
, poiché attualmenteutf8
è un alias per il set di caratteri.utf8mb3
Se possibile, passautf8mb4
primautf8
a e poi aggiorna il database. -
Poiché i client più vecchi 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. Oppure puoi usare Amazon RDS Blue/Green Deployments. Per ulteriori informazioni, consulta Utilizzo di RDSAmazon Blue/Green Deployments 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
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 DB da MySQL versione 5.7 a MySQL versione 8.0 o da MySQL versione 8.0 a 8.4, l'aggiornamento può fallire. In particolare, può fallire se il dizionario dati contiene incompatibilità che non sono state acquisite dai precontrolli. In questo caso, il database non si avvia 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, vedere Preparazione dell'installazione per l'