Confronto tra Aurora MySQL versione 2 e Aurora MySQL versione 3 - Amazon Aurora

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

Confronto tra Aurora MySQL versione 2 e Aurora MySQL versione 3

Utilizzare quanto segue per scoprire le modifiche di cui essere a conoscenza quando si aggiorna il cluster Aurora MySQL versione 2 alla versione 3.

Supporto per Atomic DDL (Data Definition Language).

Una delle modifiche più importanti da MySQL 5.7 a 8.0 è l’introduzione dell’Atomic Data Dictionary. Prima di MySQL 8.0, il dizionario dei dati MySQL utilizzava un approccio basato su file per archiviare metadati come definizioni di tabelle (.frm), trigger (.trg) e funzioni separatamente dai metadati del motore di archiviazione (come quelli di InnoDB). Ciò presentava alcuni problemi, tra cui il rischio che le tabelle diventassero orfane in caso di imprevisti durante un’operazione DDL, il che causava la mancata sincronizzazione tra metadati basati su file e metadati del motore di archiviazione.

Per risolvere questo problema, MySQL 8.0 ha introdotto l’Atomic Data Dictionary, che archivia tutti i metadati in un set di tabelle InnoDB interne nello schema mysql. Questa nuova architettura offre un modo transazionale e conforme agli standard ACID per gestire i metadati del database, risolvendo il problema di “Atomic DDL” derivante dal precedente approccio basato su file. Per ulteriori informazioni sull’Atomic Data Dictionary, consulta Removal of file-based metadata storage e Atomic data definition statement support nel manuale di riferimento di MySQL.

A causa di questa modifica all’architettura, è necessario considerare quanto segue durante l’aggiornamento da Aurora MySQL versione 2 alla versione 3:

  • È necessario eseguire la migrazione dei metadati basati su file della versione 2 nelle nuove tabelle dei dizionari di dati durante il processo di aggiornamento alla versione 3. A seconda del numero di oggetti del database di cui viene eseguita la migrazione, questa operazione potrebbe richiedere tempo.

  • Le modifiche hanno inoltre introdotto alcune nuove incompatibilità che potrebbero dover essere risolte prima di poter eseguire l’aggiornamento da MySQL 5.7 a 8.0. Ad esempio, 8.0 include alcune nuove parole chiave riservate che potrebbero entrare in conflitto con i nomi degli oggetti del database esistenti.

Per aiutarti a identificare queste incompatibilità prima di aggiornare il motore, Aurora MySQL esegue una serie di controlli di compatibilità degli aggiornamenti (controlli preliminari) per determinare se ci sono oggetti incompatibili nel dizionario del database, prima di eseguire l’aggiornamento del dizionario dei dati. Per ulteriori informazioni sui controlli preliminari, consulta Controlli preliminari per gli aggiornamenti a versioni principali per Aurora MySQL.

Differenze di funzionalità tra Aurora MySQL versione 2 e 3

Le seguenti caratteristiche di Amazon Aurora MySQL sono supportate in Aurora MySQL 5.7, ma attualmente non in Aurora MySQL 8.0:

  • Non puoi utilizzare Aurora MySQL versione 3 per cluster Aurora Serverless v1. Aurora MySQL versione 3 funziona con Aurora Serverless v2.

  • La modalità Lab non si applica ad Aurora MySQL versione 3. Non ci sono funzionalità in modalità laboratorio in Aurora MySQL versione 3. Instant DDL sostituisce la veloce funzionalità DDL online precedentemente disponibile in modalità laboratorio. Per vedere un esempio, consulta DDL istantaneo (Aurora MySQL versione 3).

  • La cache delle query viene rimossa dalla community MySQL 8.0 e anche da Aurora MySQL versione 3.

  • Aurora MySQL versione 3 è compatibile con la funzionalità hash join MySQL della community. L'implementazione specifica di Aurora di hash join in Aurora MySQL versione 2 non viene utilizzata. Per informazioni sull'utilizzo di hash join con la query parallela Aurora, consultare Abilitazione dell'hash join per cluster di query parallele e Suggerimenti di Aurora MySQL. Per informazioni generali sull'utilizzo su hash join, vedere Ottimizzazione hash join nel Manuale di riferimento MySQL.

  • La procedura archiviata mysql.lambda_async resa obsoleta in Aurora MySQL versione 2 viene rimossa nella versione 3. Per la versione 3, utilizzare invece la funzione asincrona lambda_async.

  • Il set di caratteri predefinito in Aurora MySQL versione 3 è utf8mb4. In Aurora MySQL versione 2, il set di caratteri predefinito era latin1. Per informazioni su questo set di caratteri, consultare Il set di caratteri utf8mb4 (4-Byte UTF-8 Unicode Encoding) nel Manuale di riferimento MySQL.

