SSRS 2019 如何补跑共享计划停机期间漏执行的所有关联报表
报表共享计划停机暂停+维护后补跑漏执行报表实操方案
维护前禁用操作(决定后续能不能顺利补跑的前提)
别上来就改计划时间、删计划,这么操作系统不会留存漏跑记录,后续根本找不齐要补的任务:
- 找到对应报表共享计划的配置页,直接把计划状态切为禁用/暂停就行,原有执行周期、触发时间、绑定的报表关联关系全不要动
- 这个状态下系统会自动拦住停机时段的报表触发请求,同时会完整记录所有符合原计划规则、本该在窗口期跑的任务点位,不会丢记录
维护完成后的补跑操作
分两种场景处理:
- 如果你用的报表平台(SSRS、Power BI Report Server、FineReport、永洪BI等主流平台都自带这个功能)原生支持漏跑补全:
- 先别着急启用计划,找到计划配置里的错过计划执行后自动补跑选项,勾选后把补跑时间范围设成整个维护停机窗口(从你禁用计划的时间点到当前准备启用的时间点)
- 保存配置后再把共享计划切回启用状态,系统会自动扫出这段时间里所有绑在这个计划上、没跑成功的报表,按默认调度顺序自动补跑
- 如果你的报表平台没有自动补跑功能,按下面步骤手动操作:
- 先从平台调度日志里拉清单:直接查平台的底层存储库就行,比如SSRS查
ReportServer库,关联Schedule、Subscriptions、ExecutionLogStorage三张表,筛出禁用时段内状态为「未执行/调度拦截」的所有任务,记清楚每个任务对应的报表路径、执行参数、原计划执行时间 - 给拉出来的任务排执行顺序:先跑依赖底层原始数据的明细报表,再跑依赖明细结果的汇总类报表,别上来全量触发,不然上层报表会因为底层数据没生成跑出错误结果
- 可以批量建临时一次性调度,或者调用平台自带的报表执行接口,按排好的顺序依次触发,执行参数要和原计划配置完全一致,别改参数导致结果不对
- 全跑完之后对着之前拉的清单核对执行日志,没跑成功的单独排查重跑就行
- 先从平台调度日志里拉清单:直接查平台的底层存储库就行,比如SSRS查
注意:补跑尽量选业务低峰期操作,大量报表同时跑会占数据库计算、存储资源,容易影响正常业务访问;要是有些报表时效性极强(比如小时级的实时运营报表,过了时间点补跑的结果已经没有业务参考价值),提前从补跑清单里删掉,别浪费资源。
内容的提问来源于stack exchange,提问作者ext_uptick
相关产品推荐
相关产品推荐

