Я настроил свою базу данных SQL Server 2014 для резервного копирования в учетную запись хранения Azure. Я также включил уведомления по электронной почте через
EXEC msdb.smart_admin.sp_set_parameter
@parameter_name = 'SSMBackup2WANotificationEmailIds',
@parameter_value = 'd.hilgarth@fire-development.com'
Однако каждые 15 минут я получаю электронное письмо, в котором сообщается, что все в порядке. Я хочу получать электронное письмо только в случае возникновения проблемы.
Вопрос: Что мне нужно изменить, чтобы получать электронные письма только в случае ошибки?
Кстати: у меня есть сервер, который я настроил некоторое время назад с тем же сценарием это ведет себя так, как я хочу, поэтому я знаю, что это возможно. Но поскольку я использовал тот же сценарий, что и тогда, я не знаю разницы в конфигурации и не знаю, как это понять.
Электронные письма создаются заданием агента с именем «задание проверки работоспособности smartadmin». Насколько я могу судить, отменить действие команды невозможно:
EXEC msdb.managed_backup.sp_set_parameter
@parameter_name = 'SSMBackup2WANotificationEmailIds',
@parameter_value = 'MyEmail@MyDomain.com';
Вы не можете установить для @parameter_value значение NULL или пустую строку, иначе вы получите это хорошо конкретное и точное сообщение об ошибке:
Msg 45204, уровень 17, состояние 2, процедура sp_set_parameter, строка 18 [Batch Start Line 0] Параметр @parameter_value не может быть NULL или пустым. Укажите допустимое значение параметра.
Я также не нашел способа генерировать электронное письмо только в случае ошибок.
Похоже, вы поступаете правильно, но вполне возможно, что уведомления, которые появляются каждые 15 минут, поступают из другого процесса.
Как вы, скорее всего, нашли из этой статьи https://msdn.microsoft.com/en-us/library/dn449488(v=sql.120).aspx
«Включите уведомления по электронной почте, чтобы получать сообщения об ошибках и предупреждениях резервного копирования: из окна запроса выполните следующие инструкции Transact-SQL:»
EXEC msdb.managed_backup.sp_set_parameter
@parameter_name = 'SSMBackup2WANotificationEmailIds',
@parameter_value = '<email1;email2>'
Также на этой странице есть метод для получения всех запланированных событий уведомления:
-- View all events in the current week
Use msdb;
Go
DECLARE @startofweek datetime
DECLARE @endofweek datetime
SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP)
SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP)
EXEC smart_admin.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek;
Возможно ли, что уведомление, которое вы получаете каждые 15 минут, является частью другого запланированного уведомления, и что вы не получаете другое уведомление, потому что с резервной копией все в порядке?