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

Co to jest MariaDB TX? Jak zarządzać nowym widelcem MariaDB MySQL!

Być może słyszałeś o MariaDB TX i zastanawiałeś się, co to jest?

Czy jest jakaś różnica między nim a MariaDB Server 10.3?

W tym poście na blogu chcielibyśmy przedstawić przegląd MariaDB TX i o co w tym wszystkim chodzi.

W skrócie:MariaDB TX to subskrypcja, w której MariaDB łączy wiele ofert, tworząc w pełni funkcjonalną bazę danych transakcyjnych.

Bazą danych używaną w MariaDB TX jest MariaDB Server 10.3, który zawiera również Galera Cluster do synchronicznej replikacji wielu wzorców. Dla warstwy proxy MariaDB TX używa MaxScale.

Skoncentrujmy się trochę na tych dwóch głównych ofertach, omawiając ich funkcje.

Serwer MariaDB 10.3


Przekształcił się w kompletny widelec, który implementuje nowe funkcje oprócz tego, co Oracle implementuje na wcześniejszych etapach. MariaDB 10.3 zawiera listę funkcji przeznaczonych dla przedsiębiorstw. MariaDB Server 10.3 nie jest już bezpośrednim zamiennikiem MySQL.

Zgodność z Oracle

MariaDB 10.3 jest dostarczana z SQL_MODE=ORACLE, co poprawia zgodność składni SQL używanej w MariaDB 10.3 z Oracle PL/SQL. MariaDB TX zawiera następujące funkcje zgodności:

  • Parametry procedury przechowywanej
  • Konstrukcja procedury przechowywanej bez ANSI
  • Składnia kursora
  • Składnia pętli
  • Deklaracja zmiennej
  • Dziedziczenie typu danych (%TYPE, %ROWTYPE)
  • Wyjątki w stylu PL/SQL
  • Synonimy podstawowych typów SQL (VARCHAR2, NUMBER, …)

Pozwala to na łatwiejszą migrację aplikacji z baz danych Oracle do MariaDB TX.

Do 80% kodu Oracle PL/SQL można teraz wykonać w MariaDB bez konieczności wprowadzania zmian; ma to poważny wpływ na ogólną krzywą uczenia się i skraca czas potrzebny na przepisanie starszego kodu w celu uruchomienia w MariaDB TX.

Co ważne, należy również pamiętać, że MariaDB TX jest dostarczana z pakietem pomocy technicznej, dzięki czemu uzyskasz dostęp do konsultantów, którzy będą mogli podzielić się z Tobą najlepszymi praktykami migracji lub nawet bezpośrednio pomóc w procesie planowania, aby przejście było jeszcze mniej kłopotliwe.

Ulepszenia w SQL

MariaDB TX wprowadza również ulepszenia składni SQL, w tym nowe funkcje, które powinny być bardzo przydatne dla programistów, takie jak funkcje okna lub wspólne wyrażenia tabelowe. Również podrozdziały czasowe mogą być bardzo przydatne, ponieważ umożliwiają dostęp do wielu wersji danego wiersza w oparciu o konkretny punkt w czasie.

Wszystkie funkcje są wymienione poniżej:

  • Zdania podrzędne czasowe (np. AS OF)
  • Funkcje agregujące zdefiniowane przez użytkownika
  • Funkcje agregujące o uporządkowanym zestawie
  • PRZECIĘCIE/Z WYJĄTKIEM
  • Konstruktory wartości tabeli
  • Limit czasu blokady DDL/SELECT
  • Typowe wyrażenia tabelowe
  • Funkcje okien
  • Funkcje JSON

Zewnętrzne silniki pamięci masowej

Domyślnym silnikiem MariaDB jest InnoDB, transakcyjny, wszechstronny silnik pamięci masowej.

Jest odpowiedni dla większości obciążeń i doskonale sprawdza się w przypadku obciążenia OLTP (przetwarzanie transakcji online). Nie jest to jednak jedyny silnik pamięci dostępny w MariaDB TX. Otrzymasz dostęp do silnika Spider, którego można użyć do partycjonowania danych między wiele instancji MariaDB przy zachowaniu obsługi transakcji XA.

