Introduzione a Database di Azure per MySQL

Completato

Database di Azure per MySQL può essere distribuito come server flessibile (anteprima) per ospitare il database MySQL dell'organizzazione in Azure. Si tratta di un database distribuito come servizio completamente gestito in grado di gestire carichi di lavoro cruciali con prestazioni prevedibili e scalabilità dinamica.

In qualità di sviluppatore di database, con esperienza pluriennale nell'esecuzione e nella gestione delle installazioni di MySQL locali, si vuole esaminare il modo in cui Database di Azure per MySQL è in grado supportare e ridimensionare le funzionalità di queste installazioni.

In questa unità si esploreranno le opzioni relative ai prezzi, al supporto delle versioni, alla replica e alla scalabilità di Database di Azure per PostgreSQL.

Informazioni sui vantaggi di Database di Azure per MySQL

È stato effettuato il provisioning di Database di Azure per MySQL come server di Database di Azure per MySQL. Il server di Database di Azure per MySQL è equivalente a un server MySQL locale e fornisce un punto centrale per amministrare più database MySQL.

Per creare un database di Database di Azure per MySQL, è necessario innanzitutto effettuare il provisioning di un server di Database di Azure per MySQL. Un server di Database di Azure per MySQL è l'elemento padre di uno o più database e fornisce lo spazio dei nomi per i database. Se si elimina il server, verranno eliminati tutti i database in esso contenuti.

Che cosa offre il server di Database di Azure per MySQL?

Il servizio Database di Azure per MySQL include una disponibilità elevata senza costi aggiuntivi e ridimensionamento in base alle esigenze. Si paga solo per le risorse usate. Sono disponibili backup automatici con ripristino temporizzato.

Il server fornisce sicurezza della connessione per applicare regole del firewall e, facoltativamente, richiedere connessioni SSL. Molti parametri del server consentono di configurare le impostazioni del server, ad esempio le modalità di blocco, il numero massimo di connessioni e i timeout. Le modifiche apportate ai parametri contrassegnati come Dinamici diventano immediatamente effettive. Per i parametri statici è necessario riavviare il server. Per riavviare il server si usa il pulsante Riavvia nella pagina Panoramica del portale.

I server di Database di Azure per MySQL includono funzionalità di monitoraggio per aggiungere avvisi e per visualizzare metriche e log.

Piani tariffari

I piani tariffari offrono un'ampia gamma di prestazioni e capacità, da 1 a 64 vCore e da 5 GB a 4 TB di spazio di archiviazione. Il piano tariffario Basic è progettato per i carichi di lavoro di calcolo leggeri e supporta fino a due vCore con 2 GB di memoria per core. Il piano tariffario per utilizzo generico si adatta alla maggior parte dei carichi di lavoro aziendali e supporta da 2 a 64 vCore con 5 GB di memoria per core. Il piano tariffario ottimizzato per la memoria supporta da 2 a 32 vCore, dispone di 10 GB di memoria per vCore ed è destinato a carichi di lavoro con prestazioni elevate, inclusa l'analisi dei dati in tempo reale. Sebbene sia possibile passare dal piano tariffario per utilizzo generico a quello ottimizzato per la memoria e viceversa e cambiare il numero di vCore o lo spazio di archiviazione in pochi secondi, non è possibile passare dal o al piano tariffario Basic.

Image showing the pricing tiers in the Azure portal

Sono previsti limiti per le connessioni in base ai piani tariffari e al numero di vCore. Per altre informazioni, vedere Limiti di Database di Azure per MySQL.

Controllo delle versioni e aggiornamenti

Database di Azure per MySQL supporta la versione 5.6 (con correzione di bug release 5.6.42), 5.7 (con correzione di bug release 5.7.24) e 8.0 (con correzione di bug release 8.0.15).

Nota

Un gateway reindirizza le connessioni alle istanze del server. I client MySQL visualizzeranno la versione del gateway anziché la versione dell'istanza del server. Per visualizzare la versione dell'istanza del server, usare il comando SELECT VERSION();.

Le versioni di correzione di bug vengono applicate automaticamente, ma gli aggiornamenti della versione non sono supportati. Per eseguire l'aggiornamento da una versione a un'altra, è necessario eseguire un dump e un ripristino.

Scalabilità

