Principali aggiornamenti di versione per RDS for My SQL - 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à.

Principali aggiornamenti di versione per RDS for My SQL

Amazon RDS supporta i seguenti aggiornamenti immediati per le versioni principali del motore di SQL database My:

  • Da My SQL 5.6 a My 5.7 SQL

  • Da My SQL 5.7 a My 8.0 SQL

Nota

È possibile creare istanze DB My SQL version 5.7 e 8.0 solo con classi di istanze DB di ultima generazione e di ultima generazione, oltre alla classe di istanze DB db.m3 di generazione precedente.

In alcuni casi, si desidera aggiornare un'istanza DB My SQL version 5.6 in esecuzione su una classe di istanza DB di generazione precedente (diversa da db.m3) a un'istanza DB My version 5.7. SQL In questi casi, modifica innanzitutto l'istanza database per utilizzare una classe di istanza database di ultima generazione o generazione corrente. Dopo averlo fatto, puoi modificare l'istanza DB per utilizzare il motore di database My version 5.7. SQL Per informazioni sulle classi di istanze Amazon RDS DB, consultaClassi di istanze DB .

Panoramica degli aggiornamenti della mia versione SQL principale

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 delle versioni principali; è necessario modificare manualmente l'istanza DB. Ti raccomandiamo di eseguire un test approfondito di qualsiasi aggiornamento prima di applicarlo alle istanze di produzione.

Per eseguire un aggiornamento della versione principale di un'istanza DB My SQL version 5.6 su Amazon RDS alla SQL versione My 5.7 o successiva, esegui prima tutti gli aggiornamenti del sistema operativo disponibili. Al termine degli aggiornamenti del sistema operativo, esegui l'aggiornamento a ogni versione principale: da 5.6 a 5.7 e quindi da 5.7 a 8.0. Le mie istanze SQL DB create prima del 24 aprile 2014 mostrano un aggiornamento del sistema operativo disponibile fino all'applicazione dell'aggiornamento. 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 SQL file binario My mysql_upgrade per aggiornare le tabelle, se necessario. Inoltre, Amazon RDS svuota le general_log tabelle slow_log e 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 SQL delle mie versioni principali in genere vengono completati in circa 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 esegui l'upgrade di un'istanza DB dalla RDS console Amazon, lo stato dell'istanza DB indica quando l'aggiornamento è completo. Se esegui l'upgrade utilizzando AWS Command Line Interface (AWS CLI), usa il describe-db-instancescomando e controlla il Status valore.

Gli aggiornamenti alla mia SQL versione 5.7 potrebbero essere lenti

La mia SQL versione 5.6.4 ha introdotto un nuovo formato di data e ora per e le timestamp colonne che consente la datetime time presenza di componenti frazionari nei valori di data e ora. Quando si aggiorna un'istanza DB alla SQL versione My 5.7, My SQL forza la conversione di tutti i tipi di colonne di data e ora nel nuovo formato.

Poiché questa conversione ricrea le tabelle, il completamento dell'aggiornamento dell'istanza database può richiedere parecchio tempo. La conversione forzata si verifica per tutte le istanze DB che eseguono una versione precedente a My version 5.6.4. SQL Si verifica anche per tutte le istanze DB che sono state aggiornate da una versione precedente a My version 5.6.4 a una SQL versione diversa dalla 5.7.

Se l'istanza DB esegue una versione precedente a My SQL version 5.6.4 o è stata aggiornata da una versione precedente alla 5.6.4, consigliamo un passaggio aggiuntivo. In questi casi, ti consigliamo di convertire le timestamp colonne datetimetime, e del database prima di aggiornare l'istanza DB alla versione My 5.7. SQL Questa conversione può ridurre in modo significativo il tempo necessario per aggiornare l'istanza DB alla versione My SQL 5.7. Per aggiornare le colonne di data e ora al nuovo formato, esegui il comando ALTER TABLE <table_name> FORCE; per ogni tabella contenente tali colonne. Poiché la modifica di una tabella la rende di sola lettura, ti consigliamo di eseguire questo aggiornamento durante una finestra di manutenzione.

Puoi utilizzare la seguente query per trovare tutte le tabelle del database che hanno colonne di tipo datetime, time o timestamp e creare un comando ALTER TABLE <table_name> FORCE; per ogni tabella.

