sql >> Database >  >> RDS >> Mysql

Hoe om te gaan met databasecrashes (Glassfish/MySQL)?

A) Zorg ervoor dat u Glassfish Connection Pool configureert voor automatisch herstel/opnieuw verbinden

Stel in de configuratie van de Glassfish JDBC-verbindingspool de waarden in voor:

  • Kenmerken: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-configuratie jdbc-connection -zwembad Eigenschappen
Glassfish Beheerder - subcommando create-jdbc-connection-pool

Stappen:

  1. Ervan uitgaande dat Glassfish actief is (bijv. start de server in Netbeans Services Tab, door Servers te openen en met de rechtermuisknop op Glassfish te klikken), dan zou de Domain Admin Server moeten draaien
  2. Open Admin Console in webbrowser:http://localhost:4848 (of gebruik de poort die je tijdens de installatie hebt opgegeven.
  3. Links, onder het menu Algemene taken, open je Bronnen -> JDBC en klik je op JDBC-verbindingspools
  4. Klik op de NAAM van uw verbindingspool (of maak een nieuwe door op de knop Nieuw te klikken)
  5. Selecteer het tabblad Geavanceerd en voer in:
  6. Maximaal één keer valideren:(bijv. 60) in seconden
  7. Aanmaakpogingen opnieuw:(bijv. 3)
  8. Interval opnieuw proberen:(bijv. 10) in seconden
  9. Verbindingsvalidatie:(vinkje) vereist
  10. Validatiemethode:(bijv. automatisch vastleggen)
  11. Andere geavanceerde eigenschappen naar wens
  12. Selecteer het tabblad Algemeen en voer in:
  13. Ping (vinkje)
  14. Andere algemene eigenschappen naar wens

B) Implementeren van toepassingsfoutafhandeling / DB-bewaking en waarschuwingen

  1. Verplicht:val fatale gebruikersfouten op "infrastructuurniveau" op en waarschuw ondersteunend personeel.

    Maak een eenvoudige JMX-klasse om een ​​melding te verzenden en roep de methode ervan aan wanneer een fatale fout optreedt JMX MBean Class die meldingen verzendt . U kunt een JMX-monitorconsole gebruiken om de status van servers te observeren - sommige van deze consoles sturen e-mailwaarschuwingen (bijv. JManage en RHQ) en er zijn bruggen voor toegang vanaf HTTP/AJax of andere talen (bijv. Jolokia kan javascript/perl/java API gebruiken om toegang te krijgen tot JMX-meldingen).

    Gebruik Google Agenda-API om het foutbericht naar de Google-agenda van het ondersteuningspersoneel te sturen (1 of 2 minuten in de toekomst). Configureer vervolgens Google Calendar om e-mail/sms-meldingen te verzenden - geeft een foutmelding rechtstreeks aan het ondersteunend personeel in bijna realtime. Dit is onderhevig aan Google-gebruiksbeperkingen (een servicelimiet van 10.000 zoekopdrachten per dag, dus zorg ervoor dat uw apps geen superbugs bevatten en gebruik logica om het aantal verzonden berichten per uur/dag/week te beperken)

  2. Gewenst:monitor DB (&waarschijnlijk app-server) en waarschuw ondersteuningspersoneel bij storingen

    • Zabbix open source heeft ingebouwde mySQL-monitoring en -waarschuwing - is lichtgewicht maar vereist installatie en configuratie
    • Hyperic open source heeft uitbreidingsplug-ins voor mySQL-monitoring en ingebouwde waarschuwingen - is zwaar, kan ingewikkeld zijn om in te stellen en te configureren
    • Nagois open source is de standaard voor *nix-besturingssystemen - is zwaar, kan ingewikkeld zijn om in te stellen en te configureren

    In alle gevallen zal de installatie niet onmiddellijk gebeuren - het beste om als een apart miniproject te implementeren en het goed te doen - het beste om ondersteunend personeel hierbij te betrekken.

    Als deze "buiten bereik" zijn, maak dan uw eigen eenvoudige monitor:

    • Een EJB-timer om een ​​geplande eenvoudige testquery uit te voeren op uw database - als dit niet lukt, stuur dan een waarschuwing (via JMX/Google Agenda/Java Mail/SMS-gateway-API). Of gebruik de open source-planner van Quartz om hetzelfde werk te doen


  1. Hoe Replace() werkt in SQLite

  2. Hoe u de nieuwste functies in Office 365 krijgt

  3. willekeurige getallen in java

  4. Wat is het DC2Type array-gegevenstype in mysql