Disponibilità elevata in Database di Azure per MariaDB

Importante

Database di Azure per MariaDB è sul percorso di ritiro. È consigliabile eseguire la migrazione a Database di Azure per MySQL. Per altre informazioni sulla migrazione a Database di Azure per MySQL, vedere What's happening to Database di Azure per MariaDB?.

Il servizio Database di Azure per MariaDB è adatto per l'esecuzione di database cruciali che richiedono tempi di attività elevati. Offre disponibilità elevata durante:

  • Eventi pianificati, ad esempio operazioni di calcolo di scalabilità avviate dall'utente.
  • Eventi non pianificati, ad esempio hardware, software o errori di rete sottostanti.

Database di Azure per MariaDB fornisce un contratto di servizio supportato finanziariamente per il tempo di attività. Poiché il servizio è basato sull'architettura di Azure, è possibile sfruttare le funzionalità per la disponibilità elevata, la ridondanza e la resilienza senza configurare componenti aggiuntivi.

Componenti in Database di Azure per MariaDB

Componente Descrizione
Server di database MariaDB Database di Azure per MariaDB offre sicurezza, isolamento, misure di sicurezza delle risorse e funzionalità di riavvio rapido per i server di database. Queste funzionalità facilitano operazioni come il ridimensionamento e il ripristino del server di database (in secondi) dopo un'interruzione.
Le modifiche ai dati nel server di database si verificano in genere nel contesto di una transazione di database. Tutte le modifiche al database vengono registrate in modo sincrono sotto forma di log write-ahead (file ib_log) in Archiviazione di Azure, collegati al server di database. Durante il processo di checkpoint del database, anche le pagine di dati della memoria del server di database vengono scaricate nella risorsa di archiviazione.
Archiviazione remota Tutti i file di dati fisici e i file di log di MariaDB vengono archiviati in Archiviazione di Azure, che archivia tre copie di dati all'interno di un'area per garantire ridondanza dei dati, disponibilità e affidabilità. Il livello di archiviazione è indipendente dal server di database. Può essere scollegato da un server di database non riuscito e ricollegato a un nuovo server di database in pochi secondi.
Archiviazione di Azure monitora continuamente eventuali errori di archiviazione. Se rileva un danneggiamento del blocco, risolve automaticamente il problema creando un'istanza di una nuova copia di archiviazione.
Gateway Il gateway funge da proxy di database instradando tutte le connessioni client al server di database.

Mitigazione dei tempi di inattività pianificati

L'architettura di Database di Azure per MariaDB offre disponibilità elevata durante le operazioni di inattività pianificate.

Diagram of elastic scaling in Azure Database for MariaDB.

Ecco alcuni scenari per la manutenzione pianificata:

Scenario Descrizione
Aumentare o ridurre le prestazioni di calcolo Quando si esegue un'operazione di aumento o riduzione delle prestazioni di calcolo, Database di Azure per MariaDB effettua il provisioning di un nuovo server di database usando la configurazione di calcolo con scalabilità orizzontale. Nel server di database precedente, il servizio consente il completamento dei checkpoint attivi, svuota le connessioni client e annulla tutte le transazioni di cui non è stato eseguito il commit. Il servizio arresta quindi il server di database precedente. Scollega la risorsa di archiviazione dal server di database precedente e collega la risorsa di archiviazione al nuovo server di database. Quando l'applicazione client ritenta la connessione o tenta di stabilire una nuova connessione, il gateway indirizza la richiesta di connessione al nuovo server di database.
Aumento dell'archiviazione La scalabilità verticale dell'archiviazione è un'operazione online e non interrompe il server di database.
Nuova distribuzione software (Azure) Le implementazioni di nuove funzionalità o correzioni di bug vengono eseguite automaticamente come parte della manutenzione pianificata del servizio. Per altre informazioni, vedere la documentazione e controllare il portale.
Aggiornamenti delle versioni secondarie Database di Azure per MariaDB applica automaticamente patch ai server di database alla versione secondaria determinata da Azure. L'applicazione automatica delle patch avviene come parte della manutenzione pianificata del servizio. Si verifica un breve tempo di inattività in termini di secondi e il server di database viene riavviato automaticamente con la nuova versione secondaria. Per altre informazioni, vedere la documentazione e controllare il portale.

