Repliki do odczytu w usłudze Azure Database for MariaDB

Ważne

Usługa Azure Database for MariaDB znajduje się na ścieżce wycofania. Zdecydowanie zalecamy przeprowadzenie migracji do usługi Azure Database for MySQL. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for MySQL, zobacz Co się dzieje z usługą Azure Database for MariaDB?.

Funkcja repliki do odczytu umożliwia replikowanie danych z serwera usługi Azure Database for MariaDB do serwera tylko do odczytu. Z serwera źródłowego można replikować maksymalnie pięć replik. Repliki są aktualizowane asynchronicznie przy użyciu technologii replikacji opartej na pozycji pliku dziennika binarnego (binlog) aparatu MariaDB przy użyciu globalnego identyfikatora transakcji (GTID). Aby dowiedzieć się więcej na temat replikacji binlog, zobacz omówienie replikacji binlog.

Repliki to nowe serwery, którymi zarządzasz podobnie jak zwykłe serwery usługi Azure Database for MariaDB. Dla każdej repliki do odczytu opłaty są naliczane za aprowizowane zasoby obliczeniowe w rdzeniach wirtualnych i magazynie w GB/miesiąc.

Aby dowiedzieć się więcej na temat replikacji GTID, zobacz dokumentację replikacji bazy danych MariaDB.

Uwaga

Ten artykuł zawiera odwołania do terminu slave (element podrzędny), który nie jest już używany przez firmę Microsoft. Po usunięciu terminu z oprogramowania usuniemy go z tego artykułu.

Kiedy używać repliki do odczytu

Funkcja repliki do odczytu ułatwia poprawę wydajności i skalowania obciążeń intensywnie korzystających z odczytu. Obciążenia odczytu mogą być odizolowane do replik, a obciążenia zapisu mogą być kierowane do serwera podstawowego.

W typowym scenariuszu obciążenia analizy biznesowej i analizy używają replik do odczytu jako źródła danych do raportowania.

Ponieważ repliki są przeznaczone tylko do odczytu, nie zmniejszają bezpośrednio obciążeń związanych z pojemnością zapisu na serwerze podstawowym. Ta funkcja nie jest przeznaczona dla obciążeń intensywnie korzystających z zapisu.

Funkcja repliki do odczytu używa replikacji asynchronicznej. Ta funkcja nie jest przeznaczona dla scenariuszy replikacji synchronicznej. Między źródłem a repliką wystąpi wymierne opóźnienie. Dane repliki w końcu staną się spójne z danymi podstawowymi. Użyj tej funkcji w przypadku obciążeń, które mogą uwzględnić to opóźnienie.

Replikacja między regionami

Replikę do odczytu można utworzyć w innym regionie niż serwer źródłowy. Replikacja między regionami może być przydatna w scenariuszach, takich jak planowanie odzyskiwania po awarii lub przybliżanie danych do użytkowników.

Serwer źródłowy można mieć w dowolnym regionie usługi Azure Database for MariaDB. Serwer źródłowy może mieć replikę w sparowanym regionie lub w regionach repliki uniwersalnej. Na poniższej ilustracji przedstawiono, które regiony repliki są dostępne w zależności od regionu źródłowego.

Read replica regions

Regiony repliki uniwersalnej

Replikę do odczytu można utworzyć w dowolnym z następujących regionów, niezależnie od tego, gdzie znajduje się serwer źródłowy. Obsługiwane regiony repliki uniwersalnej obejmują:

Australia Wschodnia, Australia Południowo-Wschodnia, Brazylia Południowa, Kanada Środkowa, Kanada Wschodnia, Środkowe stany USA, Azja Wschodnia, Wschodnie stany USA, Wschodnie stany USA, Wschodnie stany USA, Japonia Zachodnia, Korea Środkowa, Korea Południowa, Północno-środkowe stany USA, Europa Południowo-Środkowa, Azja Południowo-Wschodnia, Południowe Zjednoczone Królestwo, Zachodnie stany USA, Europa Zachodnia, Zachodnie stany USA 2, Zachodnie stany USA.

Sparowane regiony

Oprócz regionów repliki uniwersalnej można utworzyć replikę do odczytu w sparowanym regionie platformy Azure serwera źródłowego. Jeśli nie znasz pary regionów, możesz dowiedzieć się więcej z artykułu Regiony sparowane platformy Azure.

Jeśli używasz replik między regionami do planowania odzyskiwania po awarii, zalecamy utworzenie repliki w sparowanym regionie zamiast jednego z pozostałych regionów. Sparowane regiony unikają równoczesnych aktualizacji i określania priorytetów izolacji fizycznej i rezydencji danych.

