2010-02-16 196 views
1

我有一个BizTalk服务器已经按照使用BizTalk日志传送实现的BizTalk灾难恢复说明进行了配置。SQL代理作业失败

Executed as user: DOMAIN\User. SQL Server Network Interfaces: Error getting enabled protocols list from registry [xFFFFFFFF]. [SQLSTATE 42000] (Error 65535) OLE DB provider "SQLNCLI10" for linked server "SQL01" returned message "Login timeout expired". [SQLSTATE 01000] (Error 7412) OLE DB provider "SQLNCLI10" for linked server "SQL01" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.". [SQLSTATE 01000] (Error 7412). The step failed.

此作业执行本地存储的过程,基本上是在执行另一个存储过程:

在备份SQL服务器,把它SQL02,“获取备份历史”的工作,下面的错误不断失败,一个名为SQL01的链接服务器。

当我SQL02在查询窗口中执行该存储过程:
EXEC [SQL01].[BizTalkMgmtDb_Prod].[dbo].[sp_GetBackupHistory]
它执行没有任何错误。

当SQL代理作业尝试执行相同的查询时,它会失败并显示上述错误。

为什么我可以手动执行该过程并且SQL代理作业不能?

回答

0

检查sql代理和sql实例用户应该拥有哪些权限,并且用户应该对每个实例都是公共的,或者必须拥有所有必需的权限。

在查询中,您通过拥有权限但sql代理用户没有它的用​​户连接(按照我的理解)。

检查您的sql服务器配置管理器检查用户服务的sql服务器。

+0

我将该作业的所有者作为未映射到sysadmin角色的域帐户。因此,该作业以该用户的身份执行(按照我的理解,尽管非常有限) 这可以在错误消息中看到; “以用户身份执行:DOMAIN \ User”。 如果我将所有者切换到帐户出现在邮件中的另一个帐户。 有趣的是,如果我将所有者切换到自己(该帐户,我可以运行手动查询为)它仍然失败,同样的错误! – ryancrawcour

2

我有这个相同的问题,并通过确保作业针对作业所有者可以访问的数据库运行来解决它。