Innym silnikiem pamięci masowej, którego możesz użyć, jest MyRocks, silnik zoptymalizowany pod kątem przechowywania i redukcji wzmocnienia zapisu. Przetestowany w boju na Facebooku, oparty na LSN, idealnie nadaje się do przechowywania dużych ilości danych na nośniku SSD, zmniejszając koszty poprzez implementację silnej kompresji i zmniejszając liczbę zapisów wymaganych dla danego obciążenia (a tym samym minimalizując zużycie dysku SSD ).

Klaster Galera

MariaDB TX zapewnia łatwy dostęp do klastra Galera — wirtualnie synchronicznej replikacji z wieloma wzorcami. Galera Cluster może być używany do projektowania wysoce dostępnych klastrów obejmujących sieć WAN.

Galera Cluster jest zbudowany na protokole quorum-aware, co zapewnia, że ​​partycjonowanie sieci nie będzie problemem, a podzielony mózg nie będzie już problemem. Galera Cluster zapewnia środki do automatycznego przydzielania nowych lub uszkodzonych węzłów, zmniejszając wpływ na zarządzanie.

Funkcje operacyjne

MariaDB TX udostępnia również pewne funkcje związane z zadaniami operacyjnymi. Instant ADD COLUMN pomaga zmniejszyć wpływ jednej z najczęstszych zmian schematu. Niewidoczne kolumny pomagają zachować zgodność między starym a nowym kodem. Indeksy na wirtualnych kolumnach zwiększą wydajność.

Kopia zapasowa Maria

MariaDB TX implementuje szyfrowanie danych w spoczynku, które obejmuje szyfrowanie dzienników binarnych. Aby zapewnić użytkownikom MariaDB TX możliwość korzystania z kopii zapasowych bez blokad, utworzono Mariabackup. Jest to ulepszony fork Xtrabackup, który nie działał poprawnie z funkcjami szyfrowania MariaDB TX. Teraz możesz cieszyć się gorącymi, fizycznymi kopiami zapasowymi dzięki Mariabackup, jednocześnie bezpiecznie szyfrując dane.

MariaDB MaxScale

Oprócz MariaDB 10.3 MariaDB TX jest dostarczana z MaxScale 2.3, serwerem proxy obsługującym SQL, którego można używać do tworzenia środowisk o wysokiej dostępności. Zawiera wiele funkcji i chcielibyśmy omówić tutaj najważniejsze z nich.

Automatyczne przełączanie awaryjne

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.

Podział odczytu i zapisu

Podział odczytu i zapisu jest kluczową funkcją umożliwiającą skalowanie odczytu. Wystarczy, że aplikacja połączy się z MaxScale i wykryje topologię, ustali, która MariaDB działa jako master, a która jako slave. Następnie odpowiednio skieruje ruch. Zapytania SELECT zostaną wysłane do urządzeń podrzędnych, zapisy zostaną wysłane do urządzenia nadrzędnego. Wszystko dzieje się automatycznie, topologia jest cały czas monitorowana, a w przypadku awarii nastąpi przekierowanie ruchu w oparciu o zmianę.

Przejrzyste kierowanie zapytań

MaxScale, będący punktem wejścia ruchu do MariaDB TX, może być używany do podziału odczytu i zapisu. Czasami to wciąż za mało i dobrze byłoby mieć możliwość kontrolowania, gdzie dane zapytanie ma zostać wysłane. Jest to możliwe w MaxScale - możesz dopasować zapytania za pomocą wyrażeń regularnych, a następnie zdecydować, czy mają być wysyłane do mastera czy do slave'a. Może to pomóc w niektórych szczególnych przypadkach, gdy zapytanie SELECT musi zostać wykonane na wzorcu z powodu problemów z odczytem po zapisie lub po prostu dlatego, że musi mieć najbardziej aktualny widok zbioru danych.

Buforowanie wyników zapytań

Aby poprawić wydajność, konieczne jest buforowanie zapytań. Pamięć podręczna zapytań dostępna w MariaDB po prostu nie będzie działać w wysoce współbieżnym środowisku, ponieważ wymusza serializację zapytań, poważnie zmniejszając wydajność nawet w przypadku obciążeń tylko do odczytu. Korzystanie z zewnętrznego rozwiązania do pamięci podręcznej nie zawsze jest możliwe:w końcu otrzymasz kolejną bazę danych do utrzymania, zabezpieczenia i utrzymania w dobrym stanie. Lepiej byłoby użyć MaxScale jako pamięci podręcznej, zakładając, że używasz jej już do innych funkcji.

