Mysql
 sql >> база данни >  >> RDS >> Mysql

Най-доброто DBaaS решение за MySQL

Като най-популярната база данни с отворен код, MySQL е внедрен на много места, от малки стартиращи фирми до много големи организации. Случаите на употреба варират от прости приложения за уебсайтове до критични за мисия среди с изисквания за 99,999% време за работа. MySQL просто върши работата и е лесен за работа.

Въпреки че MySQL е сравнително лесен за управление, той не работи самостоятелно. Има определени режийни разходи за управление - софтуерът трябва да се коригира от време на време, базата данни трябва да се следи за повреди или аномалии в производителността или сигурността, неуспехите трябва да се обработват и възстановяват, архивите трябва да се управляват... и списъкът продължава.. Така че не би трябвало да е изненада, че най-големите доставчици на облак предлагат публични DBaaS услуги, базирани на MySQL.

Три облачни доставчици, които предлагат MySQL като услуга, включват:

  • Уеб услуга на Amazon с RDS за MySQL
  • Google Compute Engine с CloudSQL за MySQL
  • Microsoft Azure, Microsoft Azure MySQL

В този блог ще сравним решенията от тези облачни доставчици.

Версия и корекции на MySQL

Последната версия на MySQL, която е налична в Amazon Web Services (AWS), е MySQL 8.0.20, която е доста близка до последната версия на официалния Oracle MySQL (8.0.21 към момента на писане). Освен най-новата версия, AWS RDS предоставя и по-старата версия на MySQL (основна версия 5.5, 5.6 и 5.7), така че можете да внедрите точната версия, която е съвместима с вашето приложение.

В Google Cloud Platform (GCP) версията на MySQL, която се поддържа в CloudSQL за MySQL, все още е MySQL 5.6 и 5.7, последната второстепенна версия на версия 5.6 е 5.6.42, докато за версия 5.7, най-новата второстепенната версия е 5.7.25.

База данни Azure за MySQL поддържа версии 5.6, 5.7, 8.0, за съжаление те не предоставят второстепенната версия (или версията за корекция на грешки на базата данни, както я нарича Azure) при внедряване от конзолата. За да определите версията на вашия MySQL сървърен екземпляр, можете да използвате SELECT VERSION(); команда в подканата на MySQL.

Известни проблеми и ограничения

Има някои известни проблеми и ограничения, които съществуват в базата данни като услуга, докато това не се случва в MySQL на място или във VM. При RDS някои от ограниченията са:

  • Плъгина за ключодържател MySQL не се поддържа.
  • Максималният размер на лимита за съхранение за таблица е 16TB, когато използвате механизма за съхранение на InnoDB.
  • Има някои параметри, които изискват специални съображения при използване на RDS, например:long_query_time, small_case_table_name.

Има някои ограничения и проблеми, известни в CloudSQL за MySQL, разделени в различни категории, например:проблеми с издръжливостта и наличността на данните, проблеми с връзката на екземпляра, административни проблеми и проблеми с експортирането и импортирането на данни. Всяка категория има специфични проблеми и ограничения, някои от тях са: 

  • Дългосрочните операции не могат да бъдат отменени или спрени.
  • Имената на екземпляри не могат да се използват веднага след като изтрием екземпляра.
  • Клаузата DEFINER ще доведе до неуспешно импортиране.

Базата данни на Azure за MySQL има някои ограничения и известни проблеми, свързани с надстройката, привилегиите и механизма за съхранение. Някои от подробностите са:

  • Понастоящем не се поддържа голямо надграждане на базата данни. Трябва да направите дъмп и да възстановите на нов сървър за сериозна надстройка.
  • База данни Azure за MySQL понастоящем поддържа InnoDB и Memory машини за съхранение.
  • Системната база данни в azure база данни за MySQL е настроена само за четене. Не можете да промените нищо в системната база данни на mysql.

Трябва да проверите ограниченията и известните проблеми за MySQL при всеки доставчик на облак и да сравните с вашите изисквания, за да разберете дали това се отразява на приложението.

Архивиране и възстановяване

Amazon RDS за MySQL изпълнява автоматичното архивиране според графика, прави моментна снимка на обема на екземпляра на базата данни. Периодът на запазване на резервното копие по подразбиране е 7 дни. Не само това, RDS качва вашите регистрационни файлове за транзакции за екземпляри на база данни в S3 на всеки 5 минути, за да запази възстановяването на точката във времето.

