2016-04-26 248 views
0

我的数据库服务器似乎陷入某种恍惚状态。当我运行查询时,它运行良好。当我在maildb中运行相同的查询作为@query标记的一部分时,它会卡住。在sql server中清除数据库邮件队列

当我删除查询并发送一封空邮件时,邮件被阻塞在邮件队列中。

EXEC [MSDB].dbo.sp_send_dbmail @profile_name='Email Test', 
@recipients='[email protected]', 
@subject='Testing auto notification sql jobs. Please ignore', 
@body_format = 'TEXT', 
@body='hello' 

上面这行无理由卡住了。我使用“数据库邮件”中的“发送测试邮件”选项发送了一封邮件,该工作非常完美。所以,显然,实际的电子邮件发送过程没有任何问题。

delete from msdb.dbo.sysmail_unsentitems;

此行是刚刚从SQL服务器中运行的默认选项试图清除队列,甚至为此被卡住。

我不知道如何解决这个问题。我试过重新启动dbmail服务,但没有奏效。可悲的是,我无法重新启动整个SQL代理服务(正在进行生产)。

我想知道任何可能让我的服务器摆脱这种疯狂的东西。

回答

-1

编辑:

没关系。我发现了这个问题。表由于某种原因被锁定,而这又锁定了邮件服务。所以,我简单地杀死了由我开始的Activity Monitor中的所有进程。解决了表上的锁定问题,它再次运行良好。