Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Verificações de integridade importantes para seus servidores de réplica de origem MySQL

Em uma configuração de alta disponibilidade (HA) de réplica de origem do MySQL, é importante monitorar continuamente a integridade dos servidores de origem e de réplica para que você possa detectar possíveis problemas e tomar ações corretivas . Nesta postagem do blog, explicamos algumas verificações básicas de integridade que você pode fazer na origem do MySQL e nos nós de réplica para garantir que sua configuração esteja íntegra. O programa ou script de monitoramento deve alertar a estrutura de alta disponibilidade caso alguma das verificações de integridade falhe, permitindo que a estrutura de alta disponibilidade tome ações corretivas para garantir a disponibilidade do serviço.

Verificações de integridade do servidor de origem MySQL

Recomendamos que seu programa ou scripts de monitoramento de origem do MySQL sejam executados em intervalos frequentes. Supondo que o script de monitoramento esteja sendo executado no mesmo servidor que seu servidor MySQL, você pode verificar o seguinte:

  1. Verifique se o serviço MySQL está em execução

    Isso pode ser feito usando um comando simples como:

    > pgrep mysqld

    OU
    >service mysqld status
  2. Certifique-se de que você pode se conectar ao MySQL e fazer uma consulta simples

    Recomendamos um tempo limite curto para esses comandos para que você possa detectar rapidamente se o MySQL não está respondendo. Isso pode ser alcançado a partir de uma chamada como:

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

    Certifique-se de examinar o valor de saída do comando acima:

    Valor de saída=0 ⇒ Sucesso

    Valor de saída=1 ⇒ Falha

    Exit-value=124 ⇒ Timeout

    Se o comando expirar, significa que o serviço MySQL não responde o suficiente. Aconselhamos que você tente novamente após algum tempo para evitar resultados falsos negativos. Se o código de saída indicar uma falha, o código de retorno do MySQL nos informará o motivo da falha. Um exemplo de falha é o erro 'Too many connections' do MySQL, que acontece se o número de conexões com o servidor exceder o valor de configuração 'max_connections'.

  3. Certifique-se de que a fonte do MySQL esteja sendo executada no modo de leitura/gravação

    Você pode usar o seguinte comando para garantir que a fonte do MySQL esteja sendo executada no modo de leitura/gravação:

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

    Espera-se que a fonte esteja sempre em execução no modo de leitura/gravação e, portanto, o valor de  read_only deve ser 'OFF'.

    Também é possível combinar este passo com o passo 2, e ao invés de fazer a consulta de teste 'select * from mysql.test, podemos apenas fazer a consulta para obter o read_only valor.

Verificações de integridade importantes para seus servidores de réplica de origem MySQLClique para tweet

Verificações de integridade do servidor de réplica MySQL

Você pode executar o monitoramento de suas réplicas do MySQL em uma frequência menor em comparação com a fonte, pois elas não estão manipulando gravações de dados. As três primeiras etapas da verificação de integridade da réplica podem ser as mesmas da origem, exceto que precisamos garantir que a réplica esteja sendo executada no modo somente leitura. O valor da variável read_only deve ser 'ON' na etapa 3 .

Além disso, podemos fazer mais verificações na réplica para garantir que seu status de replicação esteja íntegro, como:

  1. A réplica está configurada para replicar da fonte correta.

  2. A conexão da réplica com a fonte está íntegra.

  3. A réplica pode aplicar os eventos de origem que recebeu.

É possível verificar todos os itens acima usando o comando ‘show replica status’. Por exemplo:

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*********************************
  • O valor Source_Host indica que o servidor de origem está configurado para replicação.

  • Para o valor Replica_IO_Running, "Sim" indica que a réplica se conectou à origem e está recebendo o fluxo de replicação.

  • Para o valor Replica_SQL_Running , "Sim" indica que o aplicador da réplica está em execução e pode aplicar todos os eventos recebidos da origem.

Nesta postagem do blog, discutimos algumas verificações simples que podem detectar se há problemas básicos em seus servidores de origem e réplica do MySQL. Em geral, o mecanismo de detecção de falhas em uma configuração de alta disponibilidade é um assunto complexo e precisa de uma estrutura robusta de alta disponibilidade por meio da qual o monitoramento da verificação de integridade deve ser implementado. Você pode saber mais sobre os detalhes de nossa estrutura de alta disponibilidade em nosso MySQL High Availability Framework Explained - Part I:Introduction.