Blokowanie zapytań

Czasami bazy danych cierpią z powodu nieefektywnego zapytania, co powoduje duże obciążenie systemu. Możliwe, że przepisanie tego zapytania zajęłoby zbyt dużo czasu (ktoś musiałby je przepisać, przetestować zmianę na poczekalni, a następnie wdrożyć do produkcji), czas, którego nie masz. MaxScale może Ci w tym pomóc dzięki funkcjom takim jak blokowanie zapytań, które w zasadzie pozwalają zatrzymać dane zapytanie przed trafieniem do bazy danych. Ta funkcja może być również wykorzystana do zbudowania zapory SQL — odrzuć wszystkie zapytania, które pasują do wzorców, które wskazują na wstrzyknięcie SQL lub inne, potencjalnie niebezpieczne i złośliwe działania.

Jak widać, MariaDB TX zawiera listę funkcji i oprogramowania, które zostały zaprojektowane do współpracy i tworzenia wysoce dostępnej, skalowalnej bazy danych do przetwarzania danych transakcyjnych.

Monitorowanie i zarządzanie przedsiębiorstwem dla MariaDB TX

ClusterControl w pełni obsługuje MariaDB TX. Możesz łatwo wdrożyć zarówno MariaDB Server 10.3, jak i MaxScale 2.3. ClusterControl obsługuje konfiguracje replikacji MariaDB, a także klaster MariaDB Galera.

Dopóki masz łączność SSH z instancji ClusterControl do węzłów, na których chcesz wdrożyć MariaDB TX, możesz to zrobić za pomocą zaledwie kilku kliknięć.

Najpierw musisz zdefiniować, w jaki sposób ClusterControl będzie docierał do węzłów MariaDB TX.

Następnie wybierz MariaDB jako dostawcę i wybierz jedną z obsługiwanych wersji. Przekaż hasło roota MariaDB.

Na koniec zdecyduj o topologii. MariaDB TX można wdrożyć w konfiguracji master — master, active — standby z dodatkowymi urządzeniami podrzędnymi. Replikacja użyje identyfikatora GTID MariaDB.

W przypadku MariaDB Galera Cluster pierwszy krok jest dokładnie taki sam, wystarczy wybrać MariaDB jako dostawcę, wybrać wersję i zdefiniować węzły w MariaDB Galera Cluster:

Po wdrożeniu klastrów możesz wykorzystać możliwości ClusterControl do monitorowania i zarządzania klastrami MariaDB TX.

Na przykład dodanie systemów równoważenia obciążenia MaxScale to tylko kilka kliknięć:

Po wdrożeniu możesz zarządzać MaxScale za pomocą ClusterControl:

Możesz również skalować swój klaster Galera, dodając nowe węzły Galera lub asynchroniczne urządzenia podrzędne replikacji. Możesz dodać urządzenia podrzędne lub podrzędne opóźnione do konfiguracji replikacji lub dokonać zmian w topologii, promując urządzenie podrzędne do nadrzędnego i ponownie podporządkowując resztę konfiguracji. ClusterControl będzie monitorować klaster i próbować odzyskać uszkodzone węzły lub klastry w przypadku wystąpienia incydentu. W przypadku kopii zapasowych ClusterControl może pomóc w zdefiniowaniu harmonogramu tworzenia kopii zapasowych za pomocą mysqldump i Mariabackup, dzięki czemu można łatwo korzystać z funkcji szyfrowania MariaDB TX.

W przypadku części monitorowania i trendów, ClusterControl może być używany w trybie bez agenta:

Lub może być używany razem z Prometheusem i agentami, aby zapewnić jeszcze lepszy wgląd w to, co dzieje się w klastrze MariaDB TX.

Mamy nadzieję, że ten wprowadzający wpis na blogu pomógł Ci zrozumieć, czym jest MariaDB TX i jak ClusterControl może pomóc Ci nim zarządzać.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa ASIN() w MariaDB

  2. 4 funkcje zwracające rok z daty w MariaDB

  3. Porównanie czasów przełączania awaryjnego dla Amazon Aurora, Amazon RDS i ClusterControl

  4. Jak zainstalować i zabezpieczyć MariaDB na Debianie 9?

  5. Migracja Amazon RDS (MySQL lub MariaDB) na serwer lokalny