在SQL Server agent的日志中发现有大量错误的信息,都是关于作业执行失败的日志
从日志的内容来看,是作业执行过程中无法连接到存储引擎,
可奇怪的是,存储引擎就是本机,而且已经正常启动了,截图中隐去的内容就是服务器的名字,为何SQL Agent连接不到本机呢?
首先想的一个疑问是:会不会这个机器名对应的不是本机ip而且其他机器,所以连接不上呢?
于是我修改了hosts文件,将机器名映射给了127.0.0.1,且在ping 机器名后得到的结果也是127.0.0.1,然后重新运行作业,还是报错,悲剧,
那会不会是本机的SQL Agent无法识别机器名,而要用IP呢?
这个问题我不知道怎么验证,但我想了一个变通的方法,我在本机新建了一个UDL文件,发现了在连接标签的中用服务器主机名取连接数据库时,报同样的错误,也是找不到实例,但改成127.0.0.1或者”.”就好了,(备注:在SSMS中没有这个问题,不管是主机名还是IP,都可以访问数据库)
所以,可能是操作系统的环境出现异常,导致SQL Servr Agent和UDL都无法通过主机名去访问到存储引擎,
找到原因(不过不是根本原因)了,就开始着手解决问题,右击SQL Server代理服务,在属性中选择“连接”,然后将本地主机服务器别名(默认为空)修改为IP,点击确定后,重新运行作业,问题解决。
这个问题虽然得到解决了,但还是有两个疑问没有解决,敬请读者解答吧:
1.为什么SQL代理服务突然不能通过主机名访问存储引擎了
2.SSMS为什么又可以通过主机名和IP访问存储引擎呢,难道它跟代理服务访问数据库的方式不一样?
新闻热点
疑难解答