Можете да възстановите резервно копие до определен момент от време, като създадете нов екземпляр в рамките на периода на запазване на архива. Можете да изберете най-новото време за възстановяване, за да възстановите до най-новото възможно време, или можете да изберете персонализирано, за да дефинирате конкретно време за възстановяване на данните.

Архивирането, което се извършва в CloudSQL за MySQL, е нарастващо. Той съдържа само промените в данните след предишно архивиране. Най-старото архивиране е подобно на текущия ви размер на базата данни. Когато най-старото архивно копие бъде премахнато, размерът на следното най-старо архивно копие се увеличава, така че пълният архив все още съществува.

Автоматично архивиране се извършва всеки ден и се запазва за 7 дни по подразбиране. CloudSQL съхранява архивни данни в 2 региона за резервиране. Единият регион може да бъде в същия, в който се изпълнява екземплярът, а другият е в различен регион.

Възстановяването във времето в CloudSQL ще създаде нов екземпляр, настройката на екземпляра ще се наследи с източника на екземпляра. Преди да извършите възстановяване на точката във времето, моля, уверете се, че вече сте активирали двоичен журнал. Когато извършвате възстановяване в даден момент, просто трябва да попълните името на двоичния регистър и позицията за възстановяване.

База данни Azure за MySQL взема архивиране на файлове с данни и регистрационни файлове за транзакции. Самият график на архивиране е комбинация от пълно и диференциално архивиране за сървъри с размер на съхранение до 4TB, докато архивирането на моментни снимки се случва за сървър за съхранение до 16TB.

Пълното архивиране се изпълнява веднъж седмично, докато диференциалното архивиране се извършва два пъти на ден. Периодът на запазване по подразбиране на архива е 7 дни, но винаги можете да конфигурирате запазването до 35 дни.

Има два типа възстановяване в базата данни Azure за MySQL, което е:

  • Възстановяване в момента, достъпно като резервна опция за резервно копие, или можете да създадете нов сървър в същия регион като оригиналния сървър, като използвате пълния архивен архив и регистър на транзакциите за възстановяване на данните.
  • Възстановяване на географско местоположение, достъпно, ако конфигурирате резервно географско местоположение в опцията за съхранение. Това ще ви позволи да възстановите архива си в различни региони.

Моля, имайте предвид, че нито AWS, нито Google, нито Azure ви позволяват да изтегляте вашите архивни копия.

Наблюдение на базата данни

RDS осигурява интеграция на мониторинг с CloudWatch, можете да видите някои от показателите като използване на процесора, DB връзки, запис на IOPS и четене на IOPS, пропускателна способност на запис и пропускателна способност за четене, забавяне на запис и четене. Можете да създадете аларма, за да задействате сигнала от CloudWatch, въз основа на някои категории показатели и просто да дефинирате прага.

Подобно на RDS, GCP CloudSQL също се интегрира със stackdriver, можете да видите показатели като:използване на процесора, използване на паметта, активни връзки, транзакции/сек, входящи/изходни байтове, операции за запис и четене, забавяне на репликацията .

База данни Azure за MySQL предоставя някои показатели, напр. Активни връзки, процент на процесора, неуспешна връзка, процент на IO, процент на паметта, забавяне на репликацията, процент на съхранение, използвано хранилище. Можете също така да създавате сигнали в бази данни Azure за MySQL, да избирате показателите и да дефинирате правилата.

Заключение

Въз основа на 4 ключови области; Версия и корекции на MySQL, известни проблеми и ограничения, архивиране и възстановяване, мониторинг на база данни, според мен Amazon RDS за MySQL все още е най-добрата база данни като услуга за MySQL. Той предоставя подробни версии и пачове, много ограничени проблеми и ограничения в сравнение с други. Това е удобен начин за стартиране на MySQL, с уговорката, че цената на услугата се е повишила през последните години.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете GraphQL API без сървър за MySQL, Postgres и Aurora

  2. Как правилно да напишете UTF-8 низове в MySQL чрез JDBC интерфейс

  3. Предупреждение:mysql_query():3 не е валиден ресурс на MySQL-Link

  4. по-добър подход от съхраняването на mysql парола в обикновен текст в конфигурационния файл?

  5. Как да конвертирате часовата зона в MySQL