sql >> Databáze >  >> RDS >> Mysql

Důležité kontroly stavu vašich serverů MySQL se zdrojovými replikami

V nastavení vysoké dostupnosti (HA) zdrojové repliky (HA) MySQL je důležité neustále sledovat stav zdrojového a replikového serveru, abyste mohli odhalit potenciální problémy a podniknout nápravná opatření . V tomto příspěvku na blogu vysvětlujeme některé základní kontroly stavu, které můžete provést na zdrojovém a replikovém uzlu MySQL, abyste zajistili, že vaše nastavení je zdravé. Monitorovací program nebo skript musí upozornit rámec vysoké dostupnosti v případě, že některá z kontrol stavu selže, což umožní rámci vysoké dostupnosti přijmout nápravná opatření k zajištění dostupnosti služby.

Kontrola stavu zdrojového serveru MySQL

Doporučujeme, aby se váš program nebo skripty pro monitorování zdroje MySQL spouštěl v častých intervalech. Za předpokladu, že monitorovací skript běží na stejném serveru jako váš MySQL server, můžete zkontrolovat následující:

  1. Ujistěte se, že služba MySQL běží

    To lze provést pomocí jednoduchého příkazu jako:

    > pgrep mysqld

    NEBO

    >service mysqld status
  2. Ujistěte se, že se můžete připojit k MySQL a provést jednoduchý dotaz

    Doporučujeme pro tyto příkazy nastavit krátký časový limit, abyste mohli rychle zjistit, zda MySQL nereaguje. Toho lze dosáhnout například voláním:

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

    Nezapomeňte zkontrolovat výstupní hodnotu výše uvedeného příkazu:

    Výstupní hodnota=0 ⇒ Úspěch

    Hodnota ukončení=1 ⇒ Selhání

    Exit-value=124 ⇒ Timeout

    Pokud vyprší časový limit příkazu, znamená to, že služba MySQL dostatečně nereaguje. Doporučujeme vám to po nějaké době opakovat, abyste se vyhnuli falešně negativním výsledkům. Pokud výstupní kód indikuje selhání, návratový kód z MySQL nám sdělí důvod selhání. Jedním příkladem selhání je chyba „Too many connections“ z MySQL, ke které dojde, pokud počet připojení k serveru překročí vaši konfigurační hodnotu „max_connections“.

  3. Ujistěte se, že zdroj MySQL běží v režimu čtení i zápisu

    Můžete použít následující příkaz, abyste zajistili, že zdroj MySQL běží v režimu čtení i zápisu:

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

    Očekává se, že zdroj bude vždy spuštěn v režimu čtení i zápisu, a proto by hodnota  read_only měla být ‚OFF‘.

    Tento krok je také možné spojit s krokem 2 a namísto provádění testovacího dotazu „select * from mysql.test můžeme provést dotaz pouze pro čtení hodnotu.

Důležité kontroly stavu vašich serverů MySQL se zdrojovou replikou Kliknutím na Tweet

Kontrola stavu replikačního serveru MySQL

Sledování replik MySQL můžete spouštět s nižší frekvencí ve srovnání se zdrojem, protože nezpracovávají zápisy dat. První 3 kroky pro kontrolu stavu repliky mohou být stejné jako u zdroje, kromě toho, že musíme zajistit, aby replika běžela v režimu pouze pro čtení – hodnota proměnné read_only by v kroku 3 měla být „ON“ .

Kromě toho můžeme provést více kontrol repliky, abychom zajistili, že její stav replikace je v pořádku, například:

  1. Replika je nakonfigurována tak, aby se replikovala ze správného zdroje.

  2. Spojení repliky se zdrojem je zdravé.

  3. Replika je schopna použít zdrojové události, které přijala.

Vše výše uvedené je možné zkontrolovat pomocí příkazu ‚show replica status‘. Například:

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*********************************
  • Hodnota Source_Host označuje, že zdrojový server je nakonfigurován pro replikaci.

  • U hodnoty Replica_IO_Running „Ano“ znamená, že se replika připojila ke zdroji a přijímá replikační stream.

  • U hodnoty Replica_SQL_Running „Ano“ znamená, že je aplikace repliky spuštěna a může použít všechny události přijaté ze zdroje.

V tomto příspěvku na blogu jsme diskutovali o několika jednoduchých kontrolách, které dokážou odhalit, zda existují základní problémy ve vašem zdroji MySQL a replikačních serverech. Obecně platí, že mechanismus detekce selhání v nastavení vysoké dostupnosti je složitý předmět a vyžaduje robustní rámec vysoké dostupnosti, jehož prostřednictvím by mělo být implementováno monitorování stavu. Další informace o podrobnostech našeho rámce vysoké dostupnosti se můžete dozvědět v článku blogu MySQL High Availability Framework Explained – Part I:Introduction.


  1. Pracovníci Rails Resque selžou s PGError:server neočekávaně ukončil připojení

  2. 11 způsobů, jak najít duplicitní řádky, které mají primární klíč v Oracle

  3. Proč moje pesimistické zamykání v JPA s Oracle nefunguje

  4. 5 příznaků, že jste překonali Excel