sql >> Databáze >  >> RDS >> Mysql

Nejlepší řešení DBaaS pro MySQL

Jako nejoblíbenější open source databáze byla MySQL implementována na mnoha místech, od malých začínajících až po velmi velké organizace. Případy použití se liší od jednoduchých webových aplikací až po kritická prostředí s požadavky na 99,999% dostupnost. MySQL prostě udělá svou práci a je snadné s ní pracovat.

Přestože se MySQL spravuje relativně snadno, neběží samo o sobě. Existuje určitá režie správy - software je třeba každou chvíli opravovat, databázi je třeba monitorovat, zda nedochází k selhání nebo anomáliím ve výkonu nebo zabezpečení, je třeba řešit poruchy a obnovovat je, spravovat zálohy... a seznam pokračuje... Nemělo by tedy být žádným překvapením, že největší cloudoví dodavatelé nabízejí veřejné služby DBaaS založené na MySQL.

Tři poskytovatelé cloudu, kteří nabízejí MySQL jako službu, zahrnují:

  • Amazon Web Service s RDS pro MySQL
  • Google Compute Engine s CloudSQL pro MySQL
  • Microsoft Azure, Microsoft Azure MySQL

V tomto blogu porovnáme řešení od těchto cloudových poskytovatelů.

Verze a opravy MySQL

Nejnovější verze MySQL, která je k dispozici v Amazon Web Services (AWS), je MySQL 8.0.20, která je poměrně blízko nejnovější verzi oficiálního Oracle MySQL (8.0.21 v době psaní). Kromě nejnovější verze poskytuje AWS RDS také starší verzi MySQL (hlavní verze 5.5, 5.6 a 5.7), takže můžete nasadit přesnou verzi, která je kompatibilní s vaší aplikací.

Ve službě Google Cloud Platform (GCP) je verze MySQL podporovaná v CloudSQL pro MySQL stále MySQL 5.6 a 5.7, nejnovější vedlejší verze verze 5.6 je 5.6.42, zatímco verze 5.7 je nejnovější vedlejší verze je 5.7.25.

Azure databáze pro MySQL podporuje verze 5.6, 5.7, 8.0, bohužel neposkytují vedlejší verzi (nebo verzi opravy chyb databáze, jak ji Azure nazývá) při nasazení z konzole. K určení verze instance vašeho serveru MySQL lze použít SELECT VERSION(); příkaz na příkazovém řádku MySQL.

Známé problémy a omezení

Existují některé známé problémy a omezení, která existují v databázi jako službě, zatímco v MySQL on premise nebo na virtuálních počítačích k tomu nedochází. U RDS jsou některá omezení:

  • Zásuvný modul klíčenky MySQL není podporován.
  • Maximální limit úložiště pro stůl je 16 TB při použití úložiště InnoDB.
  • Existují některé parametry, které vyžadují zvláštní pozornost při používání RDS, např.:long_query_time, lower_case_table_name.

V CloudSQL pro MySQL jsou známá určitá omezení a problémy, rozdělené do různých kategorií, například:problémy s trvanlivostí a dostupností dat, problémy s připojením k instancím, problémy se správou a problémy s exportem a importem dat. Každá kategorie má specifické problémy a omezení, některá z nich jsou: 

  • Dlouho běžící operace nelze zrušit ani zastavit.
  • Názvy instancí nelze použít ihned poté, co instanci smažeme.
  • Klauzule DEFINER způsobí selhání importu.

Databáze Azure pro MySQL má určitá omezení a známé problémy týkající se upgradu, oprávnění a úložiště. Některé podrobnosti jsou:

  • Velký upgrade databáze není v současné době podporován. Chcete-li provést zásadní upgrade, musíte provést výpis a obnovit na nový server.
  • Databáze Azure pro MySQL aktuálně podporuje InnoDB a paměťové moduly.
  • Systémová databáze v databázi Azure pro MySQL je nastavena pouze pro čtení. V systémové databázi mysql nemůžete nic změnit.

Musíte zkontrolovat omezení a známé problémy pro MySQL u každého poskytovatele cloudu a porovnat se svými požadavky, abyste pochopili, zda to ovlivňuje aplikaci.

Zálohování a obnovení

