我想访问另一个SQL Server,通过存储过程导入和更新该服务器数据库的数据。
为此,我使用sp_addlinkedserver
创建了链接服务器。
EXEC sp_addlinkedserver
@server = N'LINKEDSERVER'
,@srvproduct=N''
,@provider=N'SQLOLEDB'
,@datasrc=N'[DB-Instance.cuprxxxlj.ap-xxxxxxx-x.rds.amazonaws.com]';
然后尝试通过SQL查询访问
SELECT *
FROM [LINKEDSERVER].[DATABASE].[dbo].[TABLE]
收到错误,如
OLE DB提供程序" SQLNCLI11"对于链接服务器" LINKEDSERVER"返回消息"登录超时已过期"。
OLE DB提供程序" SQLNCLI11"对于链接服务器" LINKEDSERVER"返回消息"建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确以及SQL Server是否配置为允许远程连接。有关详细信息,请参阅SQL Server联机丛书。"。
Msg 53,Level 16,State 1,Line 0
命名管道提供程序:无法打开与SQL Server的连接[53]。
我在亚马逊服务器上创建了数据库实例,另一个也在亚马逊服务器上,两者都可以公开访问,但我不知道为什么我会Server is not found or not accessible
。我是否遗漏了任何服务器站点设置或其他内容?
如果我的方向错误,请指导我。
答案 0 :(得分:1)
我找到了答案。问题是一个实例,我创建了“Amazon RDS for SQL Server”,目前不支持“链接服务器”。
因此,我为Windows Server 2012 R2创建了一个新的AWS EC2实例,然后在其中创建了Linked服务器并尝试远程评估。现在我的工作正常。
以下是在AWS上运行SQL Server链接服务器的详细document
感谢。
答案 1 :(得分:0)
也许尝试更改超时设置?
sp_configure 'remote query timeout', 0
go
reconfigure with override
go