我们有台DB服务器好久都不能通过数据库邮件发送邮件了,前段时间事情较多,加上影响也不是特别大,也就没有注意,正好昨天同事一说这事,就查一下吧
下面是检查过程
1. 检查配置SQL MAIL XPS是否开启
2. 检查日志
sql server和windows未发现异常日志
3. 检查邮件相关系统表
select *from msdb.dbo.sysmail_event_log,里面显示邮件队列启动和停止信息,没有其他信息
select * from msdb.dbo.sysmail_faileditems,没有发现发送失败项目
select * from msdb.dbo.sysmail_log,里面显示的是队列启动停止信息,没有其他异常信息
select * from msdb.dbo.sysmail_unsentitems,里面积累了很多天未发送的邮件
select sent_account_id,sent_status,sent_date,recipients,subject,body from msdb.dbo.sysmail_mailitems,发现邮件发送状态都是0,
4. 检查队列相关信息
msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail',发现邮件队列数量很大,并且状态都是INACTIVE
select * from sys.conversation_endpoints,可以找到很多状态是CONVERSING和mail相关的记录,和上面查到的数量相同
select * from sys.transmission_queue,次表中又没有相应的队列信息
5. 检查相关服务
AGENT,BROWSER服务都正常开启
没办法了,也不知道哪里有问题,按网上查的一些资料,一点一点试吧
1. 重新配置新的Profile和MailAccout,未解决
2. 重启Agent服务,未解决
3. 重启DBMail,未解决
4. 重启Browser服务,未解决
5. 清空未发送邮件等历史信息,未解决
6. 清空mail相关队列,未解决
7. 最后修改Browser的启动账号和SQL server、Agent一样,重启后问题解决
分析,可能是我们调整安全策略,之前Browser服务启动账号权限的问题导致处理队列异常