MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak zarządzać MariaDB 10.3 za pomocą ClusterControl

MariaDB Server nie jest już prostą imitacją MySQL. Rozrósł się do dojrzałego forka, który implementuje nowe funkcjonalności podobne do tego, co oferują autorskie systemy bazodanowe. MariaDB 10.3 znacznie rozszerza listę funkcji korporacyjnych, a dzięki nowej wersji SQL_MODE=Oracle staje się ekscytującym wyborem dla firm, które chcą przenieść swoje bazy danych Oracle do bazy danych typu open source. Jednak zarządzanie operacyjne to obszar, w którym wciąż trzeba nadrobić zaległości, a MariaDB wymaga zbudowania własnych skryptów.

Może to dobra okazja, aby przyjrzeć się systemowi automatyzacji?

Zautomatyzowane procedury są dokładne i spójne. Mogą zapewnić bardzo potrzebną powtarzalność, dzięki czemu możesz zminimalizować ryzyko zmian w systemach produkcyjnych. Jednak, ponieważ nowoczesne bazy danych typu open source rozwijają się tak szybko, trudniej jest utrzymać systemy zarządzania na równi ze wszystkimi nowymi funkcjami.

Naturalnym kolejnym krokiem jest poszukiwanie platform automatyzacji. Istnieje wiele platform, których można używać do wdrażania systemów. Puppet, Chef i Ansible to prawdopodobnie najlepsze przykłady tego nowego trendu. Platformy te są odpowiednie do szybkiego wdrażania różnych usług oprogramowania. Są idealne do wdrożeń, ale nadal wymagają utrzymywania kodu, opisywania zmian funkcji i zwykle obejmują tylko jeden aspekt Twojej pracy. Rzeczy takie jak tworzenie kopii zapasowych, wydajność i konserwacja nadal wymagają zewnętrznych narzędzi lub skryptów.

Z drugiej strony mamy platformy chmurowe z dopracowanymi interfejsami i różnymi dodatkowymi usługami, które zapewniają w pełni zarządzane doświadczenie. Jednak może to nie być wykonalne; na przykład środowiska hybrydowe, w których możesz korzystać z chmury, ale nadal mają one znaczny wpływ na środowisko lokalne.

A co powiesz na dedykowaną warstwę zarządzania dla baz danych MariaDB?

ClusterControl został zaprojektowany, aby zautomatyzować wdrażanie i zarządzanie MariaDB oraz innymi bazami danych typu open source. Podstawą ClusterControl jest funkcjonalność, która pozwala zautomatyzować zadania bazy danych, które musisz wykonywać regularnie, takie jak wdrażanie nowych instancji i klastrów bazy danych, zarządzanie kopiami zapasowymi, wysoka dostępność i przełączanie awaryjne, zmiany topologii, uaktualnienia, skalowanie nowych węzłów i nie tylko.

Instalacja ClusterControl

Aby rozpocząć korzystanie z ClusterControl, potrzebujesz dedykowanej maszyny wirtualnej lub hosta. W tym miejscu opisano wymagania dotyczące maszyny wirtualnej i obsługiwanych systemów. Jako minimum możesz zacząć od małej maszyny wirtualnej 2 GB pamięci RAM, 2 rdzeni procesora i 20 GB przestrzeni dyskowej, lokalnie lub w chmurze.

Podstawową metodą instalacji jest pobranie kreatora instalacji, który przeprowadzi Cię przez wszystkie kroki (konfigurację systemu operacyjnego, pobieranie i instalację pakietu, tworzenie metadanych i inne).

W środowiskach bez dostępu do Internetu możesz skorzystać z procesu instalacji offline.

ClusterControl nie wymaga agenta, więc nie musisz instalować dodatkowego oprogramowania. Wymaga tylko dostępu SSH do hostów bazy danych. Obsługuje również monitorowanie oparte na agentach w celu uzyskania danych monitorowania o wyższej rozdzielczości.

Aby skonfigurować bezhasłowe SSH dla wszystkich węzłów docelowych (ClusterControl i wszystkich hostów bazy danych), uruchom następujące polecenia na serwerze 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

Jednym z najwygodniejszych sposobów wypróbowania kontroli klastra może być opcja uruchomienia go w kontenerze dockera.

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

Po pomyślnym wdrożeniu powinieneś mieć dostęp do interfejsu internetowego ClusterControl pod adresem {adres IP hosta}:{port hosta}, na przykład:

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

Instalacja klastra MariaDB

Po wejściu do interfejsu ClusterControl pierwszą rzeczą do zrobienia jest wdrożenie nowej bazy danych lub zaimportowanie istniejącej. Wersja 1.7.2 wprowadziła wsparcie dla wersji 10.3 (wraz z 10.0.10.1,10.2). W wersji 1.7.3, która została wydana w tym tygodniu, możemy zobaczyć ulepszone wdrażanie instalacji w chmurze.

