Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak radzić sobie z awariami bazy danych (Glassfish/MySQL)?

A) Upewnij się, że skonfigurowałeś pulę połączeń Glassfish do automatycznego przywracania/ponownego łączenia

W konfiguracji puli połączeń Glassfish JDBC ustaw wartości dla:

  • Atrybuty: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 Konfiguracja połączenia jdbc -pool Właściwości
Glassfish Administrator — podkomenda create-jdbc-connection-pool

Kroki:

  1. Zakładając, że Glassfish jest uruchomiony (np. uruchom serwer na karcie usług Netbeans, otwierając serwery i klikając prawym przyciskiem myszy Glassfish), powinieneś mieć uruchomiony serwer administratora domeny
  2. Otwórz konsolę administracyjną w przeglądarce internetowej:http://localhost:4848 (lub użyj dowolnego portu, który określiłeś podczas instalacji.
  3. Po lewej stronie, w menu Typowe zadania, otwórz Zasoby -> JDBC i kliknij Pule połączeń JDBC
  4. Kliknij na nazwę puli połączeń (lub utwórz nową, klikając przycisk Nowa)
  5. Wybierz kartę Zaawansowane i Enter:
  6. Zatwierdź co najwyżej raz:(np. 60) w kilka sekund
  7. Próby ponownego utworzenia:(np. 3)
  8. Interwał ponownych prób:(np. 10) w sekundach
  9. Weryfikacja połączenia:(zaznaczenie) wymagane
  10. Metoda weryfikacji:(np. automatyczne zatwierdzanie)
  11. Inne zaawansowane właściwości zgodnie z potrzebami
  12. Wybierz kartę Ogólne i wprowadź:
  13. Ping (zaznacz)
  14. Inne właściwości ogólne zgodnie z potrzebami

B) Zaimplementuj obsługę błędów aplikacji / monitorowanie i alerty bazy danych

  1. Obowiązkowe:wyłapywanie krytycznych błędów użytkownika na poziomie infrastruktury i ostrzeganie personelu pomocniczego.

    Utwórz prostą klasę JMX, aby wysłać powiadomienie i wywołać jej metodę, gdy wystąpi błąd krytyczny Klasa JMX MBean, która wysyła powiadomienia . Możesz użyć konsoli monitora JMX do obserwowania stanu serwerów — niektóre z nich wysyłają alerty e-mail (np. JManage i RHQ) i istnieją mosty umożliwiające dostęp z HTTP/AJax lub innych języków (np. Jolokia może używać javascript/perl/java API do uzyskiwania dostępu do powiadomień JMX).

    Użyj interfejsu API Kalendarza Google aby wysłać wiadomość o błędzie do kalendarza Google personelu wsparcia (1 lub 2 minuty w przyszłość). Następnie skonfiguruj kalendarz Google tak, aby wysyłał powiadomienia e-mail/sms - powiadomienie o błędzie będzie wysyłane bezpośrednio do personelu pomocy technicznej w czasie zbliżonym do rzeczywistego. Podlega to ograniczeniom użytkowania Google (limit grzecznościowy wynoszący 10 000 zapytań dziennie, więc upewnij się, że Twoje aplikacje nie są bardzo błędne i używaj logiki, aby ograniczyć liczbę wiadomości wysyłanych w ciągu godziny / dnia / tygodnia)

  2. Pożądane:monitoruj bazę danych (i prawdopodobnie serwer aplikacji) i ostrzegaj personel pomocy technicznej o awariach

    • Zabbix open source ma wbudowane monitorowanie i alarmowanie MySQL - jest lekki, ale wymaga instalacji i konfiguracji
    • Hyperic open source ma wtyczki rozszerzające do monitorowania MySQL i wbudowanego ostrzegania - jest ciężki, może być skomplikowany w konfiguracji i konfiguracji
    • Otwarte źródło Nagois jest domyślne dla systemów *nix - jest ciężkie, może być skomplikowane w konfiguracji i konfiguracji

    We wszystkich przypadkach konfiguracja nie nastąpi natychmiast - najlepiej wdrożyć jako oddzielny mini projekt i zrobić to dobrze - najlepiej, aby zaangażować w to personel pomocniczy.

    Jeśli są one „poza zakresem”, utwórz własny prosty monitor:

    • Licznik czasu EJB do uruchomienia zaplanowanego prostego zapytania testowego w bazie danych — w przypadku niepowodzenia wyślij alert (za pośrednictwem interfejsu API JMX/Google Calendar/Java Mail/Brama SMS). Lub użyj harmonogramu open source Quartz, aby wykonać to samo zadanie


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Metoda haszowania hasła Mysql stara vs nowa

  2. Jak używać Regexp w poleceniach zamiany MySQL?

  3. Jak wygenerować fragment kodu podobny do wygenerowanego przez Google za pomocą PHP i MySQL?

  4. Wstaw pole identyfikatora wygenerowane przez wyzwalacz, ale nie przekazane dalej

  5. Jak skonfigurować i zalogować się jako użytkownik root w MySQL?