清除 sql 服务器中的数据库邮件队列
Clearing db mail queue in sql server
我的数据库服务器似乎陷入了某种恍惚状态。当我 运行 查询时,它 运行 没问题。当我 运行 与 maildb 中 @query
标记的一部分相同的查询时,它卡住了。
当我删除查询并发送空邮件时,它卡在了邮件队列中。
EXEC [MSDB].dbo.sp_send_dbmail @profile_name='Email Test',
@recipients='test@gmail.com',
@subject='Testing auto notification sql jobs. Please ignore',
@body_format = 'TEXT',
@body='hello'
上面这行无缘无故卡住了。我使用 "Database Mail" 中的 "Send a test mail" 选项发送了一封邮件,效果很好。所以,很明显,实际的邮件发送过程没有任何问题。
delete from msdb.dbo.sysmail_unsentitems;
这一行只是 运行 从 SQL 服务器尝试清除队列的默认选项,甚至这也会卡住。
我不知道如何解决这个问题。我尝试重新启动 dbmail 服务,但没有用。遗憾的是,我无法重新启动整个 sql 代理服务(投入生产的好处)。
我想知道任何可以让我的服务器摆脱这种疯狂状态的事情。
编辑:
没关系。我发现了问题。 Table 由于某种原因被锁定,进而锁定了邮件服务。所以,我简单地杀死了 Activity Monitor 中由我启动的所有进程。解决了 table 上的锁定,它再次运行良好。
我的数据库服务器似乎陷入了某种恍惚状态。当我 运行 查询时,它 运行 没问题。当我 运行 与 maildb 中 @query
标记的一部分相同的查询时,它卡住了。
当我删除查询并发送空邮件时,它卡在了邮件队列中。
EXEC [MSDB].dbo.sp_send_dbmail @profile_name='Email Test',
@recipients='test@gmail.com',
@subject='Testing auto notification sql jobs. Please ignore',
@body_format = 'TEXT',
@body='hello'
上面这行无缘无故卡住了。我使用 "Database Mail" 中的 "Send a test mail" 选项发送了一封邮件,效果很好。所以,很明显,实际的邮件发送过程没有任何问题。
delete from msdb.dbo.sysmail_unsentitems;
这一行只是 运行 从 SQL 服务器尝试清除队列的默认选项,甚至这也会卡住。
我不知道如何解决这个问题。我尝试重新启动 dbmail 服务,但没有用。遗憾的是,我无法重新启动整个 sql 代理服务(投入生产的好处)。
我想知道任何可以让我的服务器摆脱这种疯狂状态的事情。
编辑:
没关系。我发现了问题。 Table 由于某种原因被锁定,进而锁定了邮件服务。所以,我简单地杀死了 Activity Monitor 中由我启动的所有进程。解决了 table 上的锁定,它再次运行良好。