Alcune funzionalità di Aurora MySQL sono disponibili per alcune combinazioni di regione AWS e versione del motore del database. Per dettagli, consultare Funzionalità supportate in Amazon Aurora by e Regione AWS Aurora DB engine.

Supporto delle classi di istanza

Aurora MySQL versione 3 supporta un set di classi di istanza diverso da quello di Aurora MySQL versione 2:

  • Per istanze più grandi, è possibile utilizzare le classi di istanza moderne comedb.r5,db.r6g, edb.x2g.

  • Per istanze più piccole, è possibile utilizzare le classi di istanza moderne come db.t3 e db.t4g.

    Nota

    Consigliamo di utilizzare le classi di istanza database T solo per i server di sviluppo e test o altri server non di produzione. Per ulteriori informazioni sulle classi di istanza T, consulta Utilizzo delle classi di istanza T per lo sviluppo e i test.

Le seguenti classi di istanza di Aurora MySQL versione 2 non sono disponibili per Aurora MySQL versione 3:

  • db.r4

  • db.r3

  • db.t3.small

  • db.t2

Controllare gli script di amministrazione per eventuali istruzioni CLI che creano istanze database Aurora MySQL. Codificare i nomi delle classi di istanza che non sono disponibili per Aurora MySQL versione 3. Se necessario, modificare i nomi delle classi di istanza con quelli supportati da Aurora MySQL versione 3.

Suggerimento

Per controllare le classi di istanza che è possibile utilizzare per una combinazione specifica della versione di Aurora MySQL e regione AWS, utilizza il comando describe-orderable-db-instance-options AWS CLI.

Per i dettagli sulle classi di istanza Aurora, consultare Classi di istanze database Amazon Aurora.

Modifiche ai parametri per Aurora MySQL versione 3

Aurora MySQL versione 3 include nuovi parametri di configurazione a livello di cluster e a livello di istanza. Aurora MySQL versione 3 rimuove anche alcuni parametri presenti in Aurora MySQL versione 2. Alcuni nomi dei parametri vengono modificati a seguito dell'iniziativa per un linguaggio inclusivo. Per la compatibilità con le versioni precedenti, è comunque possibile recuperare i valori dei parametri utilizzando i vecchi nomi o i nuovi nomi. Tuttavia, è necessario utilizzare i nuovi nomi per specificare i valori dei parametri in un gruppo di parametri personalizzato.

In Aurora MySQL versione 3, il valore del parametro lower_case_table_names viene impostato in modo permanente al momento della creazione del cluster. Se si utilizza un valore non predefinito per questa opzione, configurare il gruppo di parametri personalizzati Aurora MySQL versione 3 prima dell'aggiornamento. Quindi specificare il gruppo di parametri durante l'operazione di creazione del cluster o del ripristino dello snapshot.

Nota

Con un database globale Aurora basato su Aurora MySQL, non puoi eseguire un aggiornamento locale da Aurora MySQL versione 2 alla versione 3 se il parametro lower_case_table_names è attivato. Utilizzare invece il metodo di ripristino snapshot.

In Aurora MySQL versione 3, i parametri init_connect e read_only non si applicano agli utenti che dispongono del privilegio CONNECTION_ADMIN, incluso l'utente master Aurora. Per ulteriori informazioni, consulta Privilegio basato sui ruoli.

Per un elenco di tutti i parametri del cluster Aurora MySQL, consultare Parametri a livello di cluster. La tabella copre tutti i parametri di Aurora MySQL versione 2 e 3. La tabella include note che mostrano quali parametri sono nuovi in Aurora MySQL versione 3 o sono stati rimossi da Aurora MySQL versione 3.

Per un elenco di tutti i parametri dell'istanza Aurora MySQL, consultare Parametri a livello di istanza. La tabella copre tutti i parametri di Aurora MySQL versione 2 e 3. La tabella include note che mostrano quali parametri sono nuovi in Aurora MySQL versione 3 e quali parametri sono stati rimossi da Aurora MySQL versione 3. Include anche note che mostrano quali parametri erano modificabili nelle versioni precedenti ma non Aurora MySQL versione 3.

