SQL 가상 서버 클라이언트 연결에 대한 설명

기술 자료 번역 기술 자료 번역
기술 자료: 273673 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 일부 Microsoft SQL 가상 서버 클라이언트 연결에 대한 기본 사항을 설명합니다.

추가 정보

중요한 이 섹션에서는, 메서드 또는 작업이 레지스트리 수정 방법을 알려 주는 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 이 단계를 주의 깊게 따라야 합니다. 추가 보호 기능을 수정하기 전에 레지스트리를 백업해야. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 백업 및 복원하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
322756백업 및 Windows 에서 레지스트리를 복원하는 방법


SQL 가상 서버 클라이언트 동작

Microsoft 클러스터 서버 (MSCS) 중요한 SQL Server 응용 프로그램을 빌드할 수 있는 안정적이고 강력한 플랫폼을 제공합니다. MSCS 함께 사용하도록 대부분의 서버 응용 프로그램을 수정할 필요가 없습니다. 그러나 트랜잭션 기반 응용 프로그램 (예를 들어, 데이터베이스 서버, Microsoft SQL Server와 같은) 서버가 실패할 경우, 트랜잭션 무결성 손실 장애 조치 지원을 제대로 방지할 수 있도록 보통 추가 수정이 필요합니다. MSCS 함께 작동하는 클라이언트 응용 프로그램을 개발하는 것은 비교적 간단합니다. 데이터베이스 복구 및 오류 염두에 검사를 사용하여 응용 프로그램을 디자인해야 합니다.

클러스터, SQL Server 경우에도 사용하지 않고 서버가 다시 시작될 때 서버의 모든 데이터베이스를 자동으로 복구합니다. 데이터베이스를 올바르게 및 일관된 상태로 데이터베이스에 장애 조치가 발생할 수 있도록 일관된 응용 프로그램 상태를 사용할 데이터베이스 트랜잭션을 복구할 수 있습니다. 모든 커밋된 트랜잭션의 효과는 유지해야 하는 동안 장애 조치가 발생할 때 완료되지 않은 모든 트랜잭션은, 롤백되어야 합니다.

장애 조치 동안 클라이언트 응용 프로그램이 SQL Server에 해당 연결이 끊어질 및 프로세스를 계속 다시 연결해야 합니다. 서버에 클라이언트 연결을 상태 비저장, 없는 경우 (예를 들어, Microsoft 인터넷 정보 서버 [IIS] 사용하여 개발한 응용 프로그램은 상태 비저장 있습니다) 클라이언트가 서버에 연결하고 처리가 계속됩니다. 클라이언트 및 서버 일반적인 상태 (예를 들어, 열린 커서, 세션 변수, Transact-SQL 또는 전역 변수를, tempdb 데이터) 없다면 장애 조치 클라이언트에 투명 아닙니다. 이 이런 경우 사용자에게 알리기 위해 클라이언트 응용 프로그램을 디자인해야 합니다 연결 하나를 않았습니다, 또는 다시 손실되거나 자동으로 해당 서버에 연결을 다시 응용 프로그램이 있는. 장애 조치가 발생할 때 커밋되지 않은 모든 트랜잭션이 롤백됩니다.

클라이언트가 서버 오류를 처리하는 방법에 대한 설명은 경우에도 클러스터 및 가상 서버를 사용하지 않고 모든 SQL Server 클라이언트 응용 프로그램의 표준있지 않습니다. 오류 검사 프로세스를 클러스터에 대한 클라이언트 데이터베이스 응용 프로그램에 매우 유사합니다. 장애 조치 클러스터 시작할 때 클라이언트 프로그램에서 데이터베이스 연결 오류 메시지를 받습니다. 발생한 오류 메시지를 어떤 클라이언트 프로그램에서 해당 시간에 작업을 시도하는 따라 달라집니다.

SQL Server 서버에 의해 통해 클러스터 관리 실패한 경우 TCP 재설정 패킷은 보내지지 않습니다. Kill.exe) 운영 체제에서 SQL Server 프로세스가 종료되는 경우 재설정 패킷은 보냅니다.

