다음을 통해 공유


MSSQLSERVER_18482

적용 대상: SQL Server

세부 정보

attribute
제품 이름 SQL Server
이벤트 ID 18482
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 REMLOGIN_INVALID_SITE
메시지 텍스트 서버 ‘%.ls’에 연결할 수 없습니다. ‘%.ls’이(가) 원격 서버로 정의되어 있지 않기 때문입니다. 올바른 서버 이름을 지정했는지 확인합니다. %.*ls

설명

이 오류는 한 서버에서 다른 서버로 RPC(원격 프로시저 호출)를 실행하려고 할 때 발생합니다(예: EXEC SERV_REMOTE.pubs..byroyalty명령문이 있는 원격 컴퓨터에서 저장 프로시저를 실행). 다음과 유사한 오류 메시지가 사용자에게 보고됩니다.

오류 18482: SERV_REMOTE> 원격 서버로 정의되지 않았으므로 <서버 <SERV_REMOTE> 연결할 수 없습니다. 올바른 서버 이름을 지정했는지 확인합니다.

원인

이 오류는 SQL Server가 원격 프로시저 호출을 실행할 수 없을 때 발생합니다. 잘못 구성된 로컬 서버가 원인일 수 있습니다. SQL Server는 원격 프로시저 호출을 실행하기 위해 먼저 sysservers에서 srvid = 0인 서버 이름을 찾아 로컬 서버를 확인합니다. sysservers에서 srvid = 0이 있는 항목을 찾을 수 없거나 srvid = 0이 있는 서버 이름이 로컬 Windows 컴퓨터 이름과 다른 서버 이름에 속하는 경우 오류가 발생합니다.

사용자 작업

로컬 서버가 올바르게 구성되었는지 확인하려면 master..sysservers의 srvstatus 열을 확인하세요. 이 값은 로컬 서버에 대해 0이어야 합니다.

예를 들어 로컬 서버 이름이 SERV_LOCAL, 원격 서버 이름이 SERV_REMOTE, sysservers에 다음 정보가 포함되어 있다고 가정합니다.

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

위의 출력에서 SERV_LOCAL이 로컬 서버이지만 srvid가 0입니다. 이 값은 1이어야 합니다. 이 문제를 해결하려면 다음 단계를 수행합니다.

  1. sp_dropserver local_server_name, droplogins를 실행합니다(이 예제의 경우 sp_dropserver SERV_LOCAL, droplogins).
  2. local_server_name, LOCAL을 실행 sp_addserver 합니다(이 예제에서는 실행 sp_addserver SERV_LOCAL, LOCAL).
  3. SQL Server를 중지하고 다시 시작합니다.

이러한 단계를 실행한 후에는 sysservers 테이블이 다음과 같이 표시됩니다.

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

참고 항목

로컬 서버의 경우 서버 ID(srvid)는 0이어야 합니다.

sysservers 테이블의 항목이 올바른 것처럼 보이지만 실행할 select @@servername때 NULL을 반환하는 경우가 있을 수 있습니다. 이러한 시나리오에서는 위에 나열된 1~3단계를 실행하여 문제를 해결해야 합니다.

자세한 정보

설치 프로세스가 복제와 관련된 서버 간에 원격 프로시저 호출을 수행하므로 복제를 설치할 때 이 오류 메시지가 표시될 수 있습니다.