ClusterControl:wdrażanie/importowanie

W chwili pisania tego bloga aktualne wersje to 10.3.16. Najnowsze paczki są odbierane domyślnie. Wybierz opcję „Wdróż klaster bazy danych” i postępuj zgodnie z wyświetlanymi instrukcjami.

Nadszedł czas na dostarczenie danych potrzebnych do połączenia między ClusterControl a węzłami DB. Na tym etapie będziesz mieć czyste maszyny wirtualne lub obrazy systemu operacyjnego, których używasz w swojej organizacji. Wybierając MariaDB, musimy określić użytkownika, klucz lub hasło oraz port, aby połączyć się przez SSH z naszymi serwerami.

ClusterControl:wdrażanie klastra bazy danych

Po skonfigurowaniu informacji dostępowych SSH, musimy wprowadzić dane, aby uzyskać dostęp do naszej bazy danych, dla MariaDB, która będzie rootem superużytkownika. Możemy również określić, którego repozytorium użyć. Podczas wdrażania serwera/klastra bazy danych za pomocą ClusterControl możesz mieć trzy typy repozytoriów:

  • Użyj repozytorium dostawców. Aprowizuj oprogramowanie, konfigurując i korzystając z repozytorium oprogramowania preferowanego przez dostawcę bazy danych. ClusterControl zainstaluje najnowszą wersję tego, co jest dostarczane przez repozytorium dostawcy bazy danych.
  • Nie konfiguruj repozytoriów dostawców. Żadne repozytoria nie zostaną skonfigurowane przez ClusterControl. ClusterControl będzie polegać na konfiguracji systemu (domyślnych plikach repozytorium).
  • Utwórz i zdubluj repozytorium aktualnego dostawcy bazy danych, a następnie wdróż przy użyciu lokalnego zdublowanego repozytorium. Pozwala to na „zamrożenie” aktualnych wersji pakietów oprogramowania.

Kiedy wszystko jest ustawione, naciśnij przycisk wdrażania. Proces wdrażania zajmie się również instalacją dodatkowych narzędzi udostępnianych przez MariaDB, takich jak mariabackup i narzędzia od zewnętrznych dostawców, popularne w administrowaniu bazami danych.

Importuj nowy klaster

Mamy również możliwość zarządzania istniejącą konfiguracją poprzez importowanie jej do ClusterControl. Takie środowisko można stworzyć za pomocą ClusterControl lub innych metod (puppet, chef, ansible, docker…). Proces jest prosty i nie wymaga specjalistycznej wiedzy.

Najpierw musimy wprowadzić poświadczenia dostępu SSH do naszych istniejących serwerów baz danych. Następnie wprowadzamy poświadczenia dostępu do naszej bazy danych, katalogu danych serwera i wersji. Dodajemy węzły według adresu IP lub nazwy hosta w taki sam sposób, jak podczas wdrażania, i naciskamy Importuj. Po zakończeniu zadania jesteśmy gotowi do zarządzania naszym klastrem z ClusterControl. W tym momencie możemy również zdefiniować opcje automatycznego odzyskiwania węzła lub klastra.

ClusterControl:zaimportuj istniejący klaster bazy danych 10.3

Skalowanie MariaDB, dodawanie większej liczby węzłów do klastra DB

Dzięki ClusterControl dodanie większej liczby serwerów do serwera jest łatwym krokiem. Możesz to zrobić z GUI lub CLI. W przypadku bardziej zaawansowanych użytkowników możesz użyć ClusterControl Developer Studio i napisać warunek bazowy zasobów, aby automatycznie rozszerzyć klaster.

ClusterControl:dodawanie węzła MariaDB

ClusterControl obsługuje opcję korzystania z istniejącej kopii zapasowej, więc nie ma potrzeby przytłaczania produkcyjnego węzła głównego dodatkową pracą.

Zabezpieczanie MariaDB

Domyślna instalacja MariaDB zapewnia łagodne zabezpieczenia. Zostało to ulepszone w ostatnich wersjach, jednak systemy klasy produkcyjnej nadal wymagają poprawek w domyślnej konfiguracji my.cnf. Wdrożenia ClusterControl mają inne niż domyślne ustawienia my.cnf (różne dla różnych typów klastrów).

ClusterControl usuwa błędy ludzkie i zapewnia dostęp do zestawu funkcji bezpieczeństwa, aby automatycznie chronić Twoje bazy danych przed włamaniami i innymi zagrożeniami.

ClusterControl:Panel zabezpieczeń

