Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak mogę dodać więcej niewolników do mojej konfiguracji replikacji MySQL bez powodowania problemów z wydajnością


Jak mogę dodać więcej niewolników do mojej konfiguracji replikacji MySQL bez powodowania problemów z wydajnością


Aby dodać więcej niewolników do konfiguracji replikacji MySQL bez powodowania problemów z wydajnością, rozważ przyjęcie wielowarstwowej architektury replikacji, a nie podłączenie wszystkich niewolników bezpośrednio z głównym źródłem. Gdy wielu niewolników łączy się bezpośrednio z pojedynczym źródłem, zwiększa obciążenie tego źródła ze względu na utrzymanie połączenia każdego niewolnika i źródło potrzebujące wysyłania danych dziennika binarnego do każdego z nich, które mogą stać się wąskim gardłem i wydajnością. Zamiast tego skonfiguruj hierarchicznie replikacji, aby powtórzyć podstawowe źródło do jednego lub kilku pośrednich replik, które następnie powtórzają się do reszty niewolników. Ta metoda zmniejsza liczbę bezpośrednich połączeń z pierwotnym i rozkłada ładowanie replikacji bardziej równomiernie na serwerach.

Repliki pośrednie muszą być skonfigurowane do samych logowania aktualizacji binarnych (z włączoną `log_slave_updates`), aby mogły służyć jako źródła dla replików niższych. Ta konfiguracja skutecznie tworzy łańcuch lub drzewo replikacji, co może znacznie poprawić wydajność i skalowalność.

Ponadto tryb replikacji odgrywa ważną rolę w wydajności i spójności danych. MySQL obsługuje tryby replikacji asynchronicznych i półsynchronicznych. Replikacja asynchroniczna pozwala serwerze podstawowego kontynuować transakcje bez czekania na niewolników, poprawiając przepustowość, ale być może powodując opóźnienie replikacji. Półsynchroniczna replikacja zapewnia, że ​​co najmniej jeden niewolnik potwierdza transakcję przed zobowiązaniem go, zwiększając spójność danych przy niewielkim koszcie opóźnienia. Dostosuj te ustawienia zgodnie z wymogami spójności i opóźnień aplikacji.

Aby jeszcze bardziej zoptymalizować, dostrajaj wątki replikacji na niewolnikach. Od MySQL 5.6 dalej obsługiwana jest replikacja wielowociorna, umożliwiając równolegle wielu wątków SQL na stosowanie zdarzeń dziennika przekaźnika. Może to zmniejszyć opóźnienie w replikacji, szczególnie gdy obciążenie obejmuje wiele różnych baz danych lub tabel, które mogą być przetwarzane niezależnie przez wiele wątków.

Kluczowa jest również konfiguracja we/wy dysku: umieść dzienniki przekaźników i pliki bazy danych na osobnych dyskach fizycznych, aby zminimalizować rywalizację we/wy. Może to pomóc niewolnikom nadążyć za strumieniem replikacji bardziej wydajnie.

W dużych środowiskach rozważ podzielenie odpowiedzialności, przekazując różne bazy danych lub tabele na różne repliki w celu zrównoważenia obciążenia i zapobiegania rywalizacji o dowolnej pojedynczej replice.

Dodając nowego niewolnika, ważne jest, aby poprawnie go zapewnić:

- Przypisz unikalny `server_id`, aby uniknąć konfliktów.
- Zainicjuj niewolnika za pomocą migawki lub kopii zapasowej danych podstawowych, aby upewnić się, że zaczyna się replikować ze spójnego punktu.
- Skonfiguruj niewolnika z szczegółami połączenia źródłowego i ustawieniami replikacji.
-Użyj opcji takich jak `--Skip-Slave-Start` podczas inicjalizacji, aby zapobiec przedwczesnemu uruchomieniu replikacji.
- Rozpocznij replikację po zakończeniu konfiguracji i monitoruj wszelkie opóźnienia lub błędy.

Wycofanie i przywracanie danych na temat nowych niewolników można wykonać przy użyciu narzędzi takich jak „MySqldump`, Percona Xtrabackup lub MySQL Clone wtyczka, w zależności od rozmiaru i tolerancji przestoju. Narzędzie Xtrabackup może tworzyć kopie zapasowe gorące bez blokowania źródłowej bazy danych, minimalizując przestoje.

W celu synchronizacji i początkowego równoważenia obciążenia narzędzia takie jak PT-Table-Sync mogą pomóc zapewnić spójność danych między głównym a niewolnikiem po przywróceniu.

Podsumowując, kluczowe strategie dodawania większej liczby niewolników bez degradacji wydajności obejmują:

- Użyj hierarchicznej topologii replikacji z replikami pośrednimi.
- Włącz `log_slave_updates` na replikach pośrednie.
- Wybierz między trybami replikacji asynchronicznej i półsynchronicznej w oparciu o spójność i potrzeby opóźnienia.
- Zastosuj replikację wielowociorną u niewolników.
- Zoptymalizuj we/wy, oddzielając dzienniki przekaźnika i pliki danych fizycznie.
- Rozkład obciążenia replikacji według segregacji bazy danych lub tabeli.
- Ostrożnie udostępnij nowych niewolników z unikalnymi identyfikatorami serwera i spójnymi migawkami.
- Użyj odpowiednich narzędzi do tworzenia kopii zapasowych i synchronizacji do wstępnej konfiguracji.
- Ciągle monitoruj opóźnienie i wskaźniki wydajności.

Takie podejście pomaga utrzymać skalowalną i wykonującą architekturę replikacji w miarę wzrostu liczby niewolników, unikając wąskich gardeł na podstawowym źródle i zapewniając wydajną przepustowość replikacji.

Szczegółowe praktyczne procedury tworzenia i zarządzania tym można znaleźć w oficjalnej dokumentacji MySQL i od doświadczonych dostawców usług MySQL, którzy specjalizują się w architekturach wysokiej dostępności i replikacji.