Mitigazione dei tempi di inattività non pianificati

I tempi di inattività non pianificati possono verificarsi a causa di errori imprevisti, inclusi errori hardware sottostanti, problemi di rete e bug software. Se il server di database si arresta in modo imprevisto, viene effettuato automaticamente il provisioning di un nuovo server di database in pochi secondi. L'archiviazione remota viene collegata automaticamente al nuovo server di database.

Il motore MariaDB esegue l'operazione di ripristino usando i file di log e di database write-ahead e apre il server di database per consentire ai client di connettersi. Le transazioni di cui non è stato eseguito il commit vengono perse e l'applicazione deve riprovare.

Anche se non è possibile evitare tempi di inattività non pianificati, Database di Azure per MariaDB lo riduce eseguendo automaticamente operazioni di ripristino sia nel server di database che nei livelli di archiviazione senza richiedere l'intervento umano.

Diagram of high availability in Azure Database for MariaDB.

Tempo di inattività non pianificato: scenari di errore e ripristino del servizio

Di seguito sono riportati due scenari di errore e il modo in cui Database di Azure per MariaDB viene ripristinato automaticamente:

Scenario Ripristino automatico
Errore del server di database Se il server di database è inattivo a causa di un errore hardware sottostante, Database di Azure per MariaDB elimina le connessioni attive e annulla eventuali transazioni in corso. Il servizio distribuisce automaticamente un nuovo server di database e collega l'archiviazione dati remota al nuovo server di database. Al termine del ripristino del database, i client possono connettersi al nuovo server di database tramite il gateway.
Le applicazioni che usano i database MariaDB devono essere compilate in modo da rilevare e ripetere le connessioni eliminate e le transazioni non riuscite. Quando l'applicazione ritenta una connessione, il gateway reindirizza in modo trasparente la connessione al server di database appena creato.
Errore di archiviazione Archiviazione problemi correlati, ad esempio un errore del disco o un danneggiamento del blocco fisico, non influiscono sulle applicazioni. Poiché i dati vengono archiviati in tre copie, la risorsa di archiviazione sopravvissuta serve la copia dei dati. Database di Azure per MariaDB corregge automaticamente i danneggiamenti dei blocchi. Se una copia dei dati viene persa, il servizio crea automaticamente una nuova copia dei dati.

Ecco gli scenari di errore che richiedono l'azione dell'utente per il ripristino:

Scenario Piano di ripristino
Errore dell'area L'errore di un'area è un evento raro. Tuttavia, se è necessaria la protezione da un errore dell'area, è possibile configurare una o più repliche in lettura in altre aree per il ripristino di emergenza. Per informazioni dettagliate, vedere questo articolo sulla creazione e la gestione delle repliche in lettura. Se si verifica un errore a livello di area, è possibile alzare di livello manualmente una replica di lettura configurata in un'altra area in modo che sia il server di database di produzione.
Errore logico/utente Il ripristino da errori utente, ad esempio tabelle eliminate accidentalmente o dati aggiornati in modo non corretto, comporta l'esecuzione di un ripristino temporizzato. Questa azione ripristina e recupera i dati fino al momento precedente all'errore.
Se si desidera ripristinare solo un subset di database o tabelle specifiche anziché tutti i database nel server di database, è possibile ripristinare il server di database in una nuova istanza, esportare le tabelle tramite mysqldump e quindi ripristinare tali tabelle nel database.

Riepilogo

Database di Azure per MariaDB offre funzionalità di disponibilità elevata intrinseche per proteggere i database da interruzioni comuni. Offre funzionalità di riavvio rapido dei server di database, dell'archiviazione ridondante e del routing efficiente dal gateway. Per una protezione aggiuntiva dei dati, è possibile configurare i backup per la replica geografica e distribuire repliche in lettura in altre aree.

Passaggi successivi