Mysql
 sql >> Database >  >> RDS >> Mysql

La migliore soluzione DBaaS per MySQL

Come database open source più popolare, MySQL è stato implementato in molti luoghi, dalle piccole startup alle organizzazioni molto grandi. I casi d'uso variano da semplici applicazioni per siti Web ad ambienti mission-critical con requisiti di uptime del 99,999%. MySQL fa semplicemente il suo lavoro ed è facile da usare.

Sebbene MySQL sia relativamente facile da gestire, non funziona da solo. C'è un certo sovraccarico di gestione:il software deve essere aggiornato di tanto in tanto, il database deve essere monitorato per guasti o anomalie nelle prestazioni o nella sicurezza, i guasti devono essere gestiti e ripristinati, i backup devono essere gestiti... e il l'elenco potrebbe continuare... Quindi non dovrebbe sorprendere che i più grandi fornitori di cloud offrano servizi DBaaS pubblici basati su MySQL.

Tre provider cloud che offrono MySQL come servizio includono:

  • Servizio Web Amazon con RDS per MySQL
  • Google Compute Engine con CloudSQL per MySQL
  • Microsoft Azure, Microsoft Azure MySQL

In questo blog confronteremo le soluzioni di questi fornitori di servizi cloud.

Versione e patch di MySQL

L'ultima versione di MySQL disponibile in Amazon Web Services (AWS) è MySQL 8.0.20, che è abbastanza simile all'ultima versione di Oracle MySQL ufficiale ( 8.0.21 al momento di scrivere). Oltre all'ultima versione, AWS RDS fornisce anche la versione precedente di MySQL (versione principale 5.5, 5.6 e 5.7), così puoi distribuire la versione esatta compatibile con la tua applicazione.

In Google Cloud Platform (GCP), la versione di MySQL supportata in CloudSQL per MySQL è ancora MySQL 5.6 e 5.7, l'ultima versione minore della versione 5.6 è 5.6.42 mentre per la versione 5.7, l'ultima la versione minore è 5.7.25.

Il database di Azure per MySQL supporta le versioni 5.6, 5.7, 8.0, sfortunatamente non forniscono la versione secondaria (o la versione di correzione dei bug del database, come lo chiama Azure) durante la distribuzione dalla console. Per determinare la versione della tua istanza del server MySQL, puoi usare SELECT VERSION(); comando al prompt di MySQL.

Problemi noti e limitazioni

Ci sono alcuni problemi noti e restrizioni che esistono sul database come servizio mentre non si verifica in MySQL on premise o VM. Su RDS, alcune delle limitazioni sono:

  • Il plug-in del keyring MySQL non è supportato.
  • La dimensione massima del limite di archiviazione per una tabella è 16 TB quando si utilizza il motore di archiviazione InnoDB.
  • Ci sono alcuni parametri che richiedono considerazioni speciali quando si utilizza RDS, ad esempio:long_query_time, lower_case_table_name.

Ci sono alcune limitazioni e problemi noti in CloudSQL per MySQL, suddivisi in diverse categorie, ad esempio:problemi di durabilità e disponibilità dei dati, problemi di connessione delle istanze, problemi amministrativi e problemi con l'esportazione e l'importazione dei dati. Ogni categoria presenta problemi e limitazioni specifici, alcuni di essi sono: 

  • Le operazioni di lunga durata non possono essere annullate o interrotte.
  • I nomi di istanza non possono essere utilizzati subito dopo aver eliminato l'istanza.
  • La clausola DEFINER causerà il fallimento dell'importazione.

Il database di Azure per MySQL presenta alcune limitazioni e problemi noti relativi all'aggiornamento, ai privilegi e al motore di archiviazione. Alcuni dei dettagli sono:

  • L'aggiornamento principale del database non è attualmente supportato. È necessario eseguire un dump e ripristinare in un nuovo server per un aggiornamento importante.
  • Il database di Azure per MySQL attualmente supporta InnoDB e i motori di archiviazione della memoria.
  • Il database di sistema nel database di Azure per MySQL è impostato su sola lettura. Non puoi modificare nulla nel database di sistema mysql.

È necessario verificare le limitazioni e i problemi noti di MySQL su ciascun provider di servizi cloud e confrontarli con i propri requisiti per capire se ciò influisce sull'applicazione.

