Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ważne kontrole stanu serwerów MySQL Source-Replica

W konfiguracji wysokiej dostępności (HA) źródła repliki MySQL ważne jest ciągłe monitorowanie kondycji serwerów źródłowych i replik, aby można było wykryć potencjalne problemy i podjąć działania naprawcze . W tym poście na blogu wyjaśniamy niektóre podstawowe kontrole kondycji, które można wykonać na węzłach źródłowych i replikach MySQL, aby upewnić się, że konfiguracja jest zdrowa. Program lub skrypt monitorujący musi ostrzegać platformę wysokiej dostępności w przypadku niepowodzenia dowolnej kontroli kondycji, umożliwiając ramom wysokiej dostępności podjęcie działań naprawczych w celu zapewnienia dostępności usługi.

Kontrole kondycji serwera źródłowego MySQL

Zalecamy, aby program lub skrypty do monitorowania źródła MySQL były uruchamiane w częstych odstępach czasu. Zakładając, że skrypt monitorujący działa na tym samym serwerze co serwer MySQL, możesz sprawdzić następujące elementy:

  1. Upewnij się, że usługa MySQL działa

    Można to zrobić za pomocą prostego polecenia, takiego jak:

    > pgrep mysqld

    LUB

    >service mysqld status
  2. Upewnij się, że możesz połączyć się z MySQL i wykonać proste zapytanie

    Zaleca się ustawienie krótkiego limitu czasu dla tych poleceń, aby można było szybko wykryć, czy MySQL nie odpowiada. Można to osiągnąć za pomocą połączenia takiego jak:

    /usr/bin/timeout 5 mysql -u testuser -ptestpswd -e 'select * from mysql.test’

    Pamiętaj, aby sprawdzić wartość wyjścia powyższego polecenia:

    wartość wyjścia=0 ⇒ Sukces

    Exit value=1 ⇒ Błąd

    Exit-value=124 ⇒ Limit czasu

    Jeśli komenda wygaśnie, oznacza to, że usługa MySQL nie reaguje wystarczająco. Radzimy spróbować ponownie po pewnym czasie, aby uniknąć fałszywie negatywnych wyników. Jeśli kod wyjścia wskazuje na awarię, kod powrotu z MySQL poinformuje nas o przyczynie niepowodzenia. Jednym z przykładów niepowodzenia jest błąd „Zbyt wiele połączeń” z MySQL, który ma miejsce, gdy liczba połączeń z serwerem przekracza wartość konfiguracyjną „max_connections”.

  3. Upewnij się, że źródło MySQL działa w trybie do odczytu i zapisu

    Możesz użyć następującego polecenia, aby upewnić się, że źródło MySQL działa w trybie do odczytu i zapisu:

    /usr/bin/timeout 5 mysql -u testuser -ptestpswd -e "SELECT @@global.read_only"

    Oczekuje się, że źródło zawsze będzie działać w trybie do odczytu i zapisu, dlatego wartość read_only powinna być „WYŁĄCZONA”.

    Możliwe jest również skojarzenie tego kroku z krokiem 2 i zamiast wykonywania zapytania testowego 'wybierz * z mysql.test, możemy po prostu wykonać zapytanie, aby uzyskać tylko do odczytu wartość.

Ważne kontrole stanu serwerów MySQL Source-ReplicaKliknij, aby tweetować

Kontrole kondycji serwera MySQL Replica

Możesz uruchomić monitorowanie swoich replik MySQL z mniejszą częstotliwością w porównaniu do źródła, ponieważ nie obsługują one zapisu danych. Pierwsze 3 kroki kontroli stanu repliki mogą być takie same jak w przypadku źródła, z wyjątkiem tego, że musimy upewnić się, że replika działa w trybie tylko do odczytu – wartość zmiennej tylko do odczytu powinna być „WŁ.” w kroku 3. .

Ponadto możemy przeprowadzić więcej kontroli repliki, aby upewnić się, że jej stan replikacji jest prawidłowy, na przykład:

  1. Replika jest skonfigurowana do replikacji z właściwego źródła.

  2. Połączenie repliki ze źródłem jest sprawne.

  3. Replika może zastosować otrzymane zdarzenia źródłowe.

Możliwe jest sprawdzenie wszystkich powyższych za pomocą polecenia „pokaż status repliki”. Na przykład:

mysql> show replica status \G;

*************************** 1. row ***************************

Replica_IO_State: Waiting for source to send event

Source_Host: 172.31.17.43

Source_User: repl_user

Source_Port: 3306

Connect_Retry: 10

Source_Log_File: mysql-bin.000001

Read_Source_Log_Pos: 7510

Relay_Log_File: relay-log.000006

Relay_Log_Pos: 414

Relay_Source_Log_File: mysql-bin.000001

Replica_IO_Running: Yes

Replica_SQL_Running: Yes

******************Truncated*********************************
  • Wartość Source_Host wskazuje, że serwer źródłowy jest skonfigurowany do replikacji.

  • W przypadku wartości Replica_IO_Running „Tak” wskazuje, że replika połączyła się ze źródłem i odbiera strumień replikacji.

  • W przypadku wartości Replica_SQL_Running „Tak” wskazuje, że aplikacja repliki działa i może zastosować wszystkie zdarzenia odebrane ze źródła.

W tym poście na blogu omówiliśmy kilka prostych testów, które mogą wykryć, czy występują podstawowe problemy na serwerach źródłowych i replikach MySQL. Ogólnie rzecz biorąc, mechanizm wykrywania awarii w konfiguracji wysokiej dostępności jest złożonym tematem i wymaga solidnej struktury wysokiej dostępności, za pomocą której należy wdrożyć monitorowanie kontroli stanu. Możesz dowiedzieć się więcej o szczegółach naszej struktury wysokiej dostępności w naszym Objaśnieniu platformy MySQL High Availability Framework – Część I:Wprowadzenie na blogu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. przyznaj zdalny dostęp do bazy danych MySQL z dowolnego adresu IP

  2. Uzyskaj dane wyjściowe bazy danych MySQL przez PHP do XML

  3. MySQL's now() +1 dzień

  4. Jak utworzyć nowego użytkownika i przyznać uprawnienia w MySQL

  5. Przerywanie bezczynnych połączeń mysql