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

Как да управлявате MariaDB 10.3 с ClusterControl

MariaDB Server вече не е пряка имитация на MySQL. Той прерасна в зряла вилка, която внедрява нови функционалности, подобни на това, което патентованите системи за бази данни предлагат нагоре по веригата. MariaDB 10.3 значително разширява списъка с корпоративни функции и с новия SQL_MODE=Oracle се превръща във вълнуващ избор за компании, които биха искали да мигрират своите бази данни на Oracle към база данни с отворен код. Оперативното управление обаче е област, в която все още трябва да се наваксват и MariaDB изисква да създадете свои собствени скриптове.

Може би добра възможност да разгледате система за автоматизация?

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

Естествената следваща стъпка е да се търсят платформи за автоматизация. Има много платформи, които можете да използвате за разгръщане на системи. Puppet, Chef и Ansible са може би най-добрите примери за тази нова тенденция. Тези платформи са подходящи за бързо внедряване на различни софтуерни услуги. Те са идеални за внедряване, но все пак изискват от вас да поддържате кода, да покривате промените в функциите и обикновено покриват само един аспект от вашата работа. Неща като архивиране, производителност и поддръжка все още се нуждаят от външни инструменти или скриптове.

От друга страна, имаме облачни платформи с изчистени интерфейси и разнообразие от допълнителни услуги за напълно управлявано изживяване. Това обаче може да не е осъществимо; например хибридни среди, в които може да използвате облака, но все още със значителен отпечатък на място.

И така, какво ще кажете за специален слой за управление за вашите бази данни MariaDB?

ClusterControl е проектиран да автоматизира внедряването и управлението на MariaDB, както и на други бази данни с отворен код. В основата на ClusterControl е функционалност, която ви позволява да автоматизирате задачите на базата данни, които трябва да изпълнявате редовно, като разгръщане на нови екземпляри и клъстери на база данни, управление на архивиране, висока наличност и отказ, промени в топологията, надстройки, мащабиране на нови възли и други.

Инсталиране на ClusterControl

За да започнете с ClusterControl, имате нужда от специална виртуална машина или хост. Изискванията за VM и поддържаните системи са описани тук. Можете да започнете най-малкото от малка VM 2 GB RAM, 2 ядра на процесора и 20 GB място за съхранение, както локално, така и в облака.

Основният метод за инсталиране е да изтеглите съветник за инсталиране, който ви превежда през всички стъпки (конфигуриране на ОС, изтегляне и инсталиране на пакет, създаване на метаданни и други).

За среди без достъп до интернет можете да използвате офлайн инсталационния процес.

ClusterControl е без агент, така че не е необходимо да инсталирате допълнителен софтуер. Изисква само SSH достъп до хостовете на базата данни. Той също така поддържа мониторинг, базиран на агенти, за мониторинг на данни с по-висока разделителна способност.

За да настроите SSH без парола към всички целеви възли (ClusterControl и всички хостове на база данни), изпълнете следните команди на сървъра ClusterControl:

$ ssh-keygen -t rsa # press enter on all prompts
$ ssh-copy-id -i ~/.ssh/id_rsa [ClusterControl IP address]
$ ssh-copy-id -i ~/.ssh/id_rsa [Database nodes IP address] # repeat this to all target database nodes

Един от най-удобните начини да изпробвате клъстерния контрол може би опцията да го стартирате в контейнер за докер.

docker run -d --name clustercontrol \
--network db-cluster \
--ip 192.168.10.10 \
-h clustercontrol \
-p 5000:80 \
-p 5001:443 \
-v /storage/clustercontrol/cmon.d:/etc/cmon.d \
-v /storage/clustercontrol/datadir:/var/lib/mysql \
-v /storage/clustercontrol/sshkey:/root/.ssh \
-v /storage/clustercontrol/cmonlib:/var/lib/cmon \
-v /storage/clustercontrol/backups:/root/backups \
severalnines/clustercontrol