Istnieją jednak ograniczenia, które należy wziąć pod uwagę:

  • Dostępność regionalna: usługa Azure Database for MariaDB jest dostępna we Francji Środkowej, Północnej Emiratach Zjednoczonych i Niemczech Środkowych. Jednak ich sparowane regiony nie są dostępne.

  • Pary jednokierunkowe: niektóre regiony platformy Azure są sparowane tylko w jednym kierunku. Regiony te obejmują Indie Zachodnie, Brazylia Południowa i US Gov Wirginia. Oznacza to, że serwer źródłowy w Indiach Zachodnich może utworzyć replikę w Indiach Południowych. Jednak serwer źródłowy w Indiach Południowych nie może utworzyć repliki w Indiach Zachodnich. Wynika to z faktu, że region pomocniczy Indii Zachodnich to Indie Południowe, ale region pomocniczy Indii Południowych nie jest Indiami Zachodnimi.

Tworzenie repliki

Ważne

Funkcja repliki do odczytu jest dostępna tylko dla serwerów usługi Azure Database for MariaDB w warstwach cenowych Ogólnego przeznaczenia lub Zoptymalizowane pod kątem pamięci. Upewnij się, że serwer źródłowy znajduje się w jednej z tych warstw cenowych.

Jeśli serwer źródłowy nie ma istniejących serwerów repliki, źródło najpierw uruchomi się ponownie, aby przygotować się do replikacji.

Po uruchomieniu przepływu pracy tworzenia repliki zostanie utworzony pusty serwer usługi Azure Database for MariaDB. Nowy serwer jest wypełniony danymi, które znajdowały się na serwerze źródłowym. Czas tworzenia zależy od ilości danych od źródła i czasu od ostatniej cotygodniowej pełnej kopii zapasowej. Czas może wahać się od kilku minut do kilku godzin.

Uwaga

Jeśli nie masz skonfigurowanego alertu dotyczącego magazynu na serwerach, zalecamy wykonanie tej czynności. Alert informuje, kiedy serwer zbliża się do limitu magazynu, co wpłynie na replikację.

Dowiedz się, jak utworzyć replikę do odczytu w witrynie Azure Portal.

Nawiązywanie połączenia z repliką

Podczas tworzenia replika dziedziczy reguły zapory serwera źródłowego. Następnie te reguły są niezależne od serwera źródłowego.

Replika dziedziczy konto administratora z serwera źródłowego. Wszystkie konta użytkowników na serwerze źródłowym są replikowane do replik do odczytu. Można nawiązać połączenie tylko z repliką do odczytu przy użyciu kont użytkowników dostępnych na serwerze źródłowym.

Możesz nawiązać połączenie z repliką przy użyciu jego nazwy hosta i prawidłowego konta użytkownika, tak jak na zwykłym serwerze usługi Azure Database for MariaDB. W przypadku serwera o nazwie myreplica z nazwą użytkownika administratora myadmin możesz nawiązać połączenie z repliką przy użyciu interfejsu wiersza polecenia mysql:

mysql -h myreplica.mariadb.database.azure.com -u myadmin@myreplica -p

Po wyświetleniu monitu wprowadź hasło dla konta użytkownika.

Monitorowanie replikacji

Usługa Azure Database for MariaDB zapewnia opóźnienie replikacji w sekundach w usłudze Azure Monitor. Ta metryka jest dostępna tylko dla replik.

Ta metryka jest obliczana przy użyciu metryki dostępnej seconds_behind_masterSHOW SLAVE STATUS w poleceniu bazy danych MariaDB.

Ustaw alert informujący o osiągnięciu opóźnienia replikacji, która nie jest akceptowalna dla obciążenia.

Zatrzymywanie replikacji

Replikację między źródłem a repliką można zatrzymać. Po zatrzymaniu replikacji między serwerem źródłowym a repliką do odczytu replika staje się serwerem autonomicznym. Dane na serwerze autonomicznym to dane, które były dostępne w repliki w momencie uruchomienia polecenia zatrzymania replikacji. Serwer autonomiczny nie nadrabia zaległości z serwerem źródłowym.

Gdy zdecydujesz się zatrzymać replikację do repliki, utraci wszystkie łącza do poprzedniego źródła i innych replik. Nie ma automatycznego przejścia w tryb failover między źródłem a repliką.

Ważne

Nie można ponownie utworzyć autonomicznego serwera w repliki. Przed zatrzymaniem replikacji w repliki do odczytu upewnij się, że replika ma wszystkie wymagane dane.

Dowiedz się, jak zatrzymać replikację do repliki.

Tryb failover

Nie ma automatycznego trybu failover między serwerami źródłowymi i replikami.

Ponieważ replikacja jest asynchroniczna, występuje opóźnienie między źródłem a repliką. Wpływ na opóźnienie może mieć wiele czynników, takich jak duże obciążenie uruchomione na serwerze źródłowym i opóźnienie między centrami danych. W większości przypadków opóźnienia repliki wynoszą od kilku sekund do kilku minut. Rzeczywiste opóźnienie replikacji można śledzić przy użyciu metryki Opóźnienie repliki, która jest dostępna dla każdej repliki. Ta metryka pokazuje czas od ostatniej ponownej transakcji. Zalecamy zidentyfikowanie średniego opóźnienia przez zaobserwowanie opóźnienia repliki w danym okresie. Możesz ustawić alert dotyczący opóźnienia repliki, aby jeśli wykracza poza oczekiwany zakres, możesz podjąć akcję.

