Как проверить доступность и работоспособность сферической базы данных на win-сервере?

Gallemar
Дата: 16.06.2017 10:25:54
как программно проверить доступность и абстрактной базы данных на win-сервере
ping сервера - доступен по сети
connect к бд - доступна база
select таблицы - доступна таблица
состояние службы сервера - запущена или нет.
Что пропустил?
Dima T
Дата: 16.06.2017 10:50:09
Никаких лишних действий не надо делать. Просто делаешь то что тебе надо (connect к бд), а дальше либо законнектишься, либо читай ошибку почему не удалось.
Тоже самое с таблицами: обращаешься, в случае ошибки обрабатывай ошибку.
scf
Дата: 17.06.2017 17:47:29
Gallemar
select таблицы - доступна таблица


Этого достаточно, всё остальное уже автоматизация поиска причины отказа.
Basil A. Sidorov
Дата: 18.06.2017 07:48:52
Gallemar
ping сервера - доступен по сети
... и не работает при неадекватных настройках файервола.
В локалке можно выкрутиться через ping+arp, но это - до первого шлюза.
Siemargl
Дата: 18.06.2017 09:58:39
Gallemar,

Универсальная система мониторинга Zabbix
https://habrahabr.ru/post/73338/
MasterZiv
Дата: 18.06.2017 21:55:59
Gallemar,

способ только один: установить соединение с сервером бд и выполнить запрос

select 1 from tak table where 1=2
mayton
Дата: 19.06.2017 00:48:30
Gallemar
как программно проверить доступность и абстрактной базы данных на win-сервере
ping сервера - доступен по сети
connect к бд - доступна база
select таблицы - доступна таблица
состояние службы сервера - запущена или нет.
Что пропустил?

1) Непонятен алгоритм принятия решения. Что будет если pinga нет?
Будем делать переход на шаг номер 2 и проверять коннект или останемся
в статусе аварии? Я встречал конфигурации где ICMP закрыт но сокеты
и порт БД вполне себе работоспособен.

2) Connect к БД. Это нужно мониторить но с умом. У нас был случай, когда
система мониторинга DDOS-ила БД или переполняла max_sessions. Вобщем
аккуратно. Если предыдущий поток с сокетом мониторинга подвисли - то
ни запускать новый поток пока старый гарантийно не закроет сокет.

3) select таблицы - Здесь ОК. Но я-бы добавил что это редкая диагностика.
Ее можно проверять 1 раз при старте апп-сервера. По сути это валидация
схемы. Тоесть валидны ли бизнес SQL объекты перед началом работы приложения.

4) состояние службы? Тут неяно. Что за служба имеется в виду? И как в пункте (1)
как принимать решение? Возможно (если это Windows) то службу все таки
свалить на сисадмина и озадачить его соотв. настройками перезапуска в случае
отказа и т.п.