Backup e ripristino

Amazon RDS per MySQL esegue il backup automatico secondo la pianificazione, acquisisce uno snapshot del volume dell'istanza del database. L'impostazione predefinita del periodo di conservazione del backup è di 7 giorni. Non solo, RDS carica i registri delle transazioni per le istanze di database su S3 ogni 5 minuti per mantenere il ripristino del momento.

Puoi ripristinare un backup in un momento specifico creando una nuova istanza entro il periodo di conservazione del backup. Puoi scegliere l'ora di ripristino più recente per ripristinare l'ora più recente possibile, oppure puoi scegliere un'impostazione personalizzata per definire un'ora specifica per il ripristino dei dati.

Il backup che si verifica in CloudSQL per MySQL è incrementale. Contiene solo le modifiche dei dati dopo il backup precedente. Il backup più vecchio è simile alla dimensione del database corrente. Quando il backup più vecchio viene rimosso, la dimensione del backup più vecchio successivo aumenta, in modo che il backup completo esista ancora.

Il backup automatico viene eseguito ogni giorno e viene mantenuto per 7 giorni per impostazione predefinita. CloudSQL archivia i dati di backup in 2 regioni per la ridondanza. Un'area geografica può trovarsi nella stessa area in cui l'istanza è in esecuzione e l'altra in un'area diversa.

Il ripristino temporizzato in CloudSQL creerà una nuova istanza, l'impostazione dell'istanza erediterà l'origine dell'istanza. Prima di eseguire il ripristino temporizzato, assicurati di aver già abilitato la registrazione binaria. Quando esegui il ripristino temporizzato, devi solo inserire il nome del registro binario e la posizione di ripristino.

Il database di Azure per MySQL esegue il backup dei file di dati e i registri delle transazioni. La pianificazione del backup stesso è una combinazione di backup completo e differenziale per server con dimensioni di archiviazione fino a 4 TB, mentre il backup di snapshot viene eseguito per server di archiviazione fino a 16 TB max.

Il backup completo viene eseguito una volta alla settimana, mentre i backup differenziali vengono eseguiti due volte al giorno. Il periodo di conservazione predefinito del backup è di 7 giorni, ma puoi sempre configurare la conservazione fino a 35 giorni.

Esistono due tipi di ripristino nel database di Azure per MySQL, ovvero:

  • Ripristino point-in-time, disponibile come opzione di backup di ridondanza, oppure puoi creare un nuovo server nella stessa regione del server originale, utilizzando il backup completo e il registro delle transazioni per ripristinare i dati.
  • Ripristino geografico, disponibile se si configura una ridondanza geografica nell'opzione di archiviazione. Ti consentirà di ripristinare il backup in diverse regioni.

Tieni presente che né AWS, né Google né Azure ti consentono di scaricare i tuoi backup.

Monitoraggio database

RDS fornisce l'integrazione del monitoraggio con CloudWatch, puoi vedere alcuni parametri come Utilizzo CPU, Connessioni DB, scrittura IOPS e lettura IOPS, scrittura throughput e lettura throughput, scrittura e lettura latenza. Puoi creare un allarme per attivare l'avviso da CloudWatch, in base ad alcune categorie di parametri e definire semplicemente la soglia.

Simile a RDS, GCP CloudSQL si integra anche con stackdriver, puoi visualizzare parametri come:utilizzo della CPU, utilizzo della memoria, connessioni attive, transazioni/sec, byte in ingresso/uscita, operazioni di scrittura e lettura, ritardo di replica .

Il database di Azure per MySQL fornisce alcune metriche, ad es. Connessioni attive, percentuale CPU, connessione non riuscita, percentuale IO, percentuale di memoria, ritardo di replica, percentuale di archiviazione, archiviazione utilizzata. Puoi anche creare avvisi nei database di Azure per MySQL, scegliere le metriche e definire le regole.

Conclusione

Basato su 4 aree chiave; Versione e patch di MySQL, problemi noti e limitazioni, backup e ripristino, monitoraggio del database, secondo me Amazon RDS per MySQL è ancora il miglior database come servizio per MySQL. Fornisce versioni e patch dettagliate, problemi e limitazioni molto limitati rispetto ad altri. È un modo conveniente per eseguire MySQL, con l'avvertenza che il prezzo del servizio è aumentato negli ultimi anni.