Napiwek

Jeśli przejdziesz w tryb failover do repliki, opóźnienie podczas odłączania repliki ze źródła wskaże, ile danych zostanie utraconych.

Po podjęciu decyzji, że chcesz przejść w tryb failover do repliki,

  1. Zatrzymaj replikację do repliki.

    Ten krok jest niezbędny, aby serwer repliki mógł akceptować zapisy. W ramach tego procesu serwer repliki zostanie odłączony od serwera podstawowego. Po zainicjowaniu zatrzymania replikacji proces zaplecza zwykle trwa około 2 minut. Zobacz sekcję Zatrzymywanie replikacji w tym artykule, aby zrozumieć implikacje tej akcji.

  2. Wskaż aplikację do repliki (poprzedniej).

    Każdy serwer ma unikatowy parametry połączenia. Zaktualizuj aplikację, aby wskazywała (poprzednią) replikę zamiast podstawowej.

Po pomyślnym przetworzeniu odczytów i zapisów w aplikacji ukończono tryb failover. Czas przestoju środowiska aplikacji zależy od momentu wykrycia problemu i wykonania kroków 1 i 2 powyżej.

Rozważania i ograniczenia

Warstwy cenowe

Repliki do odczytu są obecnie dostępne tylko w warstwach cenowych Ogólnego przeznaczenia i Zoptymalizowane pod kątem pamięci.

Uwaga

Koszt uruchamiania serwera repliki zależy od regionu, w którym działa serwer repliki.

Ponowne uruchamianie serwera źródłowego

Podczas tworzenia repliki dla źródła, które nie ma istniejących replik, źródło najpierw uruchomi się ponownie, aby przygotować się do replikacji. Weź to pod uwagę i wykonaj te operacje w okresie poza szczytem.

Nowe repliki

Replika do odczytu jest tworzona jako nowy serwer usługi Azure Database for MariaDB. Nie można utworzyć istniejącego serwera w repliki. Nie można utworzyć repliki innej repliki do odczytu.

Konfiguracja repliki

Replika jest tworzona przy użyciu tej samej konfiguracji serwera co podstawowa. Po utworzeniu repliki można zmienić kilka ustawień niezależnie od serwera źródłowego: generowania zasobów obliczeniowych, rdzeni wirtualnych, magazynu, okresu przechowywania kopii zapasowych i wersji aparatu MariaDB. Warstwę cenową można również zmienić niezależnie, z wyjątkiem warstwy Podstawowa lub z warstwy Podstawowa.

Ważne

Przed zaktualizowaniem konfiguracji serwera źródłowego do nowych wartości zaktualizuj konfigurację repliki do takich samych lub wyższych wartości. Ta akcja zapewnia, że replika może nadążyć za wszelkimi zmianami wprowadzonych w obiekcie podstawowym.

Reguły zapory i ustawienia parametrów są dziedziczone z serwera źródłowego do repliki podczas tworzenia repliki. Następnie reguły repliki są niezależne.

Zatrzymane repliki

Jeśli zatrzymasz replikację między serwerem źródłowym a repliką do odczytu, zatrzymana replika stanie się autonomicznym serwerem, który akceptuje zarówno operacje odczytu, jak i zapisu. Nie można ponownie utworzyć autonomicznego serwera w repliki.

Usunięte serwery źródłowe i autonomiczne

Po usunięciu serwera źródłowego replikacja zostanie zatrzymana do wszystkich replik do odczytu. Te repliki stają się automatycznie serwerami autonomicznymi i mogą akceptować zarówno operacje odczytu, jak i zapisu. Sam serwer źródłowy jest usuwany.

Konta użytkowników

Użytkownicy na serwerze źródłowym są replikowane do replik do odczytu. Można nawiązać połączenie tylko z repliką do odczytu przy użyciu kont użytkowników dostępnych na serwerze źródłowym.

Parametry serwera

Aby zapobiec utracie synchronizacji danych i ich możliwej utracie lub uszkodzeniu, aktualizacja niektórych parametrów jest zablokowana w przypadku korzystania z replik do odczytu.

Następujące parametry serwera są zablokowane zarówno na serwerach źródłowych, jak i replikowych:

Parametr event_scheduler jest zablokowany na serwerach repliki.

Aby zaktualizować jeden z powyższych parametrów na serwerze źródłowym, usuń serwery repliki, zaktualizuj wartość parametru na serwerze podstawowym i utwórz ponownie repliki.

Inne

  • Tworzenie repliki repliki nie jest obsługiwane.
  • Tabele w pamięci mogą spowodować, że repliki nie będą zsynchronizowane. Jest to ograniczenie technologii replikacji MariaDB.
  • Upewnij się, że tabele serwera źródłowego mają klucze podstawowe. Brak kluczy podstawowych może spowodować opóźnienie replikacji między źródłem a replikami.

Następne kroki