У меня есть два экземпляра Sql Server 2005 с двумя копиями базы данных в конфигурации «Принципал» и «Зеркало».
Я хочу отправить кому-то электронное письмо всякий раз, когда происходит аварийное переключение, под этим я подразумеваю, что основная БД выходит из строя (по какой-либо причине), и поэтому две роли подкачки БД, зеркало становится основным (а принципал становится зеркалом).
Я уже настроил "Почту базы данных" и отправил тестовое сообщение, используя sp_send_dbmail успешно. Но я не знаю, как создать задание агента сервера Sql (или что-то еще, что будет работать), которое будет работать при отказе.
Я полагаю, что для этого можно было бы каким-то образом зацепиться за какое-то событие «О! Я был Зеркалом секунду назад, но я только что стал Принципалом» и заставить его выполнить sp_send_dbmail .
Кто-нибудь знает, как это сделать? Или лучший способ добиться этого?
Существует средство для предупреждения об отказе, отлично работает:
Я предполагаю, что у вас есть экземпляр-свидетель, чтобы обеспечить автоматическое переключение базы данных при сбое.
Я бы справился с этим, если бы на главном и зеркальном сервере была таблица, в которой хранится значение столбца «mirroring_role_description» из sys.database_mirroring, а затем задание агента SQL запускало сценарий, который выполняет следующие действия: