Share via


MSSQLSERVER_18482

S’applique à :SQL Server

Détails

Attribut Valeur
Nom du produit SQL Server
ID de l’événement 18482
Source de l’événement MSSQLSERVER
Composant SQLEngine
Nom symbolique REMLOGIN_INVALID_SITE
Texte du message Impossible de se connecter au serveur '%.ls', car '%. ls' n'est pas défini en tant que serveur distant. Vérifiez que vous avez spécifié le bon nom de serveur. %.*ls

Explication

Cette erreur se produit lorsque vous tentez d’exécuter un appel de procédure distante (RPC) d’un serveur à un autre (par exemple, en exécutant une procédure stockée sur un ordinateur distant avec une instruction telle que EXEC SERV_REMOTE.pubs..byroyalty). Un message d’erreur semblable au suivant est signalé à l’utilisateur

Erreur 18482 : Impossible de se connecter au serveur <SERV_REMOTE> car <SERV_REMOTE n’est> pas défini en tant que serveur distant. Vérifiez que vous avez spécifié le bon nom de serveur.

Cause

Cette erreur se produit quand SQL Server ne peut pas exécuter un appel de procédure distante. Cela peut être dû à un serveur local configuré de façon incorrecte. Pour effectuer un appel de procédure distante, SQL Server détermine d’abord qui est le serveur local en recherchant le nom du serveur avec srvid = 0 dans sysservers. Si une entrée avec srvid = 0 est introuvable dans sysservers ou si le nom du serveur avec srvid = 0 appartient à un nom de serveur différent du nom de l’ordinateur Windows local, vous recevez cette erreur.

Action requise

Pour déterminer si le serveur local est configuré correctement, examinez la colonne srvstatus dans master..sysservers. Cette valeur doit être égale à 0 pour le serveur local.

Par exemple, supposons que votre serveur local était nommé SERV_LOCAL, que le serveur distant était nommé SERV_REMOTE et que sysservers contenait les informations suivantes :

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

Dans la sortie précédente, SERV_LOCAL est le serveur local, mais il a un srvid de 1 ; il doit être égal à 0. Pour corriger cela, procédez comme suit :

  1. Exécutez sp_dropserver nom_serveur_local, droplogins (dans cet exemple, vous devez exécuter sp_dropserver SERV_LOCAL, droplogins).
  2. Exécutez sp_addserver nom_serveur_local, LOCAL (dans cet exemple, vous devez exécuter sp_addserver SERV_LOCAL, LOCAL).
  3. Arrêtez et redémarrez SQL Server.

Après avoir exécuté ces étapes, la table sysservers doit ressembler à ce qui suit :

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

Notes

L’ID de serveur (srvid) doit être 0 pour le serveur local.

Dans certains cas, les entrées de la table sysservers sont correctes, mais lorsque vous exécutez select @@servername, la valeur NULL est retournée. Dans ces scénarios, vous devez toujours exécuter les étapes 1 à 3 indiquées ci-dessus pour résoudre le problème.

Informations complémentaires

Vous pouvez recevoir ce message d’erreur lors de l’installation de la réplication, car le processus d’installation effectue des appels de procédure distante entre les serveurs impliqués dans la réplication.