配置的 Azure 备份每 15 分钟向我发送一次运行状况检查报告

配置的 Azure 备份每 15 分钟向我发送一次运行状况检查报告

我将 SQL Server 2014 数据库配置为备份到 Azure 存储帐户。我还通过以下方式启用了电子邮件通知

EXEC msdb.smart_admin.sp_set_parameter
@parameter_name = 'SSMBackup2WANotificationEmailIds',
@parameter_value = '[email protected]'

但是,它会每 15 分钟给我发送一封电子邮件,告诉我一切正常。我只希望在出现问题时收到电子邮件。

问题:我需要做什么更改才能在发生错误时收到电子邮件?

顺便说一句:我有一台前段时间配置的服务器。使用相同的脚本其行为符合我的要求,所以我知道这是可行的。但由于我使用了与之前相同的脚本,因此我不知道配置有何不同,也不知道如何解决。

答案1

看起来你做的是正确的,但每 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 分钟收到一次的通知是否有可能是不同计划通知的一部分,而您没有收到其他通知是因为备份没有出现任何问题?

答案2

这些电子邮件是由名为“smartadmin 健康检查作业”的代理作业生成的。据我所知,没有办法逆转该命令的效果:

EXEC msdb.managed_backup.sp_set_parameter  
    @parameter_name = 'SSMBackup2WANotificationEmailIds', 
    @parameter_value = '[email protected]';

您不能将@parameter_value 设置为 NULL 或空字符串,否则您会收到这个非常具体且准确的错误消息:

消息 45204,级别 17,状态 2,过程 sp_set_parameter,第 18 行 [批处理启动第 0 行] 参数 @parameter_value 不能为 NULL 或为空。请提供有效的参数值。

我还没有找到仅在出现错误时生成电子邮件的方法。

相关内容