这里有
有三台实例A,B,C
版本:SQL SERVER 2005 SP3 64
A上有用户USER_A ;B上有USER_B;C上有USER_C
B和C 唯一区别就是,B不是默认实例,C是默认实例.
在A 上用USER_B建立链接服务器a->b 失败
在A 上用USER_C建立链接服务器a->c 成功
在b 上用USER_a建立链接服务器b->a 成功
在b 上用USER_c建立链接服务器b->c 成功
在c 上用USER_a建立链接服务器c->a 成功
在c 上用USER_b建立链接服务器c->b 成功
一句话就是,在A 上建立链接服务器,如果目标不是默认实例的话,就会失败.
提示如:链接服务器已创建单连接测试失败.是否要保留该链接服务器?
其它信息:
执行Transcact-SQL 语句或批处理时发生了异常.(Microsoft.SqlServer.ConnectionInfo)
命名管道提供程序:无法打开与SQL SERVER 的连接[53]。
链接服务器"TEST"的OLE DB 访问接口"SQLNCLI"返回了消息"登录超时已过期"
链接服务器"TEST"的OLE DB 访问接口"SQLNCLI"返回了消息"建立到服务器的连接时发生错误.
连接到SQL SERVER 2005时,默认设置 SQL SERVER 不允许远程连接这个事实可能会导致失败>"
(Microsoft SQL Server,错误:53)
另外提示,用UDL测试的话也是同样的结果
步骤为新建文本文件,改后缀名为UDL
提供程序:Microsft OLE DB Provider for SQL Server
连接:设置连接B相关参数.如果在A服务器上运行失败,但是如果COPY该UDL放在C上去运行,又能成功.太奇怪了
不知道大家有遇到过没有?
部分代码:
EXEC master.dbo.sp_addlinkedserver @server = N'192.168.0.2\DB_B', @srvproduct=N'ms', @provider=N'MSDASQL', @datasrc=N'192.168.0.2\DB_B'
.....
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'192.168.0.2\DB_B', @locallogin = NULL , @useself = N'False', @rmtuser = N'USER_B;', @rmtpassword = N'123'
GO
15 个解决方案
#1
B不是默认实例,
端口是啥
端口是啥
#2
SQL SERVER 不允许远程连接这个事实可能会导致失败
查查这个错误的解决方法
baidu下应该很多
查查这个错误的解决方法
baidu下应该很多
#3
我来学习了
#4
tcp/ip
#5
确实奇怪
#6
不是B的问题,因为C->B是可以连通的.B->A,C,也是通的.同理,我这里测了D,E,F,G,H,G.....
多个实例链接服务器,只要不是默认实例,A 就连不过去,但是B,C,D,E,F,G,H,G.....之间无论怎么组合都能成功.
#7
同时使用TCP/IP和named pipes
再换b的机器名试试
再换b的机器名试试
#8
都试过了,而且TCP/IP和named pipes都是N年以前都是启动的.
#9
telnet b的端口也都试了?
#10
TCP 是动态端口来着
#11
?
你在配置中设置端口下
#12
姥姥的,终于搞出来,谢谢各位,果然 是WINDOWS 防火墙的问,出了A 以外,其它的防火墙都是关闭,由于默认实例是1433端口,而防火墙是系统维护人员增加允许1433可以访问.但是动态端口就不允许访问了.
强制给非默认实例(群集环境下)设个固定端口应该没影响吧?
#13
SQL Browser服务都启动了没有?
#14
谢谢,问题已经解决了,SQL Browser是启动了的,现在就是考虑指定非默认实例端口对正常运行有没有影响
#15
事实证明没影响
#1
B不是默认实例,
端口是啥
端口是啥
#2
SQL SERVER 不允许远程连接这个事实可能会导致失败
查查这个错误的解决方法
baidu下应该很多
查查这个错误的解决方法
baidu下应该很多
#3
我来学习了
#4
tcp/ip
#5
确实奇怪
#6
不是B的问题,因为C->B是可以连通的.B->A,C,也是通的.同理,我这里测了D,E,F,G,H,G.....
多个实例链接服务器,只要不是默认实例,A 就连不过去,但是B,C,D,E,F,G,H,G.....之间无论怎么组合都能成功.
#7
同时使用TCP/IP和named pipes
再换b的机器名试试
再换b的机器名试试
#8
都试过了,而且TCP/IP和named pipes都是N年以前都是启动的.
#9
telnet b的端口也都试了?
#10
TCP 是动态端口来着
#11
?
你在配置中设置端口下
#12
姥姥的,终于搞出来,谢谢各位,果然 是WINDOWS 防火墙的问,出了A 以外,其它的防火墙都是关闭,由于默认实例是1433端口,而防火墙是系统维护人员增加允许1433可以访问.但是动态端口就不允许访问了.
强制给非默认实例(群集环境下)设个固定端口应该没影响吧?
#13
SQL Browser服务都启动了没有?
#14
谢谢,问题已经解决了,SQL Browser是启动了的,现在就是考虑指定非默认实例端口对正常运行有没有影响
#15
事实证明没影响