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

Hvordan håndterer man databasenedbrud (Glassfish/MySQL)?

A) Sørg for, at du konfigurerer Glassfish Connection Pool til automatisk gendannelse/genforbindelse

I Glassfish JDBC-forbindelsespuljekonfigurationen skal du indstille værdierne for:

  • Attributter:is-connection-validation-required, validate-atmost-once-period-in-seconds, connection-creation-retry-attempts, connection-validation-method, connection-creation-retry-interval-in-seconds, ping

Glassfish-konfiguration jdbc-connection -pool-egenskaber
Glasfisk Admin - create-jdbc-connection-pool underkommando

Trin:

  1. Forudsat at Glassfish kører (f.eks. start serveren i Netbeans Services-fanen ved at åbne Servere og højreklikke på Glassfish), så burde du have Domain Admin Server kørende
  2. Åbn administrationskonsollen i webbrowser:http://localhost:4848 (eller brug den port, du har angivet under installationen.
  3. Til venstre, under menuen Almindelige opgaver, åbn Ressourcer -> JDBC og klik på JDBC-forbindelsespuljer
  4. Klik på din forbindelsespool POOL NAVN (eller opret en ny ved at klikke på knappen Ny)
  5. Vælg fanen Avanceret og Enter:
  6. Valider højst én gang:(f.eks. 60) på sekunder
  7. Forsøg på oprettelse igen:(f.eks. 3)
  8. Forsøgsinterval:(f.eks. 10) i sekunder
  9. Forbindelsesvalidering:(afkryds) påkrævet
  10. Valideringsmetode:(f.eks. auto-commit)
  11. Andre avancerede egenskaber efter ønske
  12. Vælg fanen Generelt og Enter:
  13. Ping (Tick)
  14. Andre generelle egenskaber efter ønske

B) Implementer applikationsfejlhåndtering / DB-overvågning og advarsler

  1. Obligatorisk:Fæld fatale brugerfejl på "infrastrukturniveau" og alarmer supportpersonalet.

    Opret en simpel JMX-klasse for at sende en notifikation og kalde dens metode, når der opstår en fatal fejl JMX MBean Class som sender meddelelser . Du kan bruge en JMX-skærmkonsol til at observere servernes tilstand - nogle af disse konsoller sender e-mail-advarsler (f.eks. JManage og RHQ), og der er broer til adgang fra HTTP/AJax eller andre sprog (f.eks. Jolokia kan bruge javascript/perl/java API til at få adgang til JMX-meddelelser).

    Brug Google Calendar API for at sende fejlmeddelelsen til supportpersonalets Google-kalender (1 eller 2 minutter ude i fremtiden). Konfigurer derefter google kalender til at sende e-mail/sms notifikationer - vil give fejladvarsel direkte til supportpersonalet i næsten realtid. Dette er underlagt Googles brugsbegrænsninger (en høflighedsgrænse på 10.000 forespørgsler om dagen, så sørg for, at dine apps ikke er super buggy, og brug logik til at begrænse antallet af meddelelser, der sendes på en time/dag/uge)

  2. Ønskeligt:​​Overvåg DB (og sandsynligvis app-server) og advare supportpersonale om udfald

    • Zabbix open source har indbygget mySQL-overvågning og alarmering - er let, men kræver opsætning og konfiguration
    • Hyperisk open source har udvidelsesplugins til mySQL-overvågning og indbygget alarmering - er tung, kan være kompleks at opsætte og konfigurere
    • Nagois open source er standard for *nix OS'er - er tung, kan være kompleks at konfigurere og konfigurere

    I alle tilfælde vil opsætningen ikke ske med det samme - bedst at implementere som et separat miniprojekt og gøre det rigtigt - bedst at have supportpersonale involveret i dette.

    Hvis disse er "uden for rækkevidde", så lav din egen simple skærm:

    • En EJB-timer til at køre planlagt simpel testforespørgsel mod din DB - hvis den mislykkes, send en advarsel (via JMX/Google Calendar/Java Mail/SMS gateway API). Eller brug Quartz open source-planlægger til at udføre det samme job


  1. CONVERT() i SQL Server

  2. to ord og tomme mellemrum fungerer ikke i MYSQL-forespørgsel ved hjælp af LIKE

  3. java.sql.SQLException:Ingen passende driver fundet til localhost-testen

  4. mysql load testværktøjer