응용 프로그램에서 쿼리 시간 제한 매개 변수 또는 쿼리 시간 제한을 영 (0) 의 지정하지 않은 경우 클라이언트 응용 프로그램에 영향을 줄 수 있습니다.

응용 프로그램을 연 다음 쿼리 제한 시간 값을 있지 않은 경우 장애 조치가 발생한 후 연결은 ESTABLISHED 상태로 남아 있을 것입니다. 열린 연결을 닫히지 및 이러한 연결을 없음 추가 TCP 패킷을 보내는 팩트 이러한 연결을 완전히 유휴 있음을 나타냅니다. 장애 조치 모든 TCP 패킷을 클라이언트 응용 프로그램에 다시 보내지 않았기 때문에 해당 연결을 연에 대한 쿼리 결과를 무기한 대기 (무한 쿼리 제한 시간을 가정) 및 응답이 중지 (멈춤) 연결을 초래할 가능성이 있는.

이 문제를 해결하려면 클라이언트 응용 프로그램 관점에서 한정된 개수의 쿼리 제한 시간을 변경하십시오.

가상 데이터베이스 실패 동작

가상 데이터베이스 서버의 작동이 중단되면 대기 중인 클라이언트 연결을 연결 실패 오류 메시지가 반환됩니다. 실패한 노드에서 클러스터 데이터베이스를 종료할 수 및 에서 설정한 매개 변수 당 동일한 노드에서 다시:

Start\Programs\Administrative Tools (Common)\Cluster Administrator\Group\Failover\Properties
				
그룹 장애 조치 기본 임계값 남아 있는 노드로 장애 조치 발생하기 전에 6 시간 동안 10개의 다시 것입니다. 그러나 SQL Server가 SQL Server 클러스터 리소스에 대한 SQL Server 속성을 통해 확인할 수 있습니다, 다시 시작 세 가지 기본 임계값 해당 SQL Server의 900 초 단위로 포함하고 기본적으로 그룹에 영향을 미치지 임계값 다시 시작합니다. 데이터베이스 복구 중인 동안 클라이언트가 서버에 연결하려고 하면 클라이언트에 데이터베이스 복구 오류 메시지 기다리는 받고 짧은 일시 중지한 후에 다시 시도해야 합니다.

SQL Server 6.5 및 SQL Server 7.0 고려 사항

SQL Server 6.5 및 SQL Server 7.0 이전 가상 데이터베이스 실패 동작을 "섹션에서 설명한 대로 역할을 합니다.

SQL Server 7.0 가상 서버로 실행할 때 SQL Server 7.0 IP 주소가 하나만 지원하지만 고객이 구성된 대로 추가 포트에서 수신 대기할 수 있습니다. 이 Microsoft 기술 자료의 다음 문서를 "다중 수신-설정 TCP/IP 포트" 항목에 설명되어 있습니다.
254321INF: 클러스터된 SQL Server 일 때 하지 말아야 할 일 및 기본 경고

Microsoft SQL Server 2000 고려 사항

SQL Server 2000 SQL Server 6.5 및 SQL Server 7.0 버전의 동작에서 약간의 차이가 있습니다.

SQL Server 2000 포트 사용

기본적으로 명명된 인스턴스가 동적 포트에서 수신 대기합니다. 서버 포트 (0), 0 으로 설정된 함께 시작되는 첫 번째 서버가 운영 체제에서 사용 가능한 포트 번호를 요청합니다 시간과 해당 포트에서 서버가 수신 대기하는. 서버가 이 레지스트리에 기록하고 때마다 동일한 포트를 사용하는.

그런 다음 서버가 동적 포트에서 수신 대기하도록 구성된 시작 동적 포트에서 수신 대기할 서버가 실패할 경우 서버가 다른 포트를 선택합니다.

서버 네트워크 유틸리티를 사용하여 설치 중이나 설치 후에 정적 포트 구성된 경우 이 포트를 사용하고 있는 경우 TCP/IP 수신 대기하도록 실패합니다.

클라이언트가 의 명명된 인스턴스를 또는 기본이 아닌 포트 번호를 하나로 연결할 포트 번호를 검색합니다.

