技术支持 桂林网站建设,园林景观设计公司需要什么资质,注册公司需要少钱,销售平台公司前言#xff1a;
大家好#xff0c;我是小小大世界#xff0c;初来乍到#xff0c;作为一名BI工作者#xff0c;一直想着通过某种方式记录自己成长的点点滴滴#xff0c;今天静下心来#xff0c;开始写一些自己工作中的经验。
正文#xff1a;
前几天看了几篇文章
大家好我是小小大世界初来乍到作为一名BI工作者一直想着通过某种方式记录自己成长的点点滴滴今天静下心来开始写一些自己工作中的经验。
正文
前几天看了几篇文章提到了如何使用报表服务器数据库创建触发器在报表刷新失败时自动发邮件通知心里想着这个功能挺实用的不需要整点去看报表是否成功刷新或者后台查报表的刷新日志。
不过进一步思考了一下大家都知道报表服务器报表多了之后若都是导入模式制作的报表难免要定时刷新但多张报表刷新时间相近就经常出现刷新失败的情况以往是同一张报表设置了多个计划刷新以保证第一次刷新失败后能够在下个计划时间刷新。如下
失败通知解决的刷新失败监控但如果在刷新失败后让数据库尝试再次刷新岂不美哉但又不能无限的失败刷新去循环因为这种情况肯定是你报表配置出问题了故我的思路如下
当作业失败后自动尝试再次刷新若一天内刷新失败两次以上包括两次则不再尝试自动刷新并以邮件通知管理员。
那么如何实现如上步骤呢脚本来了在报表服务器所在的数据库我是PowerBIReportServer系统默认名字在SubscriptionHistory表中创建更新触发器当初一直以为这个表是插入形式的结果他是先插入后更新把我绕了一大圈。 sql
CREATE TRIGGER [dbo].[RefreshFailurereport]
ON [dbo].[SubscriptionHistory]AFTER update
AS
BEGINSET NOCOUNT ON;
declare
b int,
c nvarchar(max),
d int
begin
select top(1) bStatus,csubscriptionid from Subscriptionhistory order by endtime desc
select dcount(subscriptionid) from Subscriptionhistory where subscriptionidc and Statusb and left(starttime,10)left(getdate(),10)
if (b 2 and d2)
begin
WAITFOR DELAY 0:0:10
exec [PowerBIReportServer].dbo.AddEvent --这边要注意换成你PowerowerBIshiyo所用的报表服务器数据库名
EventTypeDataModelRefresh,
EventDatac
end
else
if (b 2 and d2)
BEGIN EXEC msdb.dbo.sp_send_dbmail profile_name 配置名,--不知道的select [name] from [msdb].[dbo].[sysmail_profile]recipients 要发送的邮箱地址 , body , --邮件内容我这边没设置subject PowerBi Report Refresh fail,--邮件标题query NSELECT TOP 1[Path],left([LastStatus],19),[LastRunTime]FROM [PowerBIReportServer].[dbo].[Subscriptions] A0 WITH(NOLOCK)LEFT JOIN [PowerBIReportServer].[dbo].[Catalog] A1 WITH(NOLOCK)ON A0.Report_OID A1.ItemIDLEFT JOIN [PowerBIReportServer].[dbo].[Users] A2 WITH(NOLOCK)ON A0.OwnerID A2.UserIDwhere [EventType] DataModelRefreshand [LastStatus] Completed Data Refreshorder by lastruntime desc,--邮件内容展示的SQL我这边所展示的是XX文件夹XX报表失败时间attach_query_result_as_file 0, query_result_header 0,body_format HTML;
END
END
END
GO如上实现的效果就是想要的效果至于SQL SERVER的邮件怎么配置各位就自己百度一下很简单的。
最终测试了下作业满足我想要的要求两次刷新失败后自动发邮件给我
结语
第一次发文章各位可能有更好的方法欢迎和我交流今后也会抽时间记录各种工作中的问题和好的方法。 原文作者小小大世界
原文连接https://blog.csdn.net/qq_43291403/article/details/103913156