След успешно внедряване трябва да имате достъп до уеб потребителския интерфейс на ClusterControl на {host's IP address}:{host's port}, например:

HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol

Инсталиране на MariaDB Cluster

След като влезем в интерфейса на ClusterControl, първото нещо, което трябва да направите, е да разположите нова база данни или да импортирате съществуваща. Версията 1.7.2 въведе поддръжка за версия 10.3 (заедно с 10.0,10.1,10.2). В 1.7.3, която беше пусната тази седмица, можем да видим подобреното внедряване на инсталацията в облака.

ClusterControl:Разгръщане/Импортиране

Към момента на писане на този блог текущите версии са 10.3.16. Най-новите пакети се взимат по подразбиране. Изберете опцията „Разгръщане на клъстер от база данни“ и следвайте инструкциите, които се появяват.

Сега е моментът да предоставим данни, необходими за връзката между ClusterControl и DB възлите. На тази стъпка ще имате чисти VM или изображения на ОС, които използвате във вашата организация. Когато избираме MariaDB, трябва да посочим потребител, ключ или парола и порт за свързване чрез SSH към нашите сървъри.

ClusterControl:Разгръщане на клъстер от база данни

След като настроим информацията за SSH достъп, трябва да въведете данните за достъп до нашата база данни, за MariaDB, която ще бъде root на суперпотребител. Можем също да посочим кое хранилище да използваме. Можете да имате три типа хранилища, когато разгръщате сървър на база данни/клъстер с помощта на ClusterControl:

  • Използвайте хранилище на доставчик. Предоставяне на софтуер чрез настройка и използване на предпочитания софтуерен хранилище на доставчика на базата данни. ClusterControl ще инсталира най-новата версия на това, което се предоставя от хранилището на доставчика на базата данни.
  • Не настройвайте хранилища на доставчици. ClusterControl няма да създава хранилища. ClusterControl ще разчита на системната конфигурация (вашите файлове на хранилището по подразбиране).
  • Създайте и огледайте хранилището на текущия доставчик на база данни и след това разгръщайте с помощта на локалното огледално хранилище. Това ви позволява да „замразите“ текущите версии на софтуерните пакети.

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

Импортиране на нов клъстер

Също така имаме възможност да управляваме съществуваща настройка, като я импортираме в ClusterControl. Такава среда може да бъде създадена от ClusterControl или други методи (puppet, chef, ansible, docker…). Процесът е прост и не изисква специални познания.

Първо, трябва да въведете SSH идентификационните данни за достъп до нашите съществуващи сървъри на база данни. След това въвеждаме идентификационните данни за достъп до нашата база данни, директорията с данни на сървъра и версията. Добавяме възлите по IP или име на хост, по същия начин, както когато разгръщаме, и натискаме Импортиране. След като задачата приключи, ние сме готови да управляваме нашия клъстер от ClusterControl. В този момент можем също да дефинираме опциите за автоматично възстановяване на възела или клъстера.

ClusterControl:Импортирайте съществуващ клъстер от база данни 10.3

Мащабиране на MariaDB, добавяне на още възли към DB клъстер

С ClusterControl добавянето на повече сървъри към сървъра е лесна стъпка. Можете да направите това от GUI или CLI. За по-напреднали потребители можете да използвате ClusterControl Developer Studio и да напишете базово условие за ресурси, за да разширите автоматично клъстера си.

ClusterControl:Добавяне на възел MariaDB

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

Осигуряване на MariaDB

Инсталацията на MariaDB по подразбиране идва с спокойна сигурност. Това е подобрено с последните версии, но системите от производствен клас все още изискват промени в конфигурацията по подразбиране my.cnf. Разгръщанията на ClusterControl идват с настройки на my.cnf, различни по подразбиране (различни за различните типове клъстери).

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

ClusterControl:Панел за сигурност