SET show_old_temporals = ON; SELECT table_schema, table_name,column_name, column_type FROM information_schema.columns WHERE column_type LIKE '%/* 5.5 binary format */'; SET show_old_temporals = OFF;

Controlli preliminari per gli aggiornamenti da My SQL 5.7 a 8.0

My SQL 8.0 include una serie di incompatibilità con My 5.7. SQL Queste incompatibilità possono causare problemi durante l'aggiornamento da My 5.7 a My 8.0. SQL SQL 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 potrebbero essere riservate in My SQL 8.0 che non erano riservate in precedenza.

    Per ulteriori informazioni, consulta Parole chiave e parole riservate nella SQL documentazione My.

  • Nel database di mysql sistema My SQL 5.7 non devono esserci tabelle con lo stesso nome di una tabella utilizzata dal dizionario di dati My SQL 8.0.

  • Non devono essere definite SQL modalità obsolete nelle impostazioni delle variabili di sql_mode sistema.

  • 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 My SQL 8.0.13 o versioni successive, non devono esserci partizioni di tabella che risiedono in tablespace InnoDB condivisi.

  • Non devono esserci domande e definizioni di programma memorizzate in My 8.0.12 o versioni precedenti che utilizzino o qualificatori per le clausole. SQL ASC DESC GROUP BY

  • L'installazione di My SQL 5.7 non deve utilizzare funzionalità non supportate in My 8.0. SQL

    Per ulteriori informazioni, consulta Funzionalità rimosse in My SQL 8.0 nella documentazione My. SQL

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

  • Per supporto Unicode migliorato, valuta la conversione di oggetti che utilizzano il charset utf8mb3 per utilizzare il charset utf8mb4. Il set di caratteri utf8mb3 è obsoleto. Inoltre, valuta l'utilizzo di utf8mb4 per i riferimenti al set di caratteri anziché utf8, perché attualmente utf8 è un'alias per il charset utf8mb3.

    Per ulteriori informazioni, vedete Il set di caratteri utf8mb3 (codifica unicode a 3 byte UTF -8) nella mia documentazione. SQL

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

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

I controlli preliminari includono alcuni inclusi in My SQL e altri creati appositamente dal RDS team di Amazon. Per informazioni sui precontrolli forniti da MySQL, consulta l'utilità Upgrade checker.

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 annulla RDS automaticamente l'aggiornamento prima che l'istanza DB venga interrotta. Amazon genera RDS anche un evento per l'incompatibilità. Per ulteriori informazioni sugli RDS eventi Amazon, consultaUtilizzo delle notifiche di RDS eventi di Amazon.

Amazon RDS registra informazioni dettagliate su ogni incompatibilità nel file PrePatchCompatibility.log di registro. Nella maggior parte dei casi, la voce di registro include un collegamento alla SQL documentazione My 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.

Nota

Amazon RDS esegue tutti questi controlli preliminari solo per un aggiornamento da My SQL 5.7 a My SQL 8.0. Per un aggiornamento da My SQL 5.6 a My SQL 5.7, i controlli preliminari si limitano a confermare che non ci siano tabelle orfane e che ci sia spazio di archiviazione sufficiente per ricostruire le tabelle. I precontrolli non vengono eseguiti per gli aggiornamenti a versioni precedenti a My 5.7. SQL

Rollback dopo il mancato aggiornamento da My 5.7 a 8.0 SQL

Quando si aggiorna un'istanza DB da My SQL version 5.7 a My SQL version 8.0, 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 My SQL 8.0. A questo punto, Amazon RDS ripristina le modifiche eseguite per l'upgrade. Dopo il rollback, l'istanza My SQL DB esegue la mia SQL versione 5.7. Quando un upgrade fallisce e viene ripristinato, Amazon RDS genera un evento con l'ID evento RDS - EVENT -0188.

In genere, un aggiornamento non riesce a causa di incompatibilità nei metadati tra i database dell'istanza DB e la versione My di destinazione. SQL 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 My SQL 8.0, consulta i seguenti argomenti nella documentazione personale: SQL

Nota

Attualmente, il rollback automatico dopo un errore di aggiornamento è supportato solo per gli aggiornamenti delle versioni principali di My SQL 5.7 a 8.0.