SQL Server:链接服务器中的频繁登录超时过期

Shi*_*iva 7 sql-server linked-server jobs

我正在使用 SQL Server 2012。我安排了一个作业每 1 小时运行一次,其中 1 个步骤调用 1 个简单的存储过程。存储过程将大约 1K 数据从生产服务器迁移到我们的本地服务器。已成功建立链接服务器。存储过程中使用的查询如下所示。

SELECT ID,Col1,Col2,Col3,Col4,Col5 into #temp from [111.111.111.111].ProdServer.dbo.SourceTable

Insert into Localtable(ID,Col1,Col2,Col3,Col4,Col5)
SELECT ID,Col1,Col2,Col3,Col4,Col5
FROM #temp where ID NOT IN (select ID from Localtable)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

作业执行有时需要 25-30 秒才能成功执行。有时需要 48-50 秒导致失败。请参阅下面的失败消息和上面屏幕截图中的其他详细信息。

失败信息:

以用户身份执行:NT AUTHORITY\NETWORK SERVICE。命名管道提供程序:无法打开与 SQL Server [53] 的连接。[SQLSTATE 42000](错误 53)链接服务器“111.111.111.111”的 OLE DB 访问接口“SQLNCLI10”返回消息“登录超时已过期”。[SQLSTATE 01000](错误 7412)链接服务器“111.111.111.111”的 OLE DB 访问接口“SQLNCLI10”返回消息“与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或未找到可访问。检查实例名称是否正确,以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。”。[SQLSTATE 01000](错误 7412)。步骤失败。

更多细节

  • 该表被任何人锁定,并且没有在其上运行任何查询。
  • 在链接服务器属性中,查询超时和连接超时都设置为 0。
  • 在服务器属性远程查询超时也设置为 600 秒。

作为最后一个选项,我尝试将连接超时设置从默认值 15 更改为 6000 或更高。我无法实现它。请提出解决方案以成功执行我的预定作业,即使它需要 48 分钟或更长时间。

Right Click on server> Click on properties>Click view connection properties在左窗格中下的连接-看Connection Timeout Property

1 个新观察结果: 如果48 seconds运行需要或更多时间,作业就会失败。

Shi*_*iva 6

我在这里回答我自己的问题。经过在互联网上搜索的大量观察和实验,我找到了解决此问题的方法。你需要运行这个简单的查询

USE Yourdatabase;
GO
EXEC sp_configure 'remote query timeout', 0 ;
GO
RECONFIGURE ;
GO
Run Code Online (Sandbox Code Playgroud)

设置立即生效,无需重启服务器。

请参阅配置远程查询超时服务器配置选项sp_configure


小智 0

右键单击服务器,打开“服务器属性”,导航到“连接”并确保选中“允许远程连接到此服务器”。

另外,检查防火墙设置。

  • @pavinder 远程连接和防火墙设置不是问题。因为作业已经运行了几次。 (2认同)