ClusterControl позволява SSL поддръжка за MariaDB връзки. Активирането на SSL добавя още едно ниво на сигурност за комуникация между приложенията (включително ClusterControl) и базата данни. Клиентите на MariaDB отварят криптирани връзки към сървърите на базата данни и проверяват самоличността на тези сървъри, преди да прехвърлят каквато и да е чувствителна информация.

ClusterControl ще изпълни всички необходими стъпки, включително създаване на сертификати на всички възли на базата данни. Такива сертификати могат да се поддържат по-късно в раздела Key Management.

С ClusterControl можете също да активирате одит. Той използва приставката за одит, предоставена от MariaDB. Непрекъснатият одит е наложителна задача за наблюдение на вашата среда на база данни. Чрез одит на вашата база данни можете да постигнете отчетност за предприетите действия или достъп до съдържание. Освен това одитът може да включва някои критични системни компоненти, като тези, свързани с финансови данни, за да поддържат точен набор от регулации като SOX или регламента на GDPR на ЕС. Насочваният процес ви позволява да изберете какво да бъде одитирано и как да поддържате регистрационните файлове за одит.

Наблюдение и предупреждение

Когато работите със системи от бази данни, трябва да можете да ги наблюдавате. Това ще ви позволи да идентифицирате тенденции, да планирате надстройки или подобрения или да реагирате ефективно на всякакви проблеми или грешки, които могат да възникнат.

ClusterControl:Общ преглед

Новият ClusterControl използва Prometheus като хранилище на данни с езика за заявки PromQL. Списъкът с табла за управление включва табла за общи сървъри, сървърни кешове, метрики на InnoDB, главен за репликация, подчинен на репликация, преглед на системата и преглед на клъстерите.

ClusterControl:DashBoard

ClusterControl инсталира агенти на Prometheus, конфигурира метрики и поддържа достъп до конфигурацията на експортерите на Prometheus чрез своя графичен интерфейс, така че можете по-добре да управлявате конфигурацията на параметри като флагове на колектор за експортерите (Prometheus).

Като оператор на база данни, ние трябва да бъдем информирани всеки път, когато нещо критично се случи в нашата база данни. Трите основни метода в ClusterControl за получаване на сигнал включват:

  • известия по имейл
  • интеграции
  • съветници
ClusterControl:Услуги за интегриране

Можете да настроите имейл известията на потребителско ниво. Отидете в Настройки> Известия по имейл. Където можете да избирате между критичност и тип предупреждение, което да бъде изпратено.

Следващият метод е да използвате услугите за интеграция. Това е за предаване на конкретната категория събития към друга услуга, като билети на ServiceNow, Slack, PagerDuty и т.н., за да можете да създавате разширени методи за уведомяване и интеграции във вашата организация.

Последният е да включите усъвършенстван анализ на показателите в секцията Съветник, където можете да създадете интелигентни проверки и задействания.

ClusterControl:Съветници

SQL мониторинг

Мониторингът на SQL е разделен на три секции.

  • Водещи заявки - представя информацията за заявки, които отнемат значителна част от ресурси. Монитор на заявки:Най-популярни заявки
  • Изпълнение на заявки - това е процесен списък с информация, комбинирана от всички възли на клъстер на базата данни в един изглед. Можете да използвате това, за да унищожите заявки, които засягат операциите на вашата база данни. Монитор на заявки:Изпълнение на заявки
  • Отклонения на заявката - представя списък със заявки с време за изпълнение, по-дълго от средното. Монитор на заявки:Отклонения на заявките

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

Сега, когато вашият MariaDB работи и работи и имате мониторинг, е време за следващата стъпка:уверете се, че имате резервно копие на вашите данни.

ClusterControl:Резервно хранилище

ClusterControl предоставя интерфейс за управление на архивиране на MariaDB с поддръжка за планиране и творчески отчети. Той ви дава две опции за методи за архивиране.

  • Логически архив (текст):mysqldump
  • Бинарни архиви:xtrabackup (по-ниски версии), mariabackup

