Назад | Перейти на главную страницу

Отправка электронной почты при отказе в Sql Server 2005

У меня есть два экземпляра Sql Server 2005 с двумя копиями базы данных в конфигурации «Принципал» и «Зеркало».

Я хочу отправить кому-то электронное письмо всякий раз, когда происходит аварийное переключение, под этим я подразумеваю, что основная БД выходит из строя (по какой-либо причине), и поэтому две роли подкачки БД, зеркало становится основным (а принципал становится зеркалом).

Я уже настроил "Почту базы данных" и отправил тестовое сообщение, используя sp_send_dbmail успешно. Но я не знаю, как создать задание агента сервера Sql (или что-то еще, что будет работать), которое будет работать при отказе.

Я полагаю, что для этого можно было бы каким-то образом зацепиться за какое-то событие «О! Я был Зеркалом секунду назад, но я только что стал Принципалом» и заставить его выполнить sp_send_dbmail .

Кто-нибудь знает, как это сделать? Или лучший способ добиться этого?

Существует средство для предупреждения об отказе, отлично работает:

http://msdn.microsoft.com/en-us/library/cc966392.aspx

Я предполагаю, что у вас есть экземпляр-свидетель, чтобы обеспечить автоматическое переключение базы данных при сбое.

Я бы справился с этим, если бы на главном и зеркальном сервере была таблица, в которой хранится значение столбца «mirroring_role_description» из sys.database_mirroring, а затем задание агента SQL запускало сценарий, который выполняет следующие действия:

  1. Сравнивает текущее значение с сохраненным значением, отправляет электронное письмо в случае изменения
  2. Сохраняет текущее значение в таблице