sql >> Databasteknik >  >> RDS >> Mysql

Viktiga hälsokontroller för dina MySQL Source-Replica Servers

I en MySQL-käll-replik med hög tillgänglighet (HA)-konfiguration är det viktigt att kontinuerligt övervaka tillståndet för käll- och replikservrarna så att du kan upptäcka potentiella problem och vidta korrigerande åtgärder . I det här blogginlägget förklarar vi några grundläggande hälsokontroller du kan göra på din MySQL-källa och replikanoder för att säkerställa att din installation är sund. Övervakningsprogrammet eller skriptet måste varna ramverket för hög tillgänglighet om någon av hälsokontrollerna misslyckas, vilket gör att ramverket för hög tillgänglighet kan vidta korrigerande åtgärder för att säkerställa tjänstens tillgänglighet.

MySQL Source Server Health Checks

Vi rekommenderade att ditt MySQL-källövervakningsprogram eller skript körs med täta intervall. Om du antar att övervakningsskriptet körs på samma server som din MySQL-server kan du kontrollera följande:

  1. Se till att MySQL-tjänsten körs

    Detta kan göras med ett enkelt kommando som:

    > pgrep mysqld

    ELLER

    >service mysqld status
  2. Se till att du kan ansluta till MySQL och göra en enkel fråga

    Vi rekommenderade att ha en kort timeout för dessa kommandon så att du snabbt kan upptäcka om MySQL inte svarar. Detta kan uppnås från ett samtal som:

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

    Se till att undersöka utgångsvärdet för kommandot ovan:

    Utgångsvärde=0 ⇒ Framgång

    Exit value=1 ⇒ Misslyckande

    Exit-value=124 ⇒ Timeout

    Om kommandot timeout betyder det att MySQL-tjänsten inte är tillräckligt responsiv. Vi rekommenderar att du försöker igen efter en tid för att undvika falskt negativa resultat. Om utgångskoden indikerar ett fel kommer returkoden från MySQL att berätta orsaken till felet. Ett exempel på ett misslyckande är felet "För många anslutningar" från MySQL som inträffar om antalet anslutningar till servern överskrider konfigurationsvärdet för "max_connections".

  3. Se till att MySQL-källan körs i läs-skrivläge

    Du kan använda följande kommando för att säkerställa att MySQL-källan körs i läs-skrivläge:

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

    Källan förväntas alltid köras i läs-skrivläge, och därför bör värdet för  read_only vara 'OFF'.

    Det är också möjligt att klubba detta steg med steg 2, och istället för att göra testfrågan 'select * från mysql.test, kan vi bara göra frågan för att få skrivskyddet värde.

Viktiga hälsokontroller för dina MySQL Source-Replica ServersKlicka för att tweeta

MySQL Replica Server Health Checks

Du kan köra övervakningen för dina MySQL-repliker med en lägre frekvens jämfört med källan, eftersom de inte hanterar dataskrivningar. De tre första stegen för din replikhälsokontroll kan vara desamma som för källan, förutom att vi måste se till att repliken körs i skrivskyddat läge – värdet på variabeln read_only ska vara 'ON' i steg-3 .

Dessutom kan vi göra fler kontroller av repliken för att säkerställa att dess replikeringsstatus är sund, till exempel:

  1. Repliken är konfigurerad att replikera från rätt källa.

  2. Replikens koppling till källan är sund.

  3. Repliken kan tillämpa källhändelserna den har tagit emot.

Det är möjligt att kontrollera allt ovan med kommandot "visa replikstatus". Till exempel:

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*********************************
  • Värdet Source_Host anger att källservern är konfigurerad för replikering.

  • För värdet Replica_IO_Running anger "Yes" att repliken har anslutit till källan och tar emot replikeringsströmmen.

  • För värdet Replica_SQL_Running anger "Yes" att replikans appliator körs och kan tillämpa alla händelser som tas emot från källan.

I det här blogginlägget diskuterade vi några enkla kontroller som kan upptäcka om det finns grundläggande problem i din MySQL-källa och replikservrar. I allmänhet är feldetekteringsmekanismen i en konfiguration med hög tillgänglighet ett komplext ämne och behöver ett robust ramverk med hög tillgänglighet genom vilket hälsokontrollövervakning ska implementeras. Du kan läsa mer om detaljerna om vårt ramverk för hög tillgänglighet i vårt MySQL High Availability Framework Explained – Del I:Introduktionsblogginlägg.


  1. Cross Domain SQL Server-inloggningar med Windows-autentisering

  2. Postgis installation:typ geometri existerar inte

  3. Ordna genom att använda en parameter för kolumnnamnet

  4. Hur får man sista dagen i förra veckan i sql?