Come indicato in precedenza, non è possibile passare al o dal piano tariffario Basic. Tuttavia, è possibile modificare il numero di vCore, la generazione dell'hardware, il volume di archiviazione e il periodo di conservazione dei backup. È anche possibile passare dal piano tariffario per utilizzo generico a quello ottimizzato per la memoria e viceversa.

Si noti che lo spazio di archiviazione viene solo aumentato, non diminuito, e può essere impostato per l'aumento automatico. Se è abilitato l'aumento automatico, lo spazio di archiviazione aumenta di 5 GB quando lo spazio di archiviazione disponibile è inferiore a 1 GB o al 10% del volume di archiviazione, se maggiore, per i server con meno di 100 GB di spazio di archiviazione. Per i server con più di 100 GB, lo spazio di archiviazione aumenta del 5% se lo spazio disponibile è inferiore al 5%.

Disponibilità elevata

Database di Azure per MySQL include un contratto di servizio con copertura finanziaria per la disponibilità del 99,99%. Se si verifica un errore hardware o una distribuzione del servizio, viene creato automaticamente un nuovo nodo e la risorsa di archiviazione viene collegata a questo nodo. Il failover verrà completato entro qualche decina di secondi.

Se un'istanza del server di Database di Azure per MySQL viene ridimensionata, si verifica un processo simile con la risorsa di archiviazione dati collegata alla nuova istanza. In caso di failover, di aumento o riduzione delle istanze o di interruzione nel traffico Internet tra il client e Azure, è possibile che si verifichi un errore di connettività temporaneo nel client. È importante avere una logica di ripetizione dei tentativi nelle applicazioni. In caso di failover, un gateway indirizzerà il traffico al nuovo nodo senza che sia necessaria alcuna configurazione nel client.

Per informazioni sulla gestione degli errori temporanei, vedere l'articolo relativo alla gestione degli errori temporanei per Database di Azure per MySQL.

Eseguire la replica dei dati in Database di Azure per MySQL

Replica dei dati in ingresso

Replica dei dati in ingresso usa la funzionalità di replica nativa di MySQL per replicare i dati da un server MySQL esterno a Database di Azure per MySQL. Questa opzione è utile se si vuole effettuare il provisioning di un ambiente ibrido con un'istanza di MySQL locale esistente e una replica basata su Azure. Questo scenario fornisce dati locali agli utenti in un sistema distribuito a livello globale. È anche possibile usare Replica dei dati in ingresso per replicare i dati da una macchina virtuale o da un servizio di database MySQL ospitato da un altro provider di servizi cloud.

Considerazioni per Replica dei dati in ingresso

Di seguito sono riportati alcuni fattori da considerare per Replica dei dati in ingresso:

  • Le versioni del server di origine e di replica devono essere uguali e non possono essere inferiori alla versione 5.6.
  • Il master e la replica devono usare il motore InnoDB.
  • Ogni tabella deve avere una chiave primaria.
  • Il server di Database di Azure per MySQL deve avere un piano tariffario per utilizzo generico o ottimizzato per la memoria.
  • È necessario disporre dei diritti per creare gli utenti e configurare la registrazione binaria sul server master.
  • Il database di sistema mysql non viene replicato. Gli account e le autorizzazioni non vengono replicati dal server master alla replica e devono essere creati manualmente.

Procedura per configurare Replica dei dati in ingresso

Per configurare Replica dei dati in ingresso è necessario eseguire una serie di passaggi:

  • Creare un server di Database di Azure per MySQL da usare come host per la replica e creare gli account utente e i privilegi necessari.
  • Configurare la replica nel server master.
  • Eseguire il dump e il ripristino del server master.
  • Usare le stored procedure di Replica dei dati in ingresso per configurare il server di destinazione.

Per altre informazioni, vedere Come configurare Replica dei dati in ingresso in Database di Azure per MySQL.

Repliche in lettura

Le repliche in lettura usano la tecnologia di replica MySQL nativa per creare istanze di replica asincrona dei server di Database di Azure per MySQL. I server di replica sono di sola lettura e possono esistere fino a cinque repliche per ogni master. Per ogni replica in lettura, il costo mensile viene fatturato in base ai vCore e allo spazio di archiviazione che usa.

Usi per le repliche di lettura

