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

Como lidar com falhas de banco de dados (Glassfish/MySQL)?


A) Certifique-se de configurar o Glassfish Connection Pool para recuperação/reconexão automática

Na configuração do pool de conexão Glassfish JDBC, defina os valores para:
  • Atributos:is-connection-validation-required, validate-atmost-once-period-in-seconds, connection-creation-retry-attempts, connection-validation-method, connection-creation-retry-interval-in-seconds, ping

Configuração do Glassfish jdbc-connection -propriedades da piscina
Glassfish Admin - subcomando create-jdbc-connection-pool

Passos:
  1. Supondo que o Glassfish esteja em execução (por exemplo, inicie o servidor na guia Serviços do Netbeans, abrindo Servidores e clicando com o botão direito do mouse em Glassfish), você deve ter o Servidor de administração de domínio em execução
  2. Abra o Admin Console no navegador da Web:http://localhost:4848 (ou use qualquer porta que você especificou durante a instalação.
  3. À esquerda, no menu Common Tasks, abra Resources -> JDBC e clique em JDBC Connection Pools
  4. Clique no nome do pool de conexões (ou crie um novo clicando no botão Novo)
  5. Selecione a guia avançada e digite:
  6. Validar no máximo uma vez:(por exemplo, 60) em segundos
  7. Tentativas de criação:(por exemplo, 3)
  8. Intervalo de repetição:(por exemplo, 10) em segundos
  9. Validação de conexão:(tick) obrigatório
  10. Método de validação:(por exemplo, confirmação automática)
  11. Outras propriedades avançadas conforme desejado
  12. Selecione a guia Geral e digite:
  13. Ping (tick)
  14. Outras propriedades gerais conforme desejado

B) Implementar tratamento de erros do aplicativo/monitoramento e alertas de banco de dados

  1. Obrigatório:interceptar erros fatais de usuários em "nível de infraestrutura" e alertar a equipe de suporte.

    Crie uma classe JMX simples para enviar uma notificação e chamar seu método quando ocorrer um erro fatal JMX MBean Class que envia notificações . Você pode usar um console de monitor JMX para observar o estado dos servidores - alguns desses consoles enviam alertas por e-mail (por exemplo, JManage e RHQ) e há pontes para acesso de HTTP/AJax ou outros idiomas (por exemplo, Jolokia pode usar a API javascript/perl/java para acessar notificações JMX).

    Use a API do Google Agenda para enviar a mensagem de erro para o calendário do google da equipe de suporte (1 ou 2 minutos no futuro). Em seguida, configure o calendário do Google para enviar notificações por e-mail/sms - fornecerá alerta de erro diretamente para a equipe de suporte quase em tempo real. Isso está sujeito às restrições de uso do Google (um limite de cortesia de 10.000 consultas por dia, portanto, certifique-se de que seus aplicativos não tenham muitos bugs e use a lógica para limitar o número de mensagens enviadas em uma hora/dia/semana)

  2. Desejável:monitore o banco de dados (e provavelmente o servidor de aplicativos) e alerte a equipe de suporte sobre interrupções
    • O código aberto Zabbix tem monitoramento e alertas mySQL embutidos - é leve, mas requer configuração e configuração
    • Hyperic open source tem plug-ins de extensão para monitoramento mySQL e alerta embutido - é pesado, pode ser complexo de configurar e configurar
    • O código aberto Nagois é o padrão para sistemas operacionais *nix - é pesado, pode ser complexo de configurar e configurar

    Em todos os casos, a configuração não acontecerá instantaneamente - é melhor implementar como um miniprojeto separado e fazer certo - é melhor ter uma equipe de suporte envolvida nisso.

    Se estiverem "fora do escopo", crie seu próprio monitor simples:
    • Um temporizador EJB para executar uma consulta de teste simples agendada em seu banco de dados - se falhar, envie um alerta (via JMX/Google Calendar/Java Mail/API de gateway SMS). Ou use o agendador de código aberto Quartz para fazer o mesmo trabalho