이 기사 : 특정 포트에서 수신 대기하도록 SQL Server를 구성하는 방법 은 다음과 같습니다.
동적 포트 할당
동적 포트 할당을 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 아직 다시 시작하지 않은 경우 레지스트리 값은 다음과 같이 설정됩니다.
TCPDynamicPorts = 공백
TCPPort = 0
그러나 동적 포트 할당을 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 다시 시작하면 레지스트리 값이 다음과 같이 설정됩니다.
TCPDynamicPorts = 사용되는 현재 포트
TCPPort = 사용되는 현재 포트
정적 포트 할당 :
정적 포트를 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 아직 다시 시작하지 않은 경우 레지스트리 값은 다음과 같이 설정됩니다.
TCPDynamicPorts = 마지막으로 사용 된 포트
TCPPort = 다음에 다시 시작한 후 사용할 새 정적 포트. 서버 네트워크 유틸리티를 사용하여 설정 한 새 정적 포트
그러나 정적 포트를 사용하도록 SQL Server 인스턴스를 구성하고 SQL Server 인스턴스를 다시 시작하면 레지스트리 값이 다음과 같이 설정됩니다.
TCPDynamicPorts = 공백
TCPPort = 서버 네트워크 유틸리티를 사용하여 설정 한 새로운 정적 포트
두 번째 질문에 -
명명 된 SQLServer를 시작할 때마다 할당 된 포트를 사용합니다. 포트가 다른 프로그램 에서 사용되는 경우 SQL Server는 다시 시작할 때 다른 포트를 선택합니다. 즉, 동적 포트는 처음 시작할 때 선택되며 일반적으로 향후 다시 시작할 때 (레지스트리에 저장 됨)를 통해 동일하게 유지 됩니다. 다른 프로그램에서 사용하면 SQL Server는 새 포트를 선택합니다. 참고 : Prod Server의 경우 보안 및 관리 용이성 이유로 고정 포트만 사용합니다.
참고 : 더 멋진 점은 다음과 같습니다.
동적 포트가 사용 중인지 T-SQL을 사용하지 않는지 확인하십시오.
SELECT NAME
,protocol_desc
,type_desc
,state_desc
,is_admin_endpoint
,port
,is_dynamic_port
,ip_address
FROM sys.tcp_endpoints
netstat -ano
cmdline을 사용 하여 확인할 수 있습니다 .
또한 클라이언트 측의 레지스트리에서 이전에 캐시 된 내용을 확인하여 SQL 서버에 연결하는 데 사용하는 포트를 확인할 수 있습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect
Second question
위의 질문에서 참조하십시오 .