I have 2 servers (lets say ServerA and ServerB) I have setup each as a linked server to the other. ServerA is running SQL Server 2008 R2 (version 10.50.2500) and ServerB is SQL Server 2005 (version 9.0.4035).
Both servers have had an identical login created and have been granted dbowner on the databases I wish to link. I’m not intending to use any distributed processing, this is purely so that at the end of the day the data can be updated from one server to the other.
The linked server from ServerA to ServerB works fine and connects. Unfortunately the link from ServerB to ServerA doesn’t and times out with the following message.
SQL Network Interfaces: Error Locating Server/Instance Specified.
OLE DB Provider “SQLNCLI” for linked server “0.0.0.0\serverA” returned message “Login timeout expired”
(IP address has been removed, but is valid and correct)
I have checked the servers, both have TCP and named pipes enabled and are set to allow remote connections. Since the connection works in one direction I’m assuming that Firewalls aren’t the problem (is that a valid assumption?! Networking isn’t my strong suit)
Obviously we should be able to do all that we need with just a one way connection but logically I’d prefer it if we had both so that each one pulls the data it requires rather than one server being responsible for pushing and pulling the data around.
EDIT: ServerA is behind a router and It is timing out when trying to ping or telnet to it. I’ve added ServerA onto the router to receive all requests for port 1433 (port forwarding, hope thats the right way) and now when I try to telnet from ServerB to ServerA it hangs at Connecting to 0.0.0.0... before eventually saying Connection to host lost.
I think there was 2 things occuring here. Firstly many thanks to Simon and Dave for their networking pointers. They definately helped and without that I’d not have figured it out. Eventually I got it working… turns out that I had been accessing the Server using 0.0.0.0\INSTANCE but I tried it just using the ip address and its worked.