在日志传送msdb.dbo.log_shipping_monitor_history_detail上被阻止,当我查看它的启动位置时,我只看到SQL Server日志传送引脚

Having blocking on logshipping msdb.dbo.log_shipping_monitor_history_detail, when I am looking where it is initiated I only see SQL Server log shippin

提问人:raja mangubat 提问时间:8/8/2023 最后编辑:marc_sraja mangubat 更新时间:8/9/2023 访问量:37

问:

我在日志传送上被阻止了,当我查看它的启动位置时,我只看到SQL Server日志传送。msdb.dbo.log_shipping_monitor_history_detail

完整的查询是

delete from msdb.dbo.log_shipping_monitor_history_detail 
where agent_id = @agent_id 
  and agent_type = @agent_type 
  and log_time_utc < @cutoff_time_utc 
  

这是日志传送的目标服务器,大多数数据库都处于备用/只读模式,大约有 30+ 个数据库在此日志传送上处于活动状态。

请参阅正在运行的查询和阻止查询的屏幕截图。

因为这个查询有很多阻塞,我看到其他工作正在等待工作人员。

我们尝试更改工作时间,但这似乎无关紧要。似乎正在不同的应用程序上调用清理查询,而不是在作业中调用

在此处输入图像描述

sql-server 日志传送

评论

0赞 Stuck at 1337 8/8/2023
此查询肯定来自sp_cleanup_log_shipping_history - 您确定没有正在运行的作业吗?还是多个?delete
0赞 Stuck at 1337 8/9/2023
(老实说,如果您有权访问调用此过程的工作步骤,我可能会对每个步骤进行注释,并编写您自己的步骤,无论代理 ID 如何,都可以单独删除特定年龄的历史记录,也许是分批删除。那么 30 个工作就不会相互竞争。
0赞 raja mangubat 8/9/2023
我没有看到任何与此步骤相关的作业运行。通常,当我使用sp_whoisactive时,我会看到运行此查询的作业,但是当我运行此作业时,我在程序上看到sql日志传送,因此我无法停止此作业
0赞 siggemannen 8/9/2023
这个东西是由 logshipping 运行的,我们用了很多,有时表会变得很大,如果你在同一计划中运行多个数据库,删除可能会相互阻止。我建议添加一些索引或提前一点进行自己的清理或更改,这样您就不会在同一尖齿上运行太多作业

答: 暂无答案