MSSQLSERVER_18482
Se aplica a: SQL Server
Detalles
Attribute | Valor |
---|---|
Nombre del producto | SQL Server |
Id. de evento | 18482 |
Origen de eventos | MSSQLSERVER |
Componente | SQLEngine |
Nombre simbólico | REMLOGIN_INVALID_SITE |
Texto del mensaje | No se pudo conectar al servidor "%.ls". "%.ls" no está definido como servidor remoto. Compruebe que ha especificado el nombre de servidor correcto. %.*ls |
Explicación
Este error se produce cuando se intenta ejecutar una llamada a procedimiento remoto (RPC) desde un servidor a otro (por ejemplo, mediante la ejecución de un procedimiento almacenado en un equipo remoto con una instrucción como EXEC SERV_REMOTE.pubs..byroyalty
). El usuario recibe un mensaje de error similar al siguiente
Error 18482: No se pudo conectar al servidor <SERV_REMOTE> porque <SERV_REMOTE> no está definido como servidor remoto. Compruebe que ha especificado el nombre de servidor correcto.
Causa
Este error se produce cuando SQL Server no puede ejecutar una llamada a procedimiento remoto. Esto puede deberse a un servidor local configurado incorrectamente. Para hacer una llamada a procedimiento remoto, SQL Server primero determina quién es el servidor local buscando el nombre del servidor con srvid = 0 en sysservers. Si no se encuentra una entrada con srvid = 0 en sysservers, o si el nombre del servidor con srvid = 0 pertenece a un nombre de servidor distinto del nombre del equipo Windows local, recibirá el error.
Acción del usuario
Para determinar si el servidor local está configurado correctamente, examine la columna srvstatus
en master..sysservers. Este valor debe ser 0 para el servidor local.
Por ejemplo, supongamos que al servidor local se le asignó el nombre SERV_LOCAL, al servidor remoto el nombre SERV_REMOTE y que sysservers contenía la siguiente información:
srvid | srvstatus | srvname | srvname |
---|---|---|---|
1 | 2 | SERV_LOCAL | SERV_LOCAL |
2 | 1 | SERV_REMOTE | SERV_REMOTE |
En la salida anterior, SERV_LOCAL es el servidor local, pero tiene un srvid de 1; debe ser 0. Para corregirlo, siga estos pasos:
- Ejecute
sp_dropserver
local_server_name, droplogins (en este ejemplo, ejecutaríasp_dropserver SERV_LOCAL, droplogins
). - Ejecute
sp_addserver
local_server_name, LOCAL (en este ejemplo, ejecutaríasp_addserver SERV_LOCAL, LOCAL
). - Detenga y reinicie SQL Server.
Después de ejecutar esos pasos, la tabla sysservers debe tener el siguiente aspecto:
srvid | srvstatus | srvname | srvname |
---|---|---|---|
0 | 0 | SERV_LOCAL | SERV_LOCAL |
2 | 1 | SERV_REMOTE | SERV_REMOTE |
Nota:
El identificador de servidor (srvid) debe ser 0 para el servidor local.
Es posible que haya algunos casos en los que las entradas de la tabla sysservers parezcan correctas, pero cuando ejecute select @@servername
, devolverá NULL. En estos escenarios, todavía debe continuar con los pasos 1 a 3 mostrados anteriormente para corregir el problema.
Más información
Es posible que reciba este mensaje de error al instalar la replicación, ya que el proceso de instalación realiza llamadas a procedimiento remoto entre los servidores implicados en la replicación.