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

Importanti controlli di integrità per i server di replica sorgente MySQL

In una configurazione ad alta disponibilità (HA) della replica di origine MySQL, è importante monitorare continuamente lo stato dei server di origine e di replica in modo da poter rilevare potenziali problemi e intraprendere azioni correttive . In questo post del blog, spieghiamo alcuni controlli di integrità di base che puoi eseguire sui tuoi nodi di origine e replica MySQL per assicurarti che la tua configurazione sia integra. Il programma o lo script di monitoraggio deve avvisare il framework di alta disponibilità nel caso in cui uno qualsiasi dei controlli di integrità non vada a buon fine, consentendo al framework di alta disponibilità di intraprendere azioni correttive al fine di garantire la disponibilità del servizio.

Controlli dello stato del server di origine MySQL

Ti consigliamo di eseguire il programma o gli script di monitoraggio del codice sorgente MySQL a intervalli frequenti. Supponendo che lo script di monitoraggio sia in esecuzione sullo stesso server del server MySQL, puoi verificare quanto segue:

  1. Assicurati che il servizio MySQL sia in esecuzione

    Questo può essere fatto usando un semplice comando come:

    > pgrep mysqld

    O

    >service mysqld status
  2. Assicurati di poterti connettere a MySQL ed eseguire una semplice query

    Ti consigliamo di avere un breve timeout per questi comandi in modo da poter rilevare rapidamente se MySQL non risponde. Questo può essere ottenuto da una chiamata come:

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

    Assicurati di esaminare il valore di uscita del comando precedente:

    Valore di uscita=0 ⇒ Successo

    Valore di uscita=1 ⇒ Fallimento

    Exit-value=124 ⇒ Timeout

    Se il comando scade, significa che il servizio MySQL non è sufficientemente reattivo. Ti consigliamo di riprovare dopo un po' di tempo per evitare falsi negativi. Se il codice di uscita indica un errore, il codice di ritorno di MySQL ci indicherà il motivo dell'errore. Un esempio di errore è l'errore "Troppe connessioni" di MySQL che si verifica se il numero di connessioni al server supera il valore di configurazione "max_connections".

  3. Assicurati che il sorgente MySQL sia in esecuzione in modalità lettura-scrittura

    Puoi usare il seguente comando per assicurarti che il sorgente MySQL sia in esecuzione in modalità di lettura-scrittura:

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

    La sorgente dovrebbe essere sempre in esecuzione in modalità di lettura-scrittura e, quindi, il valore di sola_lettura dovrebbe essere "OFF".

    È anche possibile associare questo passaggio al passaggio 2 e invece di eseguire la query di test 'select * da mysql.test, possiamo semplicemente eseguire la query per ottenere read_only valore.

Importanti controlli di integrità per i server di replica sorgente MySQLFai clic per twittare

Controlli dello stato del server di replica MySQL

Puoi eseguire il monitoraggio per le tue repliche MySQL a una frequenza inferiore rispetto all'origine, poiché non gestiscono le scritture dei dati. I primi 3 passaggi per il controllo dello stato della replica possono essere gli stessi dell'origine, tranne per il fatto che dobbiamo assicurarci che la replica sia in esecuzione in modalità di sola lettura - il valore della variabile read_only dovrebbe essere "ON" nel passaggio 3 .

Inoltre, possiamo eseguire più controlli sulla replica per assicurarci che lo stato della replica sia integro, come ad esempio:

  1. La replica è configurata per replicare dall'origine corretta.

  2. La connessione della replica all'origine è sana.

  3. La replica è in grado di applicare gli eventi di origine che ha ricevuto.

È possibile verificare tutto quanto sopra utilizzando il comando 'show replica status'. Ad esempio:

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*********************************
  • Il valore Source_Host indica che il server di origine è configurato per la replica.

  • Per il valore Replica_IO_Running, "Sì" indica che la replica si è connessa all'origine e sta ricevendo il flusso di replica.

  • Per il valore Replica_SQL_Running, "Sì" indica che l'applicatore della replica è in esecuzione ed è in grado di applicare tutti gli eventi ricevuti dall'origine.

In questo post del blog, abbiamo discusso alcuni semplici controlli che possono rilevare se ci sono problemi di base nei tuoi server di origine e replica MySQL. In generale, il meccanismo di rilevamento degli errori in una configurazione ad alta disponibilità è un argomento complesso e necessita di un solido quadro di alta disponibilità attraverso il quale dovrebbe essere implementato il monitoraggio del controllo dello stato. Puoi ulteriori informazioni sui dettagli del nostro framework ad alta disponibilità nel nostro post sul blog MySQL High Availability Framework - Parte I:Introduzione.