연결 정보는 "LastConnect" 캐시가 레지스트리 키에 기록됩니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\supersocketnetlib\lastConnect
각 서버 및 해당 레지스트리에서 연결하는 데 사용되는 메서드를 항목을 찾을 수 있습니다.

클라이언트가 실패하고 새 정보를 re-negotiates 않은 경우 각 연결에 대한 연결 정보를 다시 시도합니다. 다른 사람이 변경되었기 때문에 포트 번호가 변경된 경우 또는 사용 중인 포트 인하여 할당되지 않은 동적 포트 경우 이러한 상황이 발생할 수 있습니다.

끊어진된 연결

연결이 끊어진 수 세 가지가 있습니다.
  1. 서버가 실패하는; (서버 프로세스 ID [spid] 죽이십시오 중지된 시스템) 또는 액세스 위반 (AV) 중인 프로세스가 종료됩니다 또는 다른 운영 체제 또는 필요한 서비스 장애를 발생합니다.
  2. 컴퓨터 하드웨어 오류 또는 전원 손실이입니다.
  3. 서버 종료입니다.
이러한 끊어진된 연결을 각각 클라이언트 컴퓨터에서 볼 다른 동작을 나타냅니다.
  1. 여기서 서버가 실패할 경우 클라이언트가 즉시 연결이 끊어진된 오류 메시지를 받습니다. 긴 쿼리를 실행하는 OSQL 함께 연결하여 이 동작을 시뮬레이션할 수 있으며 그런 다음 KILL SQL Server 프로세스를 종료할 수 있습니다. 클라이언트가 ODBC 오류 메시지와 함께 종료합니다.
  2. 시스템 실패 더 복잡합니다. 약간 연결 손실이 검색된 방법에 따라 동작을 변경할 수 있습니다.

    클라이언트에서 정보를 읽는 중간에 경우 데이터를 중지합니다 때문에 연결 손실은 즉시 검색할 수 있습니다.

    클라이언트가 바로 결과를 기다리는 경우에는 동작이 약간 다릅니다. 동작은 Keep Alive 클라이언트 컴퓨터의 구성에 따라 달라집니다.

    Microsoft Windows 2000 Keep Alive 연결 단위로 클라이언트 코드에 의해 설정됩니다. 기본적으로 Keep Alive 30초로 설정되어 있습니다. 소켓이 비활성화되는 경우 30 초 및 클라이언트 내에서 검색된 이 즉 오류 메시지를 받습니다. Microsoft Windows NT 4 .0에서 Keep Alive 연결 단위로 설정할 수 없습니다. Alive 유지할 따라서 서버의 모든 응용 프로그램에는 영향을 주지 전체 컴퓨터에 대해 설정해야 합니다.

    참조되는 있는 레지스트리 키는 다음과 같습니다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime\REG_DWORD 30000

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveInterval\REG_DWORD 1000
  3. 서버 종료 시작할 때 서버에 완료 클라이언트가 잠시를 기다립니다. 그러나 클라이언트가 서버에 계속 실행되고 있으면 서버 내에서 스레드를 죽인. 스레드가 죽이기 다른 오류 메시지를 클라이언트에 발생할 수도 있습니다. 그러나 오류 메시지에 오류 끊어진 연결을 포함할 수 있습니다. 그리고 대부분의 경우 이 오류 메시지를 볼 수 있습니다:
    "알 수 없는 오류가 발생했습니다. 그리고 서버에 의해 연결이 종료된".
    ODBC 원시 오류 코드 (0)이 경우 0 으로 설정되어 있지만 오류 메시지로 클라이언트로 반환됩니다.

참조

SQL Server 2005에서 SQL 가상 서버 클라이언트 동작에 대한 자세한 내용은 다음 MSDN) Microsoft 개발자 네트워크 (웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/ms189585.aspx

속성

기술 자료: 273673 - 마지막 검토: 2007년 12월 4일 화요일 - 수정: 7.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 6.5 Enterprise Edition
  • Microsoft SQL Server 7.0 Enterprise Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
키워드:?
kbmt kbhowto kbsql2005cluster kbclientserver kbinfo KB273673 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com