Bài viết KB này: Cách định cấu hình SQL Server để nghe trên một cổng cụ thể sẽ làm rõ mọi thứ cho bạn:
Phân bổ cổng động
Nếu bạn định cấu hình một phiên bản của SQL Server để sử dụng phân bổ cổng động và bạn chưa khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:
TCPDocatePorts = Trống
TCPPort = 0
Tuy nhiên, nếu bạn định cấu hình một phiên bản của SQL Server để sử dụng phân bổ cổng động và bạn khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:
TCPD ẩnPorts = Cổng hiện tại được sử dụng
TCPPort = Cổng hiện tại được sử dụng
Phân bổ cổng tĩnh:
Nếu bạn định cấu hình phiên bản của SQL Server để sử dụng cổng tĩnh và bạn chưa khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:
TCPD ẩnPorts = Cổng cuối được sử dụng
TCPPort = Cổng tĩnh mới sẽ được sử dụng sau lần khởi động lại tiếp theo; cổng tĩnh mới mà bạn đã đặt bằng cách sử dụng Tiện ích mạng máy chủ
Tuy nhiên, nếu bạn định cấu hình phiên bản của SQL Server để sử dụng cổng tĩnh và bạn khởi động lại phiên bản của SQL Server, các giá trị đăng ký được đặt như sau:
TCPDocatePorts = Trống
TCPPort = Cổng tĩnh mới mà bạn đã đặt bằng cách sử dụng Tiện ích mạng máy chủ
cho câu hỏi thứ hai của bạn -
Mỗi khi bạn khởi động SQLServer có tên, nó sẽ sử dụng cổng được phân bổ. Trong trường hợp nếu cổng được sử dụng bởi một chương trình khác , thì SQL Server sẽ chọn một cổng khác tại thời điểm khởi động lại, tức là Cổng động được chọn khi khởi động lần đầu và thường sẽ giữ nguyên thông qua khởi động lại trong tương lai (được lưu trữ trong Registry) - nhưng nếu Nó được sử dụng bởi một chương trình khác sau đó máy chủ SQL sẽ chọn một cổng mới. lưu ý: Đối với Máy chủ Prod, tôi chỉ sử dụng các cổng tĩnh - bảo mật và dễ dàng quản lý.
Lưu ý: Nhiều điều thú vị hơn để tìm hiểu:
Kiểm tra xem cổng động đang được sử dụng hay không sử dụng T-SQL:
SELECT NAME
,protocol_desc
,type_desc
,state_desc
,is_admin_endpoint
,port
,is_dynamic_port
,ip_address
FROM sys.tcp_endpoints
Bạn có thể sử dụng netstat -ano
để kiểm tra bằng cmdline.
Ngoài ra, bạn có thể kiểm tra những gì đã lưu trong bộ nhớ cache trước đó trong sổ đăng ký ở phía máy khách xem nó đang sử dụng cổng nào để kết nối với máy chủ sql:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect
Second question
trong câu hỏi của tôi ở trên.