SQL Server数据库邮件发送异常案例

最近遇到两起关于SQL Server数据库邮件发送异常的案例,这些问题也有点意思,顺便记录一下。方便以后遇到类似问题的人为这些问题抓狂!多提供一点思路。

案例1:我们一台数据库服务器突然发送邮件都不行了,出现问题时,检查邮件发送记录,你会发现发送状态都是failed。

SELECT * FROM msdb.dbo.sysmail_faileditems
 

SELECT * FROM msdb.dbo.sysmail_mailitems

检查Database Mail Log,你会发现有下面一些错误日志,具体如下所示:

由于邮件服务器故障,无法将邮件发送给收件人。 (使用帐户 1 (2017-03-22T00:01:26) 发送邮件。 异常邮件: 无法将邮件发送到邮件服务器。 (SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: 5.7.1 Client was not authenticated)。)

出现这个问题是因为在EXCHANGE服务器上的关于这台服务器的SMTP权限不知道什么原因被取消了,导致数据库使用sp_send_dbmail发送邮件时,客户端无法通过身份验证。这个找EXCHANGE的管理员增加SMTP权限即可解决。

案例2:使用SQLBackupAndFtp备份的一台数据库服务器也突然遭遇发送邮件失败,测试邮件发送时会遇到超时提示。这个原因,系统管理员帮忙找了好久,才发现是因为服务器上安装了Symantec的杀毒软件,他们在服务器端开启了Internet Email Auto-Protect功能。 导致Symante杀毒软件拦截SQLBackupAndFtp软件发送邮件。

时间: 2024-11-02 23:39:00

SQL Server数据库邮件发送异常案例的相关文章

应对黑客攻击SQL SERVER数据库中的一个案例

最近发现挂在网上server不知怎的,重新启动,那server现在主要是开始IIS服务,SQL SERVER 服务. 远程登录.发现系统响应十分缓慢.一个明显的停滞感,打开任务管理器,CPU在基本用法30%大约.打开事件查看器,大量的级别为信息来源为MSSQL$PNCSMS,事件ID为18456.任务类别为登录的记录.差点儿24小时不间断,每秒钟有15次个记录,每一个记录的内容大体同样,如"用户 'sa' 登录失败. 原因: 找不到与所提供的名称相匹配的登录名. [client: 60.191.

监控SQL Server数据库异常镜像状态发告警邮件

监控SQL Server数据库异常镜像状态发告警邮件 在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件.那么这个脚本需要在主和镜像服务器上都运行. 目录视图sys.database_mirroring对SQL Server实例上的每个数据库都包含一行(包括系统数据库和未配置镜像的数据库),当然也包含所有镜像数据库的状态信息.我们可以查询该目录视图,对于每个异常状态的镜像数据库触发告警邮件.笔者的环境配置的是异步镜像,依赖于手动故障转移. 前提条

SQL Server数据库设计规范

SQL Server数据库设计规范 出处:http://www.cnblogs.com/kingboy2008/ 数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的设计能够省去开发人员很多时间去区别数据库实体. 最近也因为工作需要所以整理出了这个word文档,望大家指正. 2数据库设计 数据库规划→需求分析→数据库设计→应用程序设计→实现→测试→运

SQL Server数据库镜像关键性能计数器

SQL Server数据库镜像关键性能计数器 监视数据库镜像基本有以下5种方法: 1. 配置数据库镜像监视器.设置告警阈值. 2. 配置WMI EVENT ALERT,配置镜像状态修改后的动作或告警. 3. 使用系统监视器查看关键性能计数器. 4. 部署作业监控异常镜像状态,发送告警. 5. 使用sp_dbmmonitorresults获取镜像数据. 当然,使用扩展事件和SQL Server Profiler也能监控到数据库事件中的数据库镜像状态修改.这种工具主要用于跟踪,而非监控的常规手段.

sql server数据库中raiserror函数的用法

server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror的常用格式如下:raiserror('错误的描述',错误的严重级别代码,错误的标识,错误的描述中的参数的值(这个可以是多个),一些其它参数),在官方上的格式描述如下: RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,a

6. SQL Server数据库监控 - 如何告警

原文:6. SQL Server数据库监控 - 如何告警 常用的告警方式大致有:短信.邮件.应用程序 (beep提示,图标提示,升窗提示等),可是不能一直坐在电脑前看着应用程序,或者用脚本部署监控,根本没有程序界面,所以通常用短信.邮件两种方式告警. 一. 告警方式 1. 短信 用程序发短信的方式一般有这两种: (1) 硬件 需要1张SIM卡,1个SIM卡读卡设备 (比如:短信猫),然后把设备连接到电脑,应用程序根据设备的软件接口,传参并发送短信.记得把SIM卡设备放在信号好,无干扰的地方: 如

使用数据库邮件发送会议邀请

http://social.microsoft.com/Forums/it-IT/3ba417d6-6548-48ed-9e9f-1a6549edc569 大家好,在此提供一个示例展示如何使用数据库邮件发送会议邀请.创建CLR 存储过程,用来生成.ics文件:1. 在 Visual Studio中,创建一个Visual C# SQL CLR Database Project,请看: 2. 添加一个数据库引用,请看: 3. 创建一个CLR存储过程,命名为CLROutLook,请看: 4. 使用Sy

SQL Server事务遭遇网络异常时的处理机制浅析

SQL Server数据库中,如果应用程序正在执行一个事务的时候突然遭遇了网络异常,例如网络掉包,网络中断等,那么这个事务会怎么样? SQL Server数据库是通过什么机制来判断处理呢? 估计很多人跟我一样都有不少疑问, 我们下面构造一个测试实验来测试验证一下.如下所示: 步骤1:在客户端连使用SSMS工具连接到测试数据库,执行下面脚本,显性事务既不提交也不回滚.模拟事务正在执行当中. USE AdventureWorks2012; GO SELECT @@SPID; BEGIN TRAN D

SQL Server 数据库定时自动备份(转载)

SQL Server 数据库定时自动备份 本文来源于转载:http://www.cnblogs.com/zhangq723/archive/2012/03/13/2394102.html 前提:在使用下面的备份方式之前需要确保你的Sqlserver Agent服务启动,切设置为自动启动.否则当你服务器重启了但是Agent服务没有启动,那么自动备份任务就不会执行 (一)使用TSql代码自动备份 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本