MSSQLSERVER_18482

Gilt für: SQL Server

Details

attribute Wert
Produktname SQL Server
Ereignis-ID 18482
Ereignisquelle MSSQLSERVER
Komponente SQLEngine
Symbolischer Name REMLOGIN_INVALID_SITE
Meldungstext Zum Server "%.ls" konnte keine Verbindung hergestellt werden, weil "%.ls" nicht als Remoteserver definiert ist. Überprüfen Sie, ob Sie den richtigen Servernamen angegeben haben. %.*ls

Erklärung

Dieser Fehler tritt auf, wenn Sie versuchen, einen Remoteprozeduraufruf (RPC) von einem Server zu einem anderen auszuführen (z. B. durch Ausführen einer gespeicherten Prozedur auf einem Remotecomputer mit einer Anweisung wie EXEC SERV_REMOTE.pubs..byroyalty). Dem Benutzer wird eine Fehlermeldung angezeigt, die der folgenden ähnelt:

Fehler 18482: Verbindung mit Server-SERV_REMOTE <> konnte nicht hergestellt werden, da <SERV_REMOTE> nicht als Remoteserver definiert ist. Überprüfen Sie, ob Sie den richtigen Servernamen angegeben haben.

Ursache

Dieser Fehler tritt auf, wenn SQL Server einen Remoteprozeduraufruf nicht ausführen kann. Dies kann durch einen nicht ordnungsgemäß konfigurierten lokalen Server verursacht werden. Um eine Remoteprozedur aufzurufen, wird von SQL Server zuerst mit „srvid = 0“ in „sysservers“ nach dem Servernamen gesucht, um den lokalen Server zu ermitteln. Wenn kein Eintrag mit „srvid = 0“ in „sysservers“ gefunden wird oder wenn der Servername mit „srvid = 0“ zu einem Servernamen gehört, der sich vom lokalen Windows-Computernamen unterscheidet, erhalten Sie die Fehlermeldung.

Aktion des Benutzers

Um zu ermitteln, ob der lokale Server ordnungsgemäß konfiguriert ist, überprüfen Sie die Spalte srvstatus in „master..sysservers“. Der Wert sollte für den lokalen Server 0 sein.

Angenommen, der lokale Server heißt SERV_LOCAL, der Remoteserver heißt SERV_REMOTE, und „sysservers“ enthält die folgenden Informationen:

srvid srvstatus srvname srvname
1 2 SERV_LOCAL SERV_LOCAL
2 1 SERV_REMOTE SERV_REMOTE

In der vorangehenden Ausgabe ist SERV_LOCAL der lokale Server, weist aber eine „srvid“ von 1 auf; diese sollte 0 sein. Gehen Sie folgendermaßen vor, um dies zu korrigieren:

  1. Führen Sie „sp_dropserver local_server_name, droplogins“ aus (in diesem Beispiel würden Sie sp_dropserver SERV_LOCAL, droplogins ausführen).
  2. Führen Sie „sp_addserver local_server_name, LOCAL“ aus (in diesem Beispiel würden Sie sp_addserver SERV_LOCAL, LOCAL ausführen).
  3. Beenden Sie SQL Server, und starten Sie es neu.

Nachdem Sie diese Schritte ausgeführt haben, sollte die sysservers-Tabelle wie folgt aussehen:

srvid srvstatus srvname srvname
0 0 SERV_LOCAL SERV_LOCAL
2 1 SERV_REMOTE SERV_REMOTE

Hinweis

Die Server-ID (srvid) sollte für den lokalen Server 0 sein.

In einigen Fällen können die Einträge in der sysservers-Tabelle korrekt aussehen, aber wenn Sie select @@servername ausführen, wird NULL zurückgegeben. In diesen Szenarien sollten Sie trotzdem die oben aufgeführten Schritte 1 bis 3 ausführen, um das Problem zu beheben.

Weitere Informationen

Diese Fehlermeldung wird möglicherweise beim Installieren der Replikation angezeigt, da der Installationsvorgang Remoteprozeduraufrufe zwischen den an der Replikation beteiligten Servern ausführt.