Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie gehe ich mit Datenbankabstürzen um (Glassfish/MySQL)?

A) Stellen Sie sicher, dass Sie den Glassfish Connection Pool für die automatische Wiederherstellung/Wiederverbindung konfigurieren

Legen Sie in der Konfiguration des Glassfish JDBC-Verbindungspools die Werte fest für:

  • Attribute: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-Eigenschaften
Glasfisch Admin - Unterbefehl create-jdbc-connection-pool

Schritte:

  1. Angenommen, Glassfish wird ausgeführt (z. B. starten Sie den Server auf der Registerkarte "Netbeans-Dienste", indem Sie Server öffnen und mit der rechten Maustaste auf Glassfish klicken), dann sollte der Domänenverwaltungsserver ausgeführt werden
  2. Öffnen Sie die Admin-Konsole im Webbrowser:http://localhost:4848 (oder verwenden Sie den Port, den Sie während der Installation angegeben haben.
  3. Öffnen Sie links im Menü „Allgemeine Aufgaben“ Ressourcen -> JDBC und klicken Sie auf JDBC-Verbindungspools
  4. Klicken Sie auf den POOLNAMEN Ihres Verbindungspools (oder erstellen Sie einen neuen, indem Sie auf die Schaltfläche Neu klicken)
  5. Wählen Sie die Registerkarte „Erweitert“ und geben Sie Folgendes ein:
  6. Höchstens einmal validieren:(z. B. 60) in Sekunden
  7. Wiederholungsversuche bei der Erstellung:(z. B. 3)
  8. Wiederholungsintervall:(z. B. 10) in Sekunden
  9. Verbindungsvalidierung:(Häkchen) erforderlich
  10. Validierungsmethode:(z. B. Auto-Commit)
  11. Weitere erweiterte Eigenschaften nach Wunsch
  12. Wählen Sie die Registerkarte „Allgemein“ und geben Sie Folgendes ein:
  13. Ping (Häkchen)
  14. Weitere allgemeine Eigenschaften nach Wunsch

B) Implementierung von Anwendungsfehlerbehandlung / DB-Überwachung und Warnungen

  1. Obligatorisch:Fangen Sie schwerwiegende Benutzerfehler auf „Infrastrukturebene“ ab und benachrichtigen Sie das Support-Personal.

    Erstellen Sie eine einfache JMX-Klasse, um eine Benachrichtigung zu senden und ihre Methode aufzurufen, wenn ein schwerwiegender Fehler auftritt JMX MBean-Klasse, die Benachrichtigungen sendet . Sie können eine JMX-Monitorkonsole verwenden, um den Status von Servern zu beobachten – einige dieser Konsolen senden E-Mail-Warnungen (z. B. JManage und RHQ) und es gibt Brücken für den Zugriff von HTTP/AJax oder anderen Sprachen (z. B. Jolokia kann Javascript/Perl/Java-API verwenden, um auf JMX-Benachrichtigungen zuzugreifen).

    Verwenden Sie Google Kalender-API um die Fehlermeldung an den Google-Kalender des Support-Mitarbeiters zu senden (1 oder 2 Minuten in die Zukunft). Konfigurieren Sie dann den Google-Kalender so, dass E-Mail-/SMS-Benachrichtigungen gesendet werden – Fehlermeldungen werden nahezu in Echtzeit direkt an die Support-Mitarbeiter weitergeleitet. Dies unterliegt den Nutzungsbeschränkungen von Google (ein Kulanzlimit von 10.000 Abfragen pro Tag, stellen Sie also sicher, dass Ihre Apps nicht übermäßig fehlerhaft sind, und verwenden Sie eine Logik, um die Anzahl der Nachrichten zu begrenzen, die in einer Stunde/einem Tag/einer Woche gesendet werden)

  2. Wünschenswert:Überwachen Sie die DB (und wahrscheinlich den App-Server) und benachrichtigen Sie das Support-Personal über Ausfälle

    • Zabbix Open Source hat eine eingebaute mySQL-Überwachung und -Warnung – ist leicht, erfordert aber Einrichtung und Konfiguration
    • Hyperic Open Source hat Erweiterungs-Plug-ins für mySQL-Überwachung und eingebaute Benachrichtigungen – ist schwergewichtig, kann komplex einzurichten und zu konfigurieren sein
    • Nagois Open Source ist die Standardeinstellung für *nix-Betriebssysteme – ist schwergewichtig, kann komplex einzurichten und zu konfigurieren sein

    In allen Fällen wird die Einrichtung nicht sofort erfolgen - am besten als separates Miniprojekt implementieren und es richtig machen - am besten, wenn Support-Mitarbeiter daran beteiligt sind.

    Wenn diese "außerhalb des Geltungsbereichs" liegen, erstellen Sie Ihren eigenen einfachen Monitor:

    • Ein EJB-Timer, um geplante einfache Testabfragen gegen Ihre Datenbank auszuführen – wenn dies fehlschlägt, senden Sie eine Warnung (über JMX/Google Kalender/Java Mail/SMS-Gateway-API). Oder verwenden Sie den Quartz-Open-Source-Scheduler, um dieselbe Aufgabe zu erledigen