你的位置:首页 > 数据库

[数据库]【案例分享】SQL job服务连接不到存储引擎


在SQL Server agent的日志中发现有大量错误的信息,都是关于作业执行失败的日志

clip_image002[5]

从日志的内容来看,是作业执行过程中无法连接到存储引擎,

可奇怪的是,存储引擎就是本机,而且已经正常启动了,截图中隐去的内容就是服务器的名字,为何SQL Agent连接不到本机呢?

首先想的一个疑问是:会不会这个机器名对应的不是本机IP而且其他机器,所以连接不上呢?

于是我修改了hosts文件,将机器名映射给了127.0.0.1,且在ping 机器名后得到的结果也是127.0.0.1,然后重新运行作业,还是报错,悲剧,

那会不会是本机的SQL Agent无法识别机器名,而要用IP呢?

这个问题我不知道怎么验证,但我想了一个变通的方法,我在本机新建了一个UDL文件,发现了在连接标签的中用服务器主机名取连接数据库时,报同样的错误,也是找不到实例,但改成127.0.0.1或者”.”就好了,(备注:在SSMS中没有这个问题,不管是主机名还是IP,都可以访问数据库)

clip_image004

所以,可能是操作系统的环境出现异常,导致SQL Servr Agent和UDL都无法通过主机名去访问到存储引擎,

找到原因(不过不是根本原因)了,就开始着手解决问题,右击SQL Server代理服务,在属性中选择“连接”,然后将本地主机服务器别名(默认为空)修改为IP,点击确定后,重新运行作业,问题解决。

clip_image006

这个问题虽然得到解决了,但还是有两个疑问没有解决,敬请读者解答吧:

1.为什么SQL代理服务突然不能通过主机名访问存储引擎了

2.SSMS为什么又可以通过主机名和IP访问存储引擎呢,难道它跟代理服务访问数据库的方式不一样?