Добрата стратегия за архивиране е критична част от всяка система за управление на база данни. ClusterControl предлага много опции за архивиране и възстановяване/възстановяване.

Запазването на резервно копие на ClusterControl може да се конфигурира; можете да изберете да запазите архива си за всеки период от време или никога да не изтривате резервни копия. AES256 криптиране се използва за защита на вашите архиви срещу измамни елементи. За бързо възстановяване резервните копия могат да бъдат възстановени директно в нов клъстер - ClusterControl управлява пълния процес на възстановяване от стартирането на нова настройка на базата данни до възстановяването на данни, премахвайки от процеса ръчни стъпки, склонни към грешки.

Архивите могат да бъдат автоматично проверени след завършване и след това качени в услуги за съхранение в облак (AWS, Azure и Google). Могат да се дефинират различни правила за задържане за локални архиви в центъра за данни, както и за резервни копия, които се качват в облака.

Автоматично възстановяване на възел и клъстер

ClusterControl осигурява разширена поддръжка за откриване и обработка на неизправности. Освен това ви позволява да разгръщате различни прокси сървъри, за да ги интегрирате с вашия HA стек, така че няма нужда да коригирате низ за връзка с приложението или DNS запис, за да пренасочите приложението към новия главен възел.

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

Автоматичното превключване при отказ на ClusterControl е проектирано със следните принципи:

  • Уверете се, че главният е наистина мъртъв, преди да преминете при отказ
  • Отказ само веднъж
  • Не прехвърляйте при отказ към непоследователно подчинено устройство
  • Пишете само на главната
  • Не възстановявайте автоматично неуспешния главен код

С вградените алгоритми преминаването при отказ често може да се извърши доста бързо, за да можете да осигурите най-високите SLA за вашата среда на база данни.

ClusterControl:Автоматично възстановяване

Процесът е много конфигурируем. Той идва с множество параметри, които можете да използвате, за да приспособите възстановяването към спецификата на вашата среда. Сред различните опции можете да намерите replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script и много други.

Отказът е процесът на преминаване към здрав компонент в режим на готовност, по време на отказ или събитие за поддръжка, за да се запази времето на работа. Колкото по-бързо може да се направи, толкова по-бързо можете да се върнете онлайн. Ако търсите минимизиране на престоя и отговаряте на вашите SLA чрез автоматизиран подход за TimescaleDB, тогава този блог е за вас.

MaxScale Load Balancer

В допълнение към MariaDB 10.3, ClusterControl добавя опция за балансиране на натоварването MaxScale 2.3. MaxScale е прокси, работещ с SQL, който може да се използва за изграждане на високодостъпни среди. Той идва с множество функции, но основната цел е да позволи балансиране на натоварването и висока наличност.

ClusterControl:MaxScale

MaxScale може да се използва за проследяване на здравето на главния възел MariaDB и, ако не успее, да извърши бързо, автоматично преминаване при отказ. Автоматизираното преминаване при отказ е от решаващо значение за изграждането на високодостъпно решение, което може да се възстанови незабавно след повреда.

Сесии на базата данни за баланс на натоварване

Разделянето на четене и запис е критична функция, която позволява мащабиране при четене. Достатъчно е приложението да се свърже с MaxScale и то открива топологията, определя коя MariaDB действа като главен и коя действа като подчинени. Той насочва трафика в съответствие с това.

Резюме

Надяваме се, че този блог ще ви помогне да се запознаете с административните модули ClusterControl и MariaDB 10.3. Най-добрият вариант е да изтеглите ClusterControl и да тествате всеки един от тях.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Надстройка на MariaDB 10.0 до 10.3.9 на Ubuntu 16.04

  2. Как да направите вашата MySQL или MariaDB база данни високодостъпна в AWS и Google Cloud

  3. Преглед на новия DBaaS от MariaDB - SkySQL

  4. Задайте набора от символи и сортиране на таблица в MariaDB

  5. Моята MySQL база данни е извън дисковото пространство