Server di report

Creando una replica di sola lettura del server master, tutti i carichi di lavoro di report, BI e analitici vengono indirizzati alla replica. In questo modo, il carico di lavoro viene rimosso dal server master e vengono ridotti i conflitti quando il server master esegue carichi di lavoro a elevata intensità di scrittura.

Avvicinamento dei dati agli utenti

È possibile creare repliche tra aree per avvicinare i dati agli utenti e migliorare le velocità di lettura. Le repliche tra aree possono trovarsi in un'area di replica universale o nell'area abbinata del server master. Le aree disponibili vengono elencate durante la creazione di un server di replica.

Image showing replica regions

Configurare le repliche in lettura

Per configurare una replica in lettura, usare il portale di Azure:

Image showing replication setting in the Azure portal

Specificare quindi il nome e l'area della replica:

Image showing replication in the Azure portal

Nota

Le repliche in lettura non sono disponibili nel piano tariffario Basic.

Per altre informazioni sulle repliche in lettura, vedere Repliche in lettura in Database di Azure per MySQL.

Gestione e monitoraggio

Database di Azure per MySQL offre un'ampia gamma di strumenti di monitoraggio che consentono di ottimizzare il server, ricevere notifiche relative agli eventi e rispondere in modo proattivo alle metriche. È anche possibile usare gli strumenti di amministrazione MySQL noti, ad esempio le versioni recenti di MySQL Workbench, PHPMyAdmin e Navicat, per gestire e monitorare i server di Database di Azure per MySQL:

Image showing the MySQL Workbench tool connected to Azure Database for MySQL

Strumenti di Azure per il monitoraggio di Database di Azure per MySQL

Gli strumenti disponibili nel portale di Azure per la gestione e il monitoraggio di Database di Azure per MySQL includono:

  • Metriche di Azure. Le metriche forniscono dati numerici ogni minuto e vengono archiviate per 30 giorni. È disponibile un'ampia gamma di metriche per monitorare il server ed è anche possibile configurare avvisi in risposta alle metriche.

    Image showing Azure metrics

    Per altre informazioni, vedere Piattaforma dati di Monitoraggio di Azure.

  • Log di controllo e del server. È possibile abilitare i log del server per monitorare le query lente e fornire la registrazione di controllo per il server. I log del server sono disponibili al di fuori di Database SQL per MySQL tramite i log di diagnostica di Azure.

    Image showing Azure server logs

    Per altre informazioni, vedere Log di query lente in Database di Azure per MySQL. I log di controllo sono una funzionalità di anteprima che fornisce la registrazione di controllo per tenere traccia dell'attività del database. Per attivare la registrazione di controllo, impostare il parametro audit_log_enabled su ON (Attivata). Per altre informazioni sui log di controllo, vedere Log di controllo in Database di Azure per MySQL.

  • Query Store. Viene usato per tenere traccia delle prestazioni del server nel tempo e fornire informazioni per la risoluzione dei problemi. Query Store conserva la cronologia delle query e le statistiche di runtime per consentire l'identificazione delle query con utilizzo intensivo delle risorse o con esecuzione prolungata. Per abilitare Query Store, impostare il parametro del server query_store_capture_mode su ALL: Image showing Query Store capture mode

    Per visualizzare i dati di Query Store relativi alle query, eseguire la query seguente:

    SELECT * FROM mysql.query_store;
    

    Per visualizzare i dati sulle statistiche di attesa, eseguire la query seguente:

    SELECT * FROM mysql.query_store_wait_stats;
    

    Nota

    Query Store è una funzionalità di anteprima e non è disponibile con il piano tariffario Basic.

    Per altre informazioni su Query Store, vedere Monitorare le prestazioni di Database di Azure per MySQL con Query Store.

  • Informazioni dettagliate prestazioni query. Informazioni dettagliate prestazioni query visualizza i dati di Query Store come visualizzazioni per consentire l'identificazione delle query che influiscono sulle prestazioni. Informazioni dettagliate prestazioni query si trova nella sezione Prestazioni intelligenti di Database di Azure per MySQL, nel portale di Azure.

    Nota

    Informazioni dettagliate prestazioni query è una funzionalità di anteprima e non è disponibile con il piano tariffario Basic.

    Per altre informazioni su Informazioni dettagliate prestazioni query, vedere Informazioni dettagliate prestazioni query in Database di Azure per MySQL.

  • Raccomandazioni per le prestazioni. Raccomandazioni per le prestazioni usa i dati di Query Store per analizzare i carichi di lavoro e li combina con le caratteristiche del database per suggerire nuovi indici per migliorare le prestazioni. Raccomandazioni per le prestazioni si trova nella sezione Prestazioni intelligenti di Database di Azure per MySQL, nel portale di Azure.

    Nota

    Raccomandazioni per le prestazioni è una funzionalità di anteprima e non è disponibile con il piano tariffario Basic.

    Per altre informazioni su Raccomandazioni per le prestazioni, vedere Raccomandazioni per le prestazioni in Database di Azure per MySQL.