Amazon RDS pro MySQL spouští automatické zálohování podle plánu, pořizuje snímek svazku instance databáze. Výchozí doba uchování zálohy je 7 dní. A nejen to, RDS nahrává vaše transakční protokoly pro instance databáze do S3 každých 5 minut, aby se zachovala okamžitá obnova.

Zálohu můžete obnovit do určitého okamžiku vytvořením nové instance během doby uchování zálohy. Můžete si vybrat poslední obnovitelný čas pro obnovení na nejnovější možný čas, nebo si můžete vybrat vlastní a definovat konkrétní čas pro obnovu dat.

Zálohování, ke kterému dochází v CloudSQL pro MySQL, je přírůstkové. Obsahuje pouze změny dat po předchozím zálohování. Nejstarší záloha je podobná velikosti vaší aktuální databáze. Po odstranění nejstarší zálohy se velikost následující nejstarší zálohy zvětší, takže plná záloha stále existuje.

Automatické zálohování probíhá každý den a ve výchozím nastavení je uchováváno 7 dní. CloudSQL ukládá zálohovaná data ve 2 oblastech pro redundanci. Jedna oblast může být ve stejné oblasti, ve které běží instance, a druhá je v jiné oblasti.

Obnova bodu v čase v CloudSQL vytvoří novou instanci, nastavení instance zdědí se zdrojem instance. Před obnovením bodu v čase se ujistěte, že jste již povolili binární protokolování. Když provádíte obnovu v určitém okamžiku, stačí vyplnit název binárního protokolu a pozici obnovy.

Databáze Azure pro MySQL využívá zálohování datových souborů a protokoly transakcí. Samotný plán zálohování je kombinací plného a rozdílového zálohování pro servery s velikostí úložiště až 4 TB, zatímco zálohování snímků probíhá pro server s úložištěm o maximální velikosti 16 TB.

Úplná záloha se spouští jednou týdně, zatímco rozdílové zálohy se provádějí dvakrát denně. Výchozí doba uchování zálohy je 7 dní, ale uchování můžete vždy nakonfigurovat až na 35 dní.

V databázi Azure pro MySQL existují dva typy obnovení, což je:

  • Obnovení v určitém okamžiku, dostupné jako možnost redundantní zálohy, nebo můžete vytvořit nový server ve stejné oblasti jako váš původní server s využitím úplné zálohy a protokolu transakcí pro obnovu dat.
  • Geo-restore, dostupné, pokud v možnosti úložiště nakonfigurujete geo-redundantní. Umožní vám to obnovit zálohu do různých oblastí.

Upozorňujeme, že ani AWS, Google ani Azure vám neumožňují stahovat zálohy.

Monitorování databáze

RDS poskytuje monitorování integrace s CloudWatch, můžete vidět některé metriky, jako je využití CPU, DB připojení, zápis IOPS a čtení IOPS, propustnost zápisu a propustnost čtení, latence zápisu a čtení. Můžete vytvořit alarm, který spustí výstrahu z CloudWatch, na základě některé kategorie metrik a stačí definovat práh.

Podobně jako RDS se GCP CloudSQL také integruje se stackdriverem, můžete vidět metriky jako:využití CPU, využití paměti, aktivní připojení, transakce/s, vstupní/výstupní bajty, operace zápisu a čtení, zpoždění replikace .

Databáze Azure pro MySQL poskytuje některé metriky, např.; Aktivní připojení, procento CPU, selhání připojení, procento IO, procento paměti, zpoždění replikace, procento úložiště, využité úložiště. Můžete také vytvářet výstrahy v databázích Azure pro MySQL, vybírat metriky a definovat pravidla.

Závěr

Na základě 4 klíčových oblastí; Verze a opravy MySQL, Známé problémy a omezení, Zálohování a obnovení, Monitorování databáze, podle mého názoru je Amazon RDS pro MySQL stále nejlepší databází jako služba pro MySQL. Poskytuje podrobné verze a opravy, velmi omezené problémy a omezení ve srovnání s ostatními. Je to pohodlný způsob provozování MySQL, s výhradou, že cena za službu v posledních letech vzrostla.


  1. Oracle – Jak vytvořit materializovaný pohled pomocí FAST REFRESH a JOINS

  2. Jak získat první a poslední záznam z dotazu SQL?

  3. Mysql pro výběr měsíčního záznamu, i když data neexistují

  4. Vytvoření indexu na proměnné tabulky