Per informazioni sui nomi dei parametri modificati, consultare Cambiamenti linguistici inclusivi per Aurora MySQL versione 3.

Variabili di stato

Per informazioni sulle variabili di stato che non sono applicabili a Aurora MySQL, vedere Le variabili di stato MySQL seguenti non si applicano ad Aurora MySQL.

Cambiamenti linguistici inclusivi per Aurora MySQL versione 3

La versione iniziale di Aurora MySQL versione 3 è compatibile con la community MySQL 8.0.23. Aurora MySQL versione 3 include anche i cambiamenti da MySQL 8.0.26 relativi alle parole chiave e agli schemi di sistema per il linguaggio inclusivo. Ad esempio, il comando SHOW REPLICA STATUS è ora preferito invece di SHOW SLAVE STATUS.

Le seguenti metriche Amazon CloudWatch hanno nuovi nomi in Aurora MySQL versione 3.

In Aurora MySQL versione 3, sono disponibili solo i nuovi nomi delle metriche. Assicurati di aggiornare qualsiasi allarme o altra automazione basata sui nomi delle metriche quando esegui l'aggiornamento a Aurora MySQL versione 3.

Vecchio nome Nuovo nome
ForwardingMasterDMLLatency ForwardingWriterDMLLatency
ForwardingMasterOpenSessions ForwardingWriterOpenSessions
AuroraDMLRejectedMasterFull AuroraDMLRejectedWriterFull
ForwardingMasterDMLThroughput ForwardingWriterDMLThroughput

Le seguenti variabili di stato hanno nuovi nomi in Aurora MySQL versione 3.

Per compatibilità, è possibile utilizzare entrambi i nomi nella versione iniziale di Aurora MySQL versione 3. I nomi delle variabili di stato precedenti devono essere rimossi in una versione futura.

Nome da rimuovere Nome nuovo o preferito
Aurora_fwd_master_dml_stmt_duration Aurora_fwd_writer_dml_stmt_duration
Aurora_fwd_master_dml_stmt_count Aurora_fwd_writer_dml_stmt_count
Aurora_fwd_master_select_stmt_duration Aurora_fwd_writer_select_stmt_duration
Aurora_fwd_master_select_stmt_count Aurora_fwd_writer_select_stmt_count
Aurora_fwd_master_errors_session_timeout Aurora_fwd_writer_errors_session_timeout
Aurora_fwd_master_open_sessions Aurora_fwd_writer_open_sessions
Aurora_fwd_master_errors_session_limit Aurora_fwd_writer_errors_session_limit
Aurora_fwd_master_errors_rpc_timeout Aurora_fwd_writer_errors_rpc_timeout

I seguenti parametri di configurazione hanno nuovi nomi in Aurora MySQL versione 3.

Per la compatibilità, è possibile controllare i valori dei parametri nel client di mysql utilizzando entrambi i nomi nella versione iniziale di Aurora MySQL versione 3. Puoi utilizzare i nuovi nomi solo quando modifichi i valori in un gruppo di parametri personalizzati. I nomi dei parametri precedenti devono essere rimossi in una versione futura.

Nome da rimuovere Nome nuovo o preferito
aurora_fwd_master_idle_timeout aurora_fwd_writer_idle_timeout
aurora_fwd_master_max_connections_pct aurora_fwd_writer_max_connections_pct
master_verify_checksum source_verify_checksum
sync_master_info sync_source_info
init_slave init_replica
rpl_stop_slave_timeout rpl_stop_replica_timeout
log_slow_slave_statements log_slow_replica_statements
slave_max_allowed_packet replica_max_allowed_packet
slave_compressed_protocol replica_compressed_protocol
slave_exec_mode replica_exec_mode
slave_type_conversions replica_type_conversions
slave_sql_verify_checksum replica_sql_verify_checksum
slave_parallel_type replica_parallel_type
slave_preserve_commit_order replica_preserve_commit_order
log_slave_updates log_replica_updates
slave_allow_batching replica_allow_batching
slave_load_tmpdir replica_load_tmpdir
slave_net_timeout replica_net_timeout
sql_slave_skip_counter sql_replica_skip_counter
slave_skip_errors replica_skip_errors
slave_checkpoint_period replica_checkpoint_period
slave_checkpoint_group replica_checkpoint_group
slave_transaction_retries replica_transaction_retries
slave_parallel_workers replica_parallel_workers
slave_pending_jobs_size_max replica_pending_jobs_size_max
pseudo_slave_mode pseudo_replica_mode