Connettività client

Driver MySQL

Database di Azure per MySQL usa MySQL Community Edition, è compatibile con un'ampia gamma di driver e supporta diversi linguaggi di programmazione. Le stringhe di connessione sono riportate nel portale di Azure:

Image showing connection strings

Per altre informazioni sui driver MySQL, vedere Driver MySQL e strumenti di gestione compatibili con Database di Azure per MySQL

Configurare il firewall

Il modo più semplice per configurare il firewall consiste nell'usare le impostazioni Sicurezza connessione per il servizio nel portale di Azure. Aggiungere una regola per ogni intervallo di indirizzi IP dei client. Questa pagina viene usata anche per applicare le connessioni SSL al servizio.

Image showing the firewall configuration for Azure Database for PostgreSQL

Per aggiungere l'indirizzo IP del computer desktop, fare clic su Aggiungi IP client sulla barra degli strumenti.

Se si sono configurate repliche di sola lettura, è necessario aggiungere una regola del firewall a ciascuna di esse per renderle accessibili ai client.

Errori di connessione temporanei

Quando ci si connette a un database tramite Internet, gli errori di connessione temporanei sono inevitabili e devono essere gestiti dalle applicazioni client.

Per informazioni sugli errori di connessione temporanei, vedere l'articolo relativo alla gestione degli errori temporanei per Database di Azure per MySQL.

Funzionalità di MySQL non supportate in Database di Azure per MySQL

Anche se la maggior parte delle funzionalità di MySQL è disponibile in Database di Azure per MySQL, alcune di esse non sono supportate. È consigliabile esaminare queste funzionalità per assicurarsi di attenuare eventuali problemi potenziali durante la migrazione.

Motori di archiviazione

Database di Azure per MySQL supporta i motori di archiviazione InnoDB e MEMORY. InnoDB è il motore di archiviazione predefinito per MySQL, che offre un equilibrio tra prestazioni elevate e affidabilità elevata. Tutte le nuove tabelle in MySQL utilizzeranno il motore di archiviazione InnoDB, salvo diversa indicazione.

Per altre informazioni sul motore di archiviazione InnoDB, vedere Introduzione a InnoDB.

Per archiviare i dati in memoria, è disponibile il motore di archiviazione MEMORY. Questi dati sono a rischio in caso di eventuali arresti anomali o interruzioni: il motore di archiviazione MEMORY deve essere usato solo come archivio temporaneo con prestazioni elevate.

Per altre informazioni a questo proposito, vedere l'argomento relativo al motore di archiviazione MEMORY.

I motori di archiviazione MyISAM, BLACKHOLE, ARCHIVE e FEDERATED non sono supportati in Database di Azure per MySQL. I dati di MyISAM devono essere convertiti nel motore di archiviazione InnoDB. I motori di archiviazione BLACKHOLE, ARCHIVE e FEDERATED hanno ruoli specializzati e non vengono usati come archivi dati tipici.

Privilegi e ruoli

Il ruolo DBA non è esposto perché molti parametri e impostazioni del server possono interrompere le regole di transazione e ridurre le prestazioni. Per motivi analoghi, il privilegio SUPER è limitato, così come la clausola DEFINER che usa il privilegio SUPER.

Ripristino

Due funzionalità di ripristino funzionano in modo diverso in Database di Azure per MySQL:

  • Il ripristino temporizzato consente di creare un nuovo server con una configurazione identica a quello su cui si basa.
  • Non è possibile ripristinare un server eliminato.