Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да се справяме със сривовете на базата данни (Glassfish/MySQL)?

A) Уверете се, че сте конфигурирали Glassfish Connection Pool за автоматично възстановяване/повторно свързване

В конфигурацията на пула за връзки Glassfish JDBC задайте стойностите за:

  • Атрибути: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 jdbc-connection -Свойства на басейна
Glassfish Администратор - подкоманда create-jdbc-connection-pool

Стъпки:

  1. Ако приемем, че Glassfish работи (напр. стартиране на сървър в раздела Netbeans Services, като отворите сървъри и щракнете с десния бутон на Glassfish), тогава трябва да имате работещ сървър за администратор на домейн
  2. Отворете администраторската конзола в уеб браузър:http://localhost:4848 (или използвайте порта, който сте посочили по време на инсталацията.
  3. Отляво, под менюто Общи задачи, отворете Ресурси -> JDBC и щракнете върху JDBC Connection Pools
  4. Щракнете върху ИМЕТО на вашия пул за връзки (или създайте нов, като щракнете върху бутона Нов)
  5. Изберете раздел Разширени и въведете:
  6. Проверка най-много веднъж:(напр. 60) за секунди
  7. Опити за повторен опит за създаване:(напр. 3)
  8. Интервал за повторен опит:(напр. 10) в секунди
  9. Проверка на връзката:(отметка) Изисква се
  10. Метод на валидиране:(напр. автоматично извършване)
  11. Други разширени свойства по желание
  12. Изберете раздел Общи и въведете:
  13. Пинг (отметка)
  14. Други общи свойства по желание

B) Внедряване на обработка на грешки в приложението/мониторинг на база данни и сигнали

  1. Задължително:улавяне на фатални потребителски грешки на „на ниво инфраструктура“ и предупреждаване на персонала за поддръжка.

    Създайте прост JMX клас за изпращане на известие и извикайте неговия метод, когато възникне фатална грешка JMX MBean Class, който изпраща известия . Можете да използвате конзола за монитор на JMX, за да наблюдавате състоянието на сървърите - някои от тези конзоли изпращат известия по имейл (напр. JManage и RHQ) и има мостове за достъп от HTTP/AJax или други езици (напр. Jolokia може да използва javascript/perl/java API за достъп до JMX известия).

    Използвайте API на Google Календар за да изпратите съобщението за грешка до календара на google на екипа за поддръжка (1 или 2 минути в бъдеще). След това конфигурирайте календара на Google за изпращане на имейл/sms известия - ще изпрати предупреждение за грешка направо на екипа за поддръжка в почти реално време. Това е предмет на ограничения за използване на Google (ограничение за любезност от 10 000 заявки на ден, така че се уверете, че приложенията ви не са много бъгове и използвайте логика, за да ограничите броя на съобщенията, изпратени за час/ден/седмица)

  2. Желателно:наблюдавайте DB (и вероятно сървър на приложения) и предупреждавайте персонала за поддръжка за прекъсвания

    • Zabbix с отворен код има вграден mySQL мониторинг и предупреждение – лек е, но изисква настройка и конфигурация
    • Hyperic с отворен код има добавки за разширение за наблюдение на mySQL и вградено предупреждение – тежък е, може да бъде сложен за настройка и конфигуриране
    • Nagois с отворен код е по подразбиране за *nix OS – тежко е, може да бъде сложен за настройка и конфигуриране

    Във всички случаи настройката няма да се случи мигновено – най-добре е да се приложи като отделен мини проект и да се направи правилно – най-добре е да има помощен персонал, включен в това.

    Ако те са „извън обхвата“, създайте свой собствен прост монитор:

    • EJB таймер за стартиране на планирана проста тестова заявка към вашата БД – ако не успее, изпратете предупреждение (чрез API на JMX/Google Calendar/Java Mail/SMS Gateway). Или използвайте Quartz планировчик с отворен код, за да свършите същата работа


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Въведете моя php в mysql без повторение?

  2. python odo sql AssertionError:формата на данните трябва да е тип запис, има 0 * {...}

  3. Как да изтриете дубликати в SQL таблица въз основа на множество полета

  4. определяне на най-използвания набор от думи php mysql

  5. Свързано с PHP PDO:Актуализиране на SQL изявление, което не актуализира съдържанието на базата данни