ClusterControl umożliwia obsługę SSL dla połączeń MariaDB. Włączenie SSL dodaje kolejny poziom bezpieczeństwa komunikacji między aplikacjami (w tym ClusterControl) a bazą danych. Klienci MariaDB otwierają zaszyfrowane połączenia z serwerami baz danych i weryfikują tożsamość tych serwerów przed przesłaniem jakichkolwiek poufnych informacji.

ClusterControl wykona wszystkie niezbędne kroki, w tym utworzenie certyfikatów na wszystkich węzłach bazy danych. Takie certyfikaty można przechowywać później w zakładce Zarządzanie kluczami.

Dzięki ClusterControl możesz również włączyć audyt. Wykorzystuje wtyczkę audytu dostarczoną przez MariaDB. Ciągły audyt jest niezbędnym zadaniem monitorowania środowiska bazy danych. Dzięki audytowi bazy danych możesz uzyskać odpowiedzialność za podjęte działania lub dostęp do treści. Co więcej, audyt może obejmować pewne krytyczne elementy systemu, takie jak te związane z danymi finansowymi w celu wsparcia precyzyjnego zestawu regulacji, takich jak SOX, czy unijne rozporządzenie RODO. Proces z przewodnikiem pozwala wybrać, co powinno być kontrolowane i jak utrzymywać pliki dziennika kontroli.

Monitorowanie i alarmowanie

Podczas pracy z systemami baz danych powinieneś mieć możliwość ich monitorowania. Umożliwi to identyfikowanie trendów, planowanie aktualizacji lub ulepszeń lub skuteczne reagowanie na wszelkie problemy lub błędy, które mogą się pojawić.

ClusterControl:omówienie

Nowy ClusterControl wykorzystuje Prometheus jako magazyn danych z językiem zapytań PromQL. Lista pulpitów nawigacyjnych obejmuje panele ogólne serwera, pamięci podręczne serwerów, wskaźniki InnoDB, wzorzec replikacji, urządzenie podrzędne replikacji, przegląd systemu i przegląd klastrów.

ClusterControl:DashBoard

ClusterControl instaluje agentów Prometheus, konfiguruje metryki i utrzymuje dostęp do konfiguracji eksporterów Prometheus za pośrednictwem swojego GUI, dzięki czemu można lepiej zarządzać konfiguracją parametrów, taką jak flagi zbierające dla eksporterów (Prometheus).

Jako operator bazy danych musimy być informowani o każdej krytycznej sytuacji w naszej bazie danych. Trzy główne metody uzyskiwania alertu w ClusterControl obejmują:

  • powiadomienia e-mail
  • integracje
  • doradcy
ClusterControl:usługi integracyjne

Możesz ustawić powiadomienia e-mail na poziomie użytkownika. Przejdź do Ustawienia> Powiadomienia e-mail. Gdzie możesz wybrać między krytycznością a rodzajem wysyłanego alertu.

Kolejną metodą jest skorzystanie z usług Integracji. Ma to na celu przekazanie określonej kategorii wydarzeń do innej usługi, takiej jak bilety ServiceNow, Slack, PagerDuty itp., dzięki czemu możesz tworzyć zaawansowane metody powiadamiania i integracje w swojej organizacji.

Ostatnim z nich jest włączenie wyrafinowanej analizy metryk w sekcji Doradca, w której można tworzyć inteligentne kontrole i wyzwalacze.

ClusterControl:Doradcy

Monitorowanie SQL

Monitorowanie SQL jest podzielone na trzy sekcje.

  • Najpopularniejsze zapytania - przedstawia informacje o zapytaniach, które zajmują znaczną część zasobów. Monitor zapytań:najpopularniejsze zapytania
  • Wykonywanie zapytań - to procesowa lista informacji połączona ze wszystkich węzłów klastra bazy danych w jeden widok. Możesz użyć tego do zabijania zapytań, które wpływają na operacje bazy danych. Monitor zapytań:uruchamianie zapytań
  • Wyjątki zapytania - prezentować listę zapytań z czasem wykonania dłuższym niż przeciętny. Monitor zapytań:wartości odstające zapytań

Kopia zapasowa i odzyskiwanie

Teraz, gdy masz już uruchomioną bazę danych MariaDB i monitoring, nadszedł czas na kolejny krok:upewnij się, że masz kopię zapasową swoich danych.

ClusterControl:repozytorium kopii zapasowych

ClusterControl zapewnia interfejs do zarządzania kopiami zapasowymi MariaDB z obsługą harmonogramów i kreatywnych raportów. Daje dwie opcje metod tworzenia kopii zapasowych.

  • Logiczna kopia zapasowa (tekst):mysqldump
  • Kopie binarne:xtrabackup (niższe wersje), mariabackup

Dobra strategia tworzenia kopii zapasowych jest krytyczną częścią każdego systemu zarządzania bazą danych. ClusterControl oferuje wiele opcji tworzenia kopii zapasowych i odzyskiwania/przywracania.

