문제 해결: 제한 시간 만료 [SQL Server]
"제한 시간 만료" 오류는 일반적으로 SQL Server 데이터베이스 엔진 인스턴스가 실행되지 않을 때, 서버 이름을 잘못 입력했을 때 또는 네트워크 문제나 방화벽이 있을 때 발생합니다.
오류 텍스트
SQL Server Management Studio에서는 이 오류가 다음과 같이 나타납니다.
"<servername>에 연결할 수 없습니다."
"제한 시간이 만료되었습니다. 작업을 완료하기 전에 제한 시간이 경과했거나 서버가 응답하지 않습니다. (Microsoft SQL Server, 오류: -2)"
sqlcmd에서 발생 가능한 제한 시간 오류는 다음과 같습니다.
"SQL 네트워크 인터페이스: 지정된 서버/인스턴스 찾기 오류"
"Sqlcmd: 오류: Microsoft SQL Server Native Client: 클라이언트가 연결을 설정할 수 없습니다."
"Sqlcmd: 오류: Microsoft SQL Server Native Client : 로그인 제한 시간이 만료되었습니다."
"SQL Server에 대한 연결을 열 수 없습니다."
"서버에 대한 연결을 구성하는 동안 오류가 발생했습니다. 기본 설정 시 SQL Server에서 원격 연결이 허용되지 않기 때문에 SQL Server에 연결할 때 이 오류가 발생할 수 있습니다."
이 오류의 일반적 원인
원인 |
해결 방법 |
---|---|
서버 이름을 잘못 입력했습니다. |
올바른 서버 이름으로 다시 시도하십시오. |
서버에서 SQL Server 서비스가 실행되고 있지 않습니다. |
SQL Server 데이터베이스 엔진 인스턴스를 시작하십시오. |
데이터베이스 엔진 인스턴스에 대한 TCP/IP 포트가 방화벽에 의해 차단되었습니다. |
데이터베이스 엔진에 대한 액세스를 허용하도록 방화벽을 구성하십시오. |
데이터베이스 엔진이 변경되었거나 기본 인스턴스가 아니기 때문에 포트 1433에서 수신 중이 아니며 SQL Server Browser 서비스가 실행 중이 아닙니다. |
SQL Server Browser 서비스를 시작하거나 TCP/IP 포트 번호를 지정하여 연결하십시오. |
SQL Server Browser 서비스가 실행되고 있지만 UDP 포트 1434가 방화벽에 의해 차단되었습니다. |
서버에서 UPD 포트 1434에 대한 액세스를 허용하도록 방화벽을 구성하거나 TCP/IP 포트 번호를 지정하여 연결하십시오. |
클라이언트와 서버가 같은 네트워크 프로토콜을 사용하도록 구성되지 않았습니다. |
SQL Server 구성 관리자를 사용하여 서버와 클라이언트 컴퓨터가 하나 이상의 프로토콜을 공통으로 사용하는지 확인하십시오. |
네트워크가 IP 주소에 대한 서버 이름을 확인할 수 없습니다. 이 오류는 PING 프로그램을 사용하여 테스트할 수 있습니다. |
네트워크의 컴퓨터 이름 확인 문제를 해결하거나 서버의 IP 주소를 사용하여 연결하십시오. 이것은 SQL Server 문제가 아닙니다. 도움이 필요하면 Windows 설명서를 참조하거나 네트워크 관리자에게 문의하십시오. |
네트워크가 IP 주소를 사용하여 연결할 수 없습니다. 이 오류는 PING 프로그램을 사용하여 테스트할 수 있습니다. |
네트워크의 TCP/IP 문제를 해결하십시오. 이것은 SQL Server 문제가 아닙니다. 도움이 필요하면 Windows 설명서를 참조하거나 네트워크 관리자에게 문의하십시오. |
비정상적인 오류
여러 서버 IP 주소
Windows Vista 또는 Windows Server 2008의 클라이언트에서는 IP 주소가 여러 개인 클러스터 또는 비클러스터형 컴퓨터에 설치되어 있는 명명된 SQL Server 인스턴스에 연결할 때 이 오류를 받을 수 있습니다. 이 문제는 모든 SQL Server 버전에서 발생할 수 있습니다.
원인
원격 컴퓨터의 명명된 인스턴스에 연결할 때 클라이언트는 연결 끝점(TCP 포트 번호 또는 명명된 파이프)을 가져오기 위해 UDP(사용자 데이터그램 프로토콜)를 사용하여 SQL Server 컴퓨터의 SQL Server Browser 서비스에 연결합니다.
Windows Vista 또는 Windows Server 2008 클라이언트에서의 방화벽은 UDP에 대한 느슨한 원본 매핑을 허용하지 않습니다. 즉, 응답은 쿼리한 동일한 IP 주소에서 반환해야 합니다. 응답이 원래 대상으로 지정한 IP 주소에서 원래 상태로 돌아오지 않으면 클라이언트 방화벽에서 패킷을 삭제합니다. 이 문제는 IP 주소가 여러 개인 클러스터형 서버 또는 비클러스터형 서버 컴퓨터에 연결하려고 할 때 발생할 수 있습니다.
다음 표에서는 UDP 패킷이 삭제되도록 할 수 있는 운영 체제 조합을 설명합니다. 이러한 조합은 TCP 포트 1433에서 수신하지 않는 SQL Server의 기본 인스턴스 또는 SQL Server의 명명된 인스턴스에 연결하지 못하도록 합니다.
클라이언트 운영 체제 |
SQL Server가 실행 중인 운영 체제 |
SQL Server 2008 결과 |
SQL Server 2005 결과 |
---|---|---|---|
Windows XP 또는 Windows Server 2003 |
Windows XP 또는 Windows Server 2003 |
UDP 패킷이 삭제되지 않습니다. |
UDP 패킷이 삭제되지 않습니다. |
Windows XP 또는 Windows Server 2003 |
Windows Vista 또는 Windows Server 2003 |
UDP 패킷이 삭제되지 않습니다. |
UDP 패킷이 삭제되지 않습니다. |
Windows Vista 또는 Windows Server 2008 |
Windows XP 또는 Windows Server 2003 |
UDP 패킷이 삭제됩니다. 연결에 실패합니다. |
UDP 패킷이 삭제됩니다. 연결에 실패합니다. |
Windows Vista 또는 Windows Server 2008 |
Windows Vista 또는 Windows Server 2008(x86, IA64) |
UDP 패킷이 삭제되지 않습니다. |
UDP 패킷이 삭제됩니다. 연결에 실패합니다. |
Windows Vista 또는 Windows Server 2008 |
Windows Vista 또는 Windows Server 2008(x64) |
UDP 패킷이 삭제됩니다. 연결에 실패합니다. |
UDP 패킷이 삭제됩니다. 연결에 실패합니다. |
해결 방법
이 문제를 해결하려면 다음 동작 중 하나를 수행합니다.
TCP 포트 번호 또는 명명된 파이프 이름을 연결 문자열의 서버 이름 일부로 지정합니다.
클라이언트 컴퓨터의 고급 보안이 설정된 Windows 방화벽에서 예외를 만듭니다.
주의 방화벽의 예외로 인해 컴퓨터 또는 네트워크가 악의적인 사용자 또는 바이러스와 같은 악성 소프트웨어에 더욱 취약해질 수 있습니다. 이러한 해결 방법을 권장하는 것은 아니지만 대체 방법이 유용하지 않은 경우 임의로 구현할 수 있도록 이 정보를 제공하는 것입니다.
예외는 다음 중 하나일 수 있습니다.
SQL Server에 연결하는 응용 프로그램에 대한 예외 규칙을 추가합니다.
SQL Server 컴퓨터 또는 클러스터의 가능한 모든 IP 주소에서의 트래픽을 허용하는 인바운드 규칙을 추가합니다.
터키어 또는 아제리어
현재 언어가 Turkish(터키어) 또는 Azeri(아제리어)이고 서버 이름에 "I"가 들어 있으면 연결 시도가 실패할 수 있습니다. 이 문제를 방지하려면 IP 주소를 사용하여 서버에 연결합니다. 인스턴스 이름에 "I"가 있는 경우 연결 시 TCP/IP 포트 번호를 지정하십시오. 특정 포트로 연결하려면 별칭을 사용합니다.
[!참고]
연결 문제를 해결하려면 자습서: 데이터베이스 엔진 시작 자습서를 사용하십시오.