Überlegungen zu Verbindungsservern in einer SQL Server-Clusterkonfiguration
Wenn Verbindungsserver in einem gruppierten SQL Server über OLE DB-Anbieter, die nicht zum Lieferumfang von SQL Server 2005 gehören, konfiguriert werden, sollten Sie sicherstellen, dass die OLE DB-Anbieter in allen Knoten des Clusters installiert werden. Außerdem sollten Eigenschaften, die den Verbindungsserver definieren, standortunabhängig sein; sie sollten keine Informationen enthalten, in denen davon ausgegangen wird, dass SQL Server immer auf einem bestimmten Knoten des Clusters ausgeführt wird.
Das folgende Beispiel definiert einen Verbindungsserver für einen Server, auf dem SQL Server ausgeführt wird, und verweist mithilfe eines vierteiligen Namens in einer SELECT
-Anweisung auf eine der Remotetabellen.
sp_addlinkedserver @server = N'LinkServer',
@srvproduct = N' ',
@provider = N'SQLNCLI',
@datasrc = N'ServerNetName',
@catalog = N'AdventureWorks'
GO
SELECT *
FROM LinkServer.AdventureWorks.HumanResources.Employee
GO
Loopback-Verbindungsserver
Verbindungsserver können so definiert werden, dass sie auf den Server, auf dem sie definiert sind, zurückzeigen (zurücklaufen = loop back). Loopbackserver sind sehr nützlich, um eine Anwendung, die verteilte Abfragen verwendet, in einem Netzwerk mit einem einzelnen Server zu testen.
So wird z. B. durch das Ausführen der gespeicherten Prozedur sp_addlinkedserver
auf einem Server namens MyServer
ein Loopback-Verbindungsserver definiert:
sp_addlinkedserver @server = N'MyLink',
@srvproduct = N' ',
@provider = N'SQLNCLI',
@datasrc = N'MyServer',
@catalog = N'AdventureWorks'
GO
Transact-SQL-Anweisungen, die MyLink
als Servernamen verwenden, durchlaufen die Schleife durch den SQLNCLI
-Anbieter und zurück zum lokalen Server.
Loopback-Verbindungsserver können in einer verteilten Transaktion nicht verwendet werden. Wenn versucht wird, eine verteilte Abfrage für einen Loopback-Verbindungsserver in einer verteilten Transaktion auszuführen, löst dies einen Fehler, wie den Fehler 3910, aus: "[Microsoft][ODBC SQL Server Driver][SQL Server]Der Transaktionskontext wird von einer anderen Sitzung verwendet."
Siehe auch
Konzepte
SQL Native Client OLE DB-Anbieter
Verteilte Abfragen
Andere Ressourcen
sp_addlinkedserver (Transact-SQL)