Możliwość konfiguracji przechowywania kopii zapasowych ClusterControl; możesz zachować kopię zapasową przez dowolny okres czasu lub nigdy nie usuwać kopii zapasowych. Szyfrowanie AES256 służy do zabezpieczenia kopii zapasowych przed nieuczciwymi elementami. W celu szybkiego przywrócenia kopii zapasowych można przywrócić bezpośrednio do nowego klastra - ClusterControl obsługuje pełny proces przywracania od uruchomienia nowej konfiguracji bazy danych do odzyskiwania danych, usuwając z tego procesu podatne na błędy ręczne kroki.

Kopie zapasowe mogą być automatycznie weryfikowane po zakończeniu, a następnie przesyłane do usług przechowywania w chmurze (AWS, Azure i Google). Można zdefiniować różne zasady przechowywania dla lokalnych kopii zapasowych w centrum danych, a także kopii zapasowych przesyłanych do chmury.

Automatyczne odzyskiwanie węzłów i klastrów

ClusterControl zapewnia zaawansowaną obsługę wykrywania i obsługi awarii. Pozwala również na wdrożenie różnych serwerów proxy w celu zintegrowania ich ze stosem HA, dzięki czemu nie ma potrzeby dostosowywania ciągu połączenia aplikacji lub wpisu DNS, aby przekierować aplikację do nowego węzła głównego.

Gdy serwer główny nie działa, ClusterControl utworzy zadanie, aby wykonać automatyczne przełączanie awaryjne. ClusterControl wykonuje całą pracę w tle, aby wybrać nowego mastera, wdrożyć awaryjne serwery slave i skonfigurować systemy równoważenia obciążenia.

Automatyczne przełączanie awaryjne ClusterControl zostało zaprojektowane zgodnie z następującymi zasadami:

  • Upewnij się, że master naprawdę nie żyje, zanim przełączysz się w tryb awaryjny
  • Przełączanie awaryjne tylko raz
  • Nie przełączaj awaryjnie na niespójne urządzenie podrzędne
  • Tylko pisz do mistrza
  • Nie przywracaj automatycznie uszkodzonego wzorca

Dzięki wbudowanym algorytmom przełączanie awaryjne można często wykonać dość szybko, dzięki czemu można zapewnić najwyższe SLA dla środowiska bazy danych.

ClusterControl:automatyczne odzyskiwanie

Proces jest wysoce konfigurowalny. Zawiera wiele parametrów, których można użyć, aby dostosować odzyskiwanie do specyfiki środowiska. Wśród różnych opcji można znaleźć replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script i wiele innych.

Przełączanie awaryjne to proces przejścia do sprawnego składnika gotowości podczas awarii lub konserwacji w celu zachowania czasu pracy bez przestojów. Im szybciej można to zrobić, tym szybciej wrócisz do trybu online. Jeśli chcesz zminimalizować przestoje i spełnić swoje umowy SLA dzięki zautomatyzowanemu podejściu do TimescaleDB, ten blog jest dla Ciebie.

System równoważenia obciążenia MaxScale

Oprócz MariaDB 10.3 ClusterControl dodaje opcję równoważenia obciążenia MaxScale 2.3. MaxScale to serwer proxy obsługujący język SQL, którego można używać do tworzenia środowisk o wysokiej dostępności. Ma wiele funkcji, jednak głównym celem jest umożliwienie równoważenia obciążenia i wysokiej dostępności.

ClusterControl:MaxScale

MaxScale może służyć do śledzenia kondycji głównego węzła MariaDB i, w przypadku jego awarii, wykonywania szybkiego, automatycznego przełączania awaryjnego. Automatyczne przełączanie awaryjne ma kluczowe znaczenie w tworzeniu wysoce dostępnego rozwiązania, które może szybko odzyskać sprawność po awarii.

Sesje bazy danych bilansu obciążenia

Podział odczytu i zapisu jest kluczową funkcją umożliwiającą skalowanie odczytu. Wystarczy, że aplikacja połączy się z MaxScale i wykryje topologię, określi, która MariaDB działa jako master, a która jako slave. Kieruje ruch zgodnie z tym.

Podsumowanie

Mamy nadzieję, że ten blog pomoże Ci zapoznać się z modułami administracyjnymi ClusterControl i MariaDB 10.3. Najlepszą opcją jest pobranie ClusterControl i przetestowanie każdego z nich.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBaaS, chmura i przejrzysty routing zapytań

  2. Jak SQRT() działa w MariaDB

  3. Jak zarządzać MariaDB 10.3 za pomocą ClusterControl

  4. Jak CHAR_LENGTH() działa w MariaDB

  5. Przegląd MariaDB Xpand (dawniej ClustrixDB)