SQL 2008-数据库邮件问题

SQL 2008-数据库邮件问题

我有两个 SQL Server 2008 实例。一个是从 SQL Server 2000 升级而来,另一个是全新安装的。这两个实例运行在同一群集的不同节点上,尽管我曾尝试将它们放在同一节点上,但结果相同。

SQL Mail 在两个实例上都能完美运行。

DB Mail 在新安装的实例上完美运行。

在升级后的实例上,DB Mail 不会发送任何邮件。当然,我不确定此实例升级是否与此问题有关,但可能有关系。

我的数据库邮件配置文件和帐户的配置与我的运行实例完全相同。在 SQL 代理属性的“警报”选项卡的配置中,我尝试同时选择 DB 邮件和 SQL 邮件,但无济于事。两个实例都使用相同的 SMTP 服务器和相同的身份验证(具有数据库引擎帐户的域)。

通过 sp_send_db mail 发送的所有消息以及通过“测试电子邮件”选项发送的消息在 sysmail_allitems 队列中可见,并保留为“未发送”。send_status 最终更改为“失败”。

sysmail_event_log 中唯一的消息是“邮件队列由登录域 \myuser 停止”,“邮件队列由登录域/myuser 启动”和“激活成功”。

从 externalmailqueue 中选择的行数与 sysmail_allitems 相同。我已尝试反弹代理、整个实例并将其他运行实例移动到集群中的另一个节点。

有什么想法吗?谢谢。

答案1

您的 SMTP 服务器是否根据 IP 控制对自身的访问?您是否可以从数据库发送测试消息并从错误日志中发布结果或错误?

答案2

我认为 SMTP 服务器只是基于凭证而非 IP 进行控制。两个实例都使用相同的凭证。

SQL ERRORLOG 中没有显示任何内容。以下是 Win 事件查看器中的消息:连接时出现错误。原因:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:SQL 网络接口,错误:26 - 定位指定的服务器/实例时出错),连接参数:服务器名称:vnn\instance,数据库名称:msdb 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:SQL 网络接口,错误:26 - 定位指定的服务器/实例时出错)

我不明白为什么 db mail 无法连接到它正在运行的实例。

答案3

我没有具体的答案,但我可以提供一些我用来调试 DB Mail 的东西的信息。防病毒软件和垃圾邮件过滤器经常会成为问题。确保服务器上没有任何防病毒软件阻止 DB Mail 发送电子邮件,并确保邮件没有被垃圾邮件过滤器阻止。

我还建议使用 telnet 或者类似SMTP诊断以确保这不是 SMTP 连接问题。

将数据库邮件日志更改为详细日志也很有用。为此,请进入 SQL Server Management Studio,右键单击数据库邮件并选择“配置数据库邮件”。在“配置数据库邮件”向导中选择“查看或更改系统参数”。将有一个选项可以设置日志级别,将其设置为详细。这将为您提供数据库邮件日志的更多详细信息。解决问题后,您需要将其改回较低的日志级别。

如果您认为问题与 msdb 数据库有关,那么我建议针对 msdb 数据库运行 SQL Server Profiler 跟踪。确保包含审核登录失败事件。在跟踪运行时,尝试发送带有数据库邮件的测试电子邮件。

相关内容