sql >> Database teknologi >  >> RDS >> Mysql

Vigtige sundhedstjek for dine MySQL-kilde-replikservere

I en MySQL-kilde-replik-høj tilgængelighed (HA) opsætning er det vigtigt løbende at overvåge tilstanden af ​​kilde- og replikaserverne, så du kan opdage potentielle problemer og træffe korrigerende handlinger . I dette blogindlæg forklarer vi nogle grundlæggende sundhedstjek, du kan udføre på din MySQL-kilde og replika-noder for at sikre, at din opsætning er sund. Overvågningsprogrammet eller scriptet skal advare rammerne for høj tilgængelighed, hvis nogen af ​​sundhedstjekket mislykkes, hvilket gør det muligt for rammerne for høj tilgængelighed at træffe korrigerende handlinger for at sikre servicetilgængelighed.

MySQL Source Server Health Checks

Vi anbefalede at dit MySQL-kildeovervågningsprogram eller scripts kører med hyppige intervaller. Forudsat at overvågningsscriptet kører på den samme server som din MySQL-server, kan du tjekke for følgende:

  1. Sørg for, at MySQL-tjenesten kører

    Dette kan gøres ved hjælp af en simpel kommando som:

    > pgrep mysqld

    ELLER

    >service mysqld status
  2. Sørg for, at du kan oprette forbindelse til MySQL og lave en simpel forespørgsel

    Vi anbefalede at have en kort timeout for disse kommandoer, så du hurtigt kan registrere, om MySQL ikke reagerer. Dette kan opnås fra et opkald som:

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

    Sørg for at undersøge exit-værdien for ovenstående kommando:

    Udgangsværdi=0 ⇒ Succes

    Udgangsværdi=1 ⇒ Fejl

    Exit-value=124 ⇒ Timeout

    Hvis kommandoen timeout, betyder det, at MySQL-tjenesten ikke reagerer nok. Vi råder dig til at prøve igen efter nogen tid for at undgå falske negative resultater. Hvis udgangskoden indikerer en fejl, vil returkoden fra MySQL fortælle os årsagen til fejlen. Et eksempel på en fejl er fejlen 'For mange forbindelser' fra MySQL, som opstår, hvis antallet af forbindelser til serveren overstiger din 'max_connections'-konfigurationsværdi.

  3. Sørg for, at MySQL-kilden kører i læse-skrivetilstand

    Du kan bruge følgende kommando til at sikre, at MySQL-kilden kører i læse-skrivetilstand:

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

    Kilden forventes altid at køre i læse-skrivetilstand, og derfor bør værdien af  read_only være 'OFF'.

    Det er også muligt at klubbe dette trin med trin 2, og i stedet for at udføre testforespørgslen 'select * fra mysql.test, kan vi bare lave forespørgslen for at få read_only værdi.

Vigtige sundhedstjek for dine MySQL-kilde-replikservereKlik for at tweete

MySQL Replica Server Health Checks

Du kan køre overvågningen for dine MySQL-replikaer med en mindre frekvens sammenlignet med kilden, da de ikke håndterer dataskrivninger. De første 3 trin til dit replika-sundhedstjek kan være det samme som for kilden, bortset fra at vi skal sikre, at replikaen kører i skrivebeskyttet tilstand - værdien af ​​variablen read_only skal være "ON" i trin-3 .

Desuden kan vi foretage flere kontroller af replikaen for at sikre, at dens replikeringsstatus er sund, f.eks.:

  1. Replikaen er konfigureret til at replikere fra den rigtige kilde.

  2. Replikaens forbindelse til kilden er sund.

  3. Replikaen er i stand til at anvende de kildebegivenheder, den har modtaget.

Det er muligt at tjekke for alt ovenstående ved at bruge kommandoen 'vis replikastatus'. For eksempel:

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*********************************
  • Source_Host-værdien angiver, at kildeserveren er konfigureret til replikering.

  • For værdien Replica_IO_Running angiver "Ja", at replikaen har oprettet forbindelse til kilden og modtager replikeringsstrømmen.

  • For Replica_SQL_Running-værdien angiver "Ja", at replikaens applier kører og er i stand til at anvende alle hændelser modtaget fra kilden.

I dette blogindlæg diskuterede vi nogle simple kontroller, der kan opdage, om der er grundlæggende problemer i din MySQL-kilde- og replikaservere. Generelt er fejldetektionsmekanismen i en opsætning med høj tilgængelighed et komplekst emne og har brug for en robust ramme for høj tilgængelighed, gennem hvilken overvågning af helbredstjek skal implementeres. Du kan få flere oplysninger om detaljerne om vores høj tilgængelighedsramme i vores MySQL High Availability Framework Explained – Del I:Introduktion blogindlæg.


  1. Fix:"BACKUP LOG kan ikke udføres, fordi der ikke er nogen aktuel database backup." i SQL Server/SQL Edge

  2. Forbindelsesstyring i PostgreSQL:En guide

  3. Hjælp venligst med at forbedre SQL Server-statistikker!

  4. Implementering af et certifikat til krypteret forbindelse SQL Server