Le seguenti stored procedure hanno nuovi nomi in Aurora MySQL versione 3.

Per compatibilità, è possibile utilizzare entrambi i nomi nella versione iniziale di Aurora MySQL versione 3. I nomi delle procedure precedenti devono essere rimossi in una versione futura.

Nome da rimuovere Nome nuovo o preferito
mysql.rds_set_master_auto_position mysql.rds_set_source_auto_position
mysql.rds_set_external_master mysql.rds_set_external_source
mysql.rds_set_external_master_with_auto_position mysql.rds_set_external_source_with_auto_position
mysql.rds_reset_external_master mysql.rds_reset_external_source
mysql.rds_next_master_log mysql.rds_next_source_log

Valori AUTO_INCREMENT

In Aurora MySQL versione 3, Aurora conserva il valore AUTO_INCREMENT per ogni tabella quando riavvia ogni istanza database. In Aurora MySQL versione 2, il valore AUTO_INCREMENT non è stato conservato dopo un riavvio.

Il valore AUTO_INCREMENT non viene mantenuto quando si configura un nuovo cluster ripristinando da uno snapshot, eseguendo un ripristino point-in-time (PITR) e clonando un cluster. In questi casi, il valore AUTO_INCREMENT viene inizializzato sul valore in base al valore di colonna più grande nella tabella al momento della creazione dello snapshot. Questo comportamento è diverso da quello in RDS per MySQL 8.0, dove il valore AUTO_INCREMENT viene mantenuto durante queste operazioni.

Replica dei log binari

Nell'edizione della community MySQL 8.0, la replica del log binario è attivata per impostazione predefinita. In Aurora MySQL versione 3, la replica del log binario è disattivata per impostazione predefinita.

Suggerimento

Se i requisiti di elevata disponibilità sono soddisfatti dalle funzionalità di replica incorporate di Aurora, è possibile lasciare disattivata la replica del log binario. In questo modo, è possibile evitare il sovraccarico delle prestazioni della replica del log binario. È inoltre possibile evitare il monitoraggio e la risoluzione dei problemi associati necessari per gestire la replica dei log binari.

Aurora supporta la replica dei log binari da una fonte compatibile con MySQL 5.7 a Aurora MySQL versione 3. Il sistema fonte può essere un cluster database Aurora MySQL, un'istanza database RDS for MySQL o un'istanza MySQL locale.

Come fa MySQL della community, Aurora MySQL supporta la replica da una fonte che esegue una versione specifica a una destinazione che esegue la stessa versione principale o una versione principale superiore. Ad esempio, la replica da un sistema compatibile con MySQL 5.6 ad Aurora MySQL versione 3 non è supportata. La replica da Aurora MySQL versione 3 a un sistema compatibile con MySQL 5.7 o compatibile con MySQL 5.6 non è supportata. Per i dettagli sull'utilizzo della replica dei log binari, consultare Replica tra Aurora e MySQL o tra Aurora e un altro cluster di database Aurora (replica dei log binari).

Aurora MySQL versione 3 include miglioramenti alla replica dei log binari nella community MySQL 8.0, come la replica filtrata. Per informazioni dettagliate sui miglioramenti di MySQL 8.0 della community, consultare Come i server valutano le regole di filtro delle repliche nel Manuale di riferimento MySQL.

Compressione delle transazioni per la replica dei registri binari

Per informazioni sull'utilizzo sulla compressione del log binario, vedere Compressione delle transazioni dei registri nel Manuale di riferimento di MySQL.

Le seguenti limitazioni si applicano alla compressione dei log binari in Aurora MySQL versione 3:

  • Le transazioni i cui dati di registro binario sono superiori alla dimensione massima consentita del pacchetto non vengono compresse. Ciò è vero a prescindere che l'impostazione di compressione del registro binario di Aurora MySQL sia attivata. Tali transazioni vengono replicate senza essere compresse.

  • Se si utilizza un connettore per l'acquisizione dati di modifica (CDC) che non supporta ancora MySQL 8.0, non è possibile utilizzare questa funzione. Ti consigliamo di testare accuratamente tutti i connettori di terze parti con la compressione del registro binario. Inoltre, ti consigliamo di eseguire questa operazione prima di attivare la compressione binlog su sistemi che utilizzano la replica del binlog per CDC.