Freigeben über


Ü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)

Hilfe und Informationen

Informationsquellen für SQL Server 2005