Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
Подскажите, что нужно сделать, чтоб при отказе (недоступности) БД приходило оповещение по сети, в котором будет указано время, дата и имя базы данных, которая "упала"?

Попытался в job по экспериментировать с уведомлениям и прочее, но ничего не вышло.
13 июл 15, 07:28    [17883981]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
Glory
Member

Откуда:
Сообщений: 104760
SAS2014
Подскажите, что нужно сделать, чтоб при отказе (недоступности) БД приходило оповещение по сети, в котором будет указано время, дата и имя базы данных, которая "упала"?

Причин недоступности базы может быть много. Начиная от незапущенного сервера и кончая отсутствием прав доступа
13 июл 15, 09:41    [17884220]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Если в рамках одного инстанса, в джобе можно проверять состояние базы как-то так:
IF NOT EXISTS(SELECT * FROM sys.databases D WHERE D.name = 'MyDB' AND user_access = 0 AND state = 0)
 RAISERROR(32007, -1, -1, 'MyDB');

А там либо через sp_send_db_mail, либо через нотификацию джоба, либо через алерт.
А если состояние инстанса или самого сервера проверять, то уже каким-то внешним процессом.
13 июл 15, 10:09    [17884325]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
Glory
SAS2014
Подскажите, что нужно сделать, чтоб при отказе (недоступности) БД приходило оповещение по сети, в котором будет указано время, дата и имя базы данных, которая "упала"?

Причин недоступности базы может быть много. Начиная от незапущенного сервера и кончая отсутствием прав доступа


Да тут другое, мне надо, чтоб при падение БД шло письмо или любое иное уведомление о том, что с БД произошло
14 июл 15, 03:30    [17888323]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Ну так проверяйте состояние базы с помощью запроса, который приведён выше, и если база недоступна, парсите лог SQl Server с помощью sys.xp_readerrorlog. Если найдёте подходящее сообщение, включите его в ваш емейл.
Поищите в документации типичные сообщения, чтобы написать фильтр для поиска строки с ошибкой.
Как-то так:
DECLARE @ErrorMessage nvarchar(4000);

IF OBJECT_ID('tempdb..#errorlog') IS NOT NULL
DROP TABLE #errorlog

CREATE TABLE #errorlog
(LogDate datetime, ProcessInfo sysname, Text nvarchar(max))

INSERT #errorlog 
EXEC sys.xp_readerrorlog 1, 1, N'error', N'MyDB'

SELECT TOP(1) @ErrorMessage =[Text] FROM #errorlog AS E
14 июл 15, 08:36    [17888474]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
Glory
Member

Откуда:
Сообщений: 104760
SAS2014
чтоб при падение БД

Что такое для вас "падение БД" ?
14 июл 15, 09:23    [17888606]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
Glory
SAS2014
чтоб при падение БД

Что такое для вас "падение БД" ?


Невозможно зайти в БД
15 июл 15, 04:12    [17893280]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
вообщем я сделал так
1. создал job в нем запрос на просмотр БД в экземпляре, дальше результат записывается в лог файл

пример лог файла
id_DB name_DB collection
1   1      data
2   2      data
3   3      data
4   4      (null)


2. это лог файл командой find просматривает файл на наличие (null) и если находит то батник отправляет текстовое сообщение по сети о том что база не доступна

Но вот проблема, если это батник запускать из командной строки то все ОК
а если отдельно батник, то поиск слова (null) зацикливается
Система Windows Server 2012 R2
15 июл 15, 04:19    [17893281]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
Jovanny
Ну так проверяйте состояние базы с помощью запроса, который приведён выше, и если база недоступна, парсите лог SQl Server с помощью sys.xp_readerrorlog. Если найдёте подходящее сообщение, включите его в ваш емейл.
Поищите в документации типичные сообщения, чтобы написать фильтр для поиска строки с ошибкой.
Как-то так:
DECLARE @ErrorMessage nvarchar(4000);

IF OBJECT_ID('tempdb..#errorlog') IS NOT NULL
DROP TABLE #errorlog

CREATE TABLE #errorlog
(LogDate datetime, ProcessInfo sysname, Text nvarchar(max))

INSERT #errorlog 
EXEC sys.xp_readerrorlog 1, 1, N'error', N'MyDB'

SELECT TOP(1) @ErrorMessage =[Text] FROM #errorlog AS E

спс
15 июл 15, 04:20    [17893282]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
Artny
Guest
SAS2014
Glory
пропущено...

Что такое для вас "падение БД" ?


Невозможно зайти в БД


Пользователь пнул сетевой шнур под столом, тот выпал из гнезда, пользователь не может зайти в бд. У него на весь экран сообщение "Невозможно зайти в БД!". Это для вас "падение БД" ?
15 июл 15, 04:56    [17893289]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
Artny
SAS2014
пропущено...


Невозможно зайти в БД


Пользователь пнул сетевой шнур под столом, тот выпал из гнезда, пользователь не может зайти в бд. У него на весь экран сообщение "Невозможно зайти в БД!". Это для вас "падение БД" ?


А причем тут пользователь?
Когда речь идет о администрирование БД
15 июл 15, 06:14    [17893323]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
o-o
Guest
А допустим какая-то процедура массово переключает (switch) уйму таблиц и стэйджинга (отдельная схема в той же базе) в dbo, переведя при этом базу в single_user.
Ваша проверка закончится неудачей, но и ошибки в еррорлоге не будет, это просто такое не всем доступное состояние базы.
Это к тому, что лог надо парсить не только на ошибки, бд может быть в restoring или в оффлайн штатно (у нас есть идиотская база, состоящая из вьюх, где объединены таблицы двух других баз, архивной и текущей), так на время рестора основной вьюховую базу в оффлайн переводят. И база недоступна, и ошибок нет, просто так задумано
15 июл 15, 07:02    [17893346]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
Glory
Member

Откуда:
Сообщений: 104760
SAS2014
А причем тут пользователь?

Ну так пользоваетль ведь не сможет "зайти в базу", если он выдернул сетевой шнур

SAS2014
Невозможно зайти в БД

Если нет прав "зайти в базу" то это значит, что "база упала" ?
15 июл 15, 09:40    [17893636]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
o-o
А допустим какая-то процедура массово переключает (switch) уйму таблиц и стэйджинга (отдельная схема в той же базе) в dbo, переведя при этом базу в single_user.
Ваша проверка закончится неудачей, но и ошибки в еррорлоге не будет, это просто такое не всем доступное состояние базы.
Это к тому, что лог надо парсить не только на ошибки, бд может быть в restoring или в оффлайн штатно (у нас есть идиотская база, состоящая из вьюх, где объединены таблицы двух других баз, архивной и текущей), так на время рестора основной вьюховую базу в оффлайн переводят. И база недоступна, и ошибок нет, просто так задумано


В данном случае ваш ответ только для ознакомления, но все же спс за инфу
16 июл 15, 08:46    [17897903]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
Glory
SAS2014
А причем тут пользователь?

Ну так пользоваетль ведь не сможет "зайти в базу", если он выдернул сетевой шнур

SAS2014
Невозможно зайти в БД

Если нет прав "зайти в базу" то это значит, что "база упала" ?

Права есть особе но у админов
16 июл 15, 08:47    [17897907]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг БД ....)))  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2970
Решение найдено все спс
